programmier.bar – der Podcast für App- und Webentwicklung

Deep Dive 213 – Valibot & Formisch mit Fabian Hiller

programmier.bar Season 7 Episode 60

Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.

0:00 | 1:04:02

Wie hat dir die Folge gefallen?
Gut 👍
Schlecht 👎
(Keine Anmeldung erforderlich)


Warum ist es eigentlich immer noch so mühsam, ein Formular sauber und typsicher zu bauen? Fabian Hiller ist Founding Engineer bei einem Startup in New York und Kopf hinter Valibot und Standard Schema. Heute spricht er mit uns über sein neuestes Open-Source-Projekt: Formisch.

Formisch ist eine schema-basierte, headless Form-Library, die den kompletten State und die Validierung eines Formulars übernimmt, aber bewusst keine UI mitbringt. Das Besondere steckt unter der Haube: Statt eines eigenen Reactivity-Layers packt Formisch im Build-Prozess das native Reactivity-System des jeweiligen Frameworks direkt in die Library. Dadurch fühlt sich Formisch in jedem der Frameworks nativ an und bleibt extrem schlank. Fabian zeigt, wie der framework-agnostische Core das möglich macht und warum ihm eine Art Vite für Formulare vorschwebt.

Weil Formisch eng mit Valibot verzahnt ist, ordnen wir auch das nochmal ein: eine modulare, TypeScript-native Schema-Library, bei der am Ende nur im Bundle landet, was ihr wirklich importiert. Fabian nimmt uns mit vom Weg seiner Bachelorarbeit hin zu über 12 Millionen wöchentlichen Downloads und erzählt, wie daraus gemeinsam mit Colin McDonnell (Zod) und David Blass (ArkType) Standard Schema entstand: ein einheitliches Interface für Schema-Libraries, das inzwischen als eine Art Industriestandard gilt und auf mittlerweile riesige Download-Zahlen kommt.

Der zweite große Strang der Folge: Was macht AI mit Open Source? Wir diskutieren, warum etablierte Libraries im Zeitalter der Coding Agents überproportional profitieren, weil ein Agent meist das greift, was er bereits kennt, und ob daraus ein neues Discovery-Problem für frische Projekte wird. Fabian und Jan sind sich einig, dass guter Code nie das einzige Problem war: Dokumentation, Community und schnelles Reagieren auf Issues bleiben entscheidend, egal wie viel der Agent übernimmt. Außerdem wird diskutiert, warum sich so fundamentale Open-Source-Arbeit finanziell bis heute kaum trägt.


Schreibt uns!
Schickt uns eure Themenwünsche und euer Feedback: podcast@programmier.bar

Folgt uns!
Bleibt auf dem Laufenden über zukünftige Folgen und virtuelle Meetups und beteiligt euch an Community-Diskussionen.

Bluesky
Instagram
LinkedIn
Meetup
YouTube

Musik: Hanimo

SPEAKER_02

Hallo und herzlich willkommen zu einem neuen Deep Dive der Programmierbar. Wir sprechen heute über Formisch. Ich bin Dennis und mich unterstützt.

SPEAKER_00

Das ist jetzt natürlich ungünstig, weil ich dachte gerade, Fabian fängt jetzt an, aber außerdem am Start ist Jan Gregor im Getriebe. Ich habe so oft das F von Fabian gedacht, okay, Alphabet, Alphabet, halt dich ans Alphabet, du bist noch nicht dran und hab voll vergessen, dass Fabian unser Gast ist. Sehr gut.

SPEAKER_02

Und wir begrüßen heute unseren Gast Fabian Hiller. Hallo. Schön, dass du da bist, Fabian. Vielen Dank, dass ich da sein darf. Mal wieder. Du bist ja kein Unbekannter der Programmierbarer. Du bist sozusagen auch der nach Jan, der Hasbild. Ich wollte sagen, nach Jan der langjährigste Programmierbar-Mitarbeiter, den wir hatten, aber ist insofern nicht ganz richtig, weil du warst ja trotzdem bei einer der Lotum-GmbHs eingestellt. Also mein halbes Jahr, aber vor allen Dingen für die Programmierbar was gemacht hat. Hast du irgendwas anderes gemacht in der Zeit, als du hier was?

SPEAKER_01

Ich habe die Formulare gebaut, passend zum Thema für die Bewerbungsformulare. Ah, auf unserer normalen Webseite, ja. Und ich habe ein paar Sachen auf der normalen Website gebaut. Okay. Und sonst viel Großteil die programmierbar Website, ein bisschen Podcast. Und sonst fällt mir nichts anderes ein.

SPEAKER_00

Da gibt es auch so ein Special mit Fabian zur programmierbaren Webseite. Die ist zwar nur noch so halb aktuell, aber kann man immer noch hören.

SPEAKER_01

Das stimmt, ja. Trotzdem interessante Learnings, wenn man eine Content-Havy-Seite bauen will.

SPEAKER_02

Und damals habe ich Fabian gefragt, als er sich hier beworben hat oder als wir mit erstmal gesprochen haben, gefragt, was er denn mal irgendwie machen möchte. Damals hat er schon relativ klar den Plan formuliert, irgendwann will ich mal so ein eigenes Unternehmen irgendwie in Silicon Valley gründen. Und ganz so weit weg bist du, nicht? Ich meine, falsche Küste. Und wie weit du Mitgründer bist, weiß ich nicht auch nicht, aber was treibst du denn da gerade? Kann ich auch ein bisschen erzählen. Oder Entschuldigung, wir steigen gleich da ein. Ich habe noch vergessen, sag noch zwei Sätze, was Formisch ist. Ein ganz guter Einsatz für den Pitch und dann steigen wir da nämlich gleich mit.

SPEAKER_01

Also man kann tatsächlich auch ein bisschen über Volleyball oder auch Standard Schema sprechen, falls es interessant ist. Also es hängt alles auch so ein bisschen zusammen. Formisch ist eine neue Formularbibliothek, die ein paar Dinge anders macht als alle anderen. Und ein Teil davon ist, dass die auch verfügbar ist für alle großen Frameworks. Aktuell Sex, sorry, wenn ich abends ähnlich rede. Six, Seven! Frameworks. Und bald wahrscheinlich noch ein paar mehr. Und wir sind jetzt in Release-Kandidat-Stage und wahrscheinlich bald in Wii One. Und gibt auch schon Pläne für Wii Two und was noch alles kommen kann. Und ja, mal schauen, ob wir einen großen Einfluss auf Formulare in den nächsten Jahren haben können. Sehr gut.

SPEAKER_00

Das ist die richtige Einschaltung.

SPEAKER_02

Bevor wir dann gleich thematisch richtig in das eigentliche Thema von heute einsteigen, trotzdem noch ein kurzes Update zu dir. Also, du warst in New York, hast studiert an der Pace University. Yes. Ich habe einen Master in Informatik dort gemacht. Ein Master in Informatik gemacht, auch da geblieben. Und nun? Oder beziehungsweise was waren die wichtigen Schritte, die noch passiert sind und was machst du jetzt?

SPEAKER_01

Nach meinem Master habe ich gestartet bei Motion. Motion ist eine Silicon Valley Company, ein Startup. Ich war dort genau ein Jahr. Und dann habe ich mich Anfang des aktuellen Jahres entschieden, mal so ein bisschen umzuschauen. Und dann hat sich eine neue Möglichkeit ergeben und ich bin als erster Angestellter, als Founding Engineer bei einem neuen Startup gestartet. Wir sind, oh Gott, ich werde jetzt immer wieder mal Englisch sprechen. Placed in New York. Aber wir waren tatsächlich am Anfang der Firma in San Francisco und haben dort aus dem Büro des Investors gearbeitet. Und ja, das heißt, nächster Schritt wäre dann die eigene Company. Sehr gut. Und was macht, was ist, was ist euer?

SPEAKER_02

Ist das öffentlich?

SPEAKER_01

Es ist nicht öffentlich und ich kann noch nicht so viel drüber sprechen, aber ich kann sagen. Irgendein Bereich? Ja, es geht so in Richtung Facility Maintenance.

SPEAKER_02

Facility Maintenance, okay.

SPEAKER_01

Sehr gut.

SPEAKER_02

Und dann, da muss Janis eingreifen oder nicht eingreifen, aber recherchieren oder die Background-Informationen haben. Ich weiß nicht ganz genau, ob wir über Vallibot schon mal irgendwann gesprochen haben. Also mit Sicherheit haben wir das irgendwo mal in einem Podcast erwähnt. Hatten wir dazu einen Deep Dive mit dir mal irgendwie?

SPEAKER_00

Eigene Folge zu Vallibot hatten wir, glaube ich, noch nicht, aber es ist schon ein paar Mal hier in den News.

SPEAKER_01

Die Storie ist die, das letzte Mal, wo ich hier war, habe ich ein Meetup gemacht. Das war damals zu Quick und zu SolidJS. Und wir hatten auch die Podcast-Folgen zu Quick und zu SolidJS aufgenommen. Und bei meinem Vortrag habe ich geteasert, dass ich die Bachelorarbeit mit Ryan Carnado und Ms. Co Haverry am Vorbereiten bin. Und die Bachelorarbeit, das ist am Ende Walibot geworden. Das heißt, seitdem hatten wir jetzt keinen engeren Kontakt oder keine Podcast-Folge oder ähnliches.

SPEAKER_00

Vielleicht an der Stelle auch den 30-Sekunden-Pitch, was Walibot nochmal ist, für alle, die die letzten programmierbaren News-Folgen dazu oder so vielleicht nicht mitbekommen haben.

SPEAKER_01

Ja, Walibot ist eine Schema-Validation Library, mit der man strukturierte Daten validieren kann und es ist TypeScript-nativ und du kannst dann auch die Input und Output-Daten, also den Typ der Daten, Infern, ableiten. Und das Besondere in Walibot ist, dass die gesamte Bibliothek, sowie auch Formisch, können wir gleich noch drüber sprechen, vollständig modular aufgebaut ist. Was bedeutet, nur das, was du wirklich nutzt, landet dann am Ende auch in deinem Bundle. Und dadurch ist Walibot sehr effizient in verschiedenen Arten und Weisen. Und um da mal einen Vergleich zu ziehen, die wahrscheinlich bekannteste oder eine der bekannteren Schema-Libraries ist Sod. Und Sod ist wahrscheinlich ungefähr gerade, glaube ich, bei vielleicht so 15 Kilobyte, wenn man das nutzt und wenn man auch nur einen ganz kleinen Teil davon benutzt. Und bei Valibot beginnt es ab 600 Bytes oder so. Und nur das, was du wirklich benutzt, kommt dann oben drauf. Und da das auch in verschiedene Arten und Weisen optimiert ist, zum Beispiel auch für Compression, kommen immer nur ein paar wenige Bytes hinzu. Zum Beispiel, wenn man jetzt einen String validiert und dann noch eine E-Mail validieren möchte, nicht eine E-Mail, eine Number oder auch eine E-Mail ist egal, dann kommen in der Regel nur 50, 60 Bytes oben drauf, je nachdem, wie komplex die zusätzliche Validierung ist. Aber da, das liegt auch an der modularen Architektur, dadurch, dass der Code sehr einheitlich geschrieben und aufgebaut ist, das erforderlich, damit ein modulares System ineinander zusammengesteckt werden kann, lässt sich das sehr gut komprimieren, wodurch man einfach eine höhere Compression erreichen kann und dadurch auch immer nur ein bisschen mehr Bytes hinzukommen.

SPEAKER_00

Ich muss mal ganz ketzerisch fragen, so in Zeiten, wo mein Handy hier mit 5G irgendwie über ein Gigabit macht, wenn es gute Laune hat, wie wichtig sind denn 10, 15 Kilobyte heutzutage noch?

SPEAKER_01

Kommt ganz drauf an, wenn du die beste Verbindung hast, den stärksten Computer oder einen stärkeren, dann wahrscheinlich keine Rolle mehr. Wenn du aber, ich merke es jeden Tag, wenn ich in der Subway bin, New York, da habe ich die ganze Zeit kein Internet und bin dann froh, wenn ich ein paar Bytes runterbekomme, während der Zug ein- und ausfährt. Und das gibt bestimmt auch noch. Ich meine, selbst in Deutschland, ich wollte gerade sagen, viele Länder, wo es, aber ich meine, wenn ich hier im Zug sitze, also ich hatte es auch jetzt auch jetzt hier bei der Herfahrt, einen Teil der Zeit kann ich einfach nicht arbeiten, weil er einfach zu langsam. Und ich bin einfach jemand, mir ist Effizienz und auch irgendwie so Sinnhaftigkeit und das ist alles sehr wichtig. Ich liebe auch Sachen mit High Quality zu bauen und am Ende des Tages auch so eine Art Philosophie. Ich weiß, es gibt viele, die baschen einfach alles zusammen und es geht nur darum, dass es funktioniert. Und dann gibt es andere, die möchten wirklich alles im Detail verstehen und möchten das möglichst effizient bauen und haben vielleicht da auch so einen künstlerischen Anspruch. Am Ende ist es ja auch so ein bisschen art, ne? Was du da so baust und welche Entscheidungen du triffst und die Eleganz, die da dann vielleicht entsteht. Ja, und das würde ich sagen, spielt das so alles so rein.

SPEAKER_02

Da weißt du, was sich im späteren Fall auf der Podcast-Folge noch für eine Diskussion aufdringt, die wir dann haben. Aber Valibot war ja auch schon relativ erfolgreich, wenn ich das irgendwie richtig im Blick habe.

SPEAKER_01

Ja, ich kann es gerade mal selber nachschauen, aber Discord, das war der falsche Knopf. Valibot hat sich sehr gut entwickelt. Ich kann mal ganz kurz so ein bisschen die Historie-Revue passieren lassen. Ich hatte die Bachelorarbeit, ich glaube, es war 2023, im August abgegeben. Ich glaube im September dann veröffentlicht. Da war ich dann auch schon in New York. Ich habe die, glaube ich, zwei, drei Tage, bevor es dann losging, abgegeben. Also alles Schlag auf Schlag. Und ja, und dann im ersten Semester hatte ich viel Zeit, aber nicht ganz so viel und habe es weiter maintained. Und dann im zweiten Semester haben wir das ganze Ding nochmal komplett neu geschrieben. Dort hatte ich ein bisschen mehr Zeit. Und im dritten Semester dann auch. Das heißt, ich habe im Grunde abseits vom Studium Fulltime-Vali-Bot gemacht. Und ja, mittlerweile, um da mal dafür ein Gefühl zu bekommen, liegen wir bei über 12 Millionen wöchentlichen Downloads und wahrscheinlich grob bei 50 Millionen Monatlichen. Und wir haben ein extremes Wachstum. In den letzten Monaten kann man schon fast sagen, so ein bisschen exponentiell. Also vor einem Jahr waren wir noch bei so einer Million wöchentlichen Downloads. Und dann im Laufe der Zeit habe ich auch mit Colin, dem Creator vom Z, meiner größten Competition im Grunde, und auch mit David von ArcType, zusammen Standard Schema entwickelt. Und Standard Schema ist nochmal eine ganz andere Nummer. Vielleicht kurz zur Erklärung. Standard Schema ist ein standardisiertes Interface, des Schema Validation Libraries, TypeScript Schema Validation Libraries implementieren können. Und wenn sie das tun, dann gibt es eine einheitliche Schnittstelle, die Third-Party Libraries nutzen können, sowas wie Tanstack Router oder React Hoke Forms. Und dadurch haben die eine Schnittstelle, um zum Beispiel den Type abzuleiten oder auch die Validierung durchzuführen. Und dadurch, dass das mittlerweile, kann man schon sagen, ein Industriestandard geworden ist, sind die Downloadzahlen nochmal ganz anders. Ich schaue mal kurz nach.

SPEAKER_04

Ich glaube, das letzte Mal, als ich geschaut habe, waren wir. Ups, ich habe es falsch angegeben.

SPEAKER_01

Genau, wir sind aktuell bei Standard Schema bei fast 80 Millionen wöchentlichen Downloads auf NPM. Damit ist es sicher unter den größten Packages, die jemals gebaut wurden. Ich glaube auch das Wachstum, das wir haben seit Erstellung, also wir waren vor einem Jahr noch bei so 3 Millionen, ist, glaube ich, auch das, wie wir wahrscheinlich kaum bisher gesehen haben in der TypeScript-Welt. Und monatlich sind wir gerade bei über 300 Millionen. Und es liegt halt dran, weil große Bibliotheken das bei sich einbinden, weil sie sich auf den Standard verlasten. Und dadurch entsteht dann natürlich auch so ein exponentielles Wachstum. Um das mal in Relation zu setzen, React ist aktuell bei 140 Millionen und Standard Schema ist bei knapp 80.

SPEAKER_02

Was bringt einem das außer Ruhm und Ehre? Ich habe es gesehen, es bringt einem wahrscheinlich nur Ruhm und ist auch schon nicht schlecht.

SPEAKER_00

Nein, das ist auch konnten, aber es bleibt immerhin Auftritt in der Programmierbar. Also das ist ja auch darf man nicht vernachlässigen.

SPEAKER_01

Ist ja auch reich Ruhm und Ehre. Man muss definitiv sagen, es ist sehr schade, dass wir als Industrie noch keinen Weg gefunden haben, dass sich auch finanziell rechnet, weil Walibot alleine wäre definitiv ein Full-Time-Job. Und die Sponsorings, die ich, also ich, ich werbe nicht aktiv für Sponsorings, ich gehe auch nicht aktiv oder fast auch sehr selten nur auf Unternehmen zu. Ich denke, da gibt es bestimmt noch viel mehr Unternehmen, die vielleicht sogar auch Interesse hätten. Aber das kann, das kannst, also ein US-Softwareentwicklergehalt ist so viel mehr. Das macht einfach leider keinen Sinn. Ich denke, da gibt es immer wieder Wege, wie man es machen kann. Manche Projekte eignen sich auch besser zur Monetarisierung oder um vielleicht eine Plattform herumzubauen. Ich sag mal so, bei Valibot ist es schade, dass es ein sehr fundamentaler Teil ist, der allerdings nur ein kleiner Teil ist und jetzt nicht ein ganzes Framework, wo man dann vielleicht eine Hosting-Plattform bauen kann oder vielleicht ein AI-Framework, wo man dann irgendwie seine Evels oder Tracers oder irgendwie als Produkten der Cloud haben kann. Das naheliegendste bei Alibot oder den anderen Projekten wäre wahrscheinlich einer großen Plattform beizutreten, einen Großteil Open Source zu machen und natürlich dann halt auch Teil der jeweiligen Brand zu sein und auf Konferenzen zu gehen. Der andere Weg ist vielleicht noch Consulting, aber da ist halt auch die Frage, wie sich das jetzt mit AI verändern wird.

SPEAKER_02

Ja, und was sind so die, wenn du sagst, das ist ein Full-Time-Job, also was macht man daran, wenn man jetzt sagt, okay, das ist eine Version 1 und das erstmal stabil, so was ist das, also kann man das runterbrechen, was sind so die wichtigsten Felder, an denen gearbeitet werden müsste?

SPEAKER_01

Ja, der wichtigste am Ende ist natürlich, oder ich würde vielleicht sagen, so die zwei wichtigsten sind die, was ist denn das deutsche Begriff für Maintenance? Die Wartung. Die Wartung nutzen wir. Und Wartung bedeutet im Grunde Issues auf GitHub, Pull Requests und dann natürlich auch die Weiterentwicklung. Das zeigt natürlich auch so ein bisschen zusammen. Und wenn man da sehr viel Zeit hat und in einer halb einer Stunde oder so auf ein Issue antwortet, dann kommt ja auch direkt wieder eine Antwort. Und wenn man jetzt dabei erst nach einem Monat antworte, dann verzögert sich alles und da lässt sich sehr schwer nun ein Projekt aktiv betreuen. Und im Moment muss ich halt immer so entscheiden, versuche ich schnell zu antworten oder versuche ich mich jetzt wirklich nur auf die Features, die ich selber im Kopf habe, zu konzentrieren, um überhaupt mal voranzukommen. Weil wenn ich mich zum Beispiel mich entscheiden würde, alles schnell zu beantworten, dann würde ich wahrscheinlich nur Zeit verbringen mit Nachrichten beantworten und dann hat niemand am Ende was davon. Ja, und abseits dessen natürlich Social Media, Community, Discord, ich meine, es kann so in alle Richtungen gehen am Ende des Tages. Man kann natürlich auch ein Beispiel von Standards Klima mit anderen Leuten sprechen und auf Ideen kommen und neue Ideen entwickeln. Also ich würde sagen, es hat am Ende keine Grenzen. Ja, aber Walibot war definitiv von den Stunden her ein Full-Time-Job während im Studium. Und nach dem Studium, als ich dann angefangen hatte, Vollzeit zu arbeiten, war es einfach so nicht mehr möglich. Und ich habe dann mehr oder weniger zufällig formisch gebaut. Da hat wahrscheinlich Walibot auch ein bisschen drunter gelitten. Aber mal schauen, wie es sich langfristig dann am Ende auswirkt. Ich sehe jetzt auch schon Leute, die durch Formisch auf Valibot wiederkommen. Also irgendwie kommt dann doch wieder alles zusammen und dann formisch. Also du hast gerade gesagt, das musst du sehen schon ein Abfallprodukt. Ganz aus was finisch. Also mein erstes öffentliches Open Source-Projekt war Modular Forms. Das war eine Formularbibliothek. Das war bestimmt auch der Grund, warum ich am Ende den Kontakt zu Ryan von SolidShares und auch zu MISCO von Angular und Quick aufgebaut habe. Und auch ein Grund, warum ich dann herkam, um das Meetup zu machen und die Podcasts. Und ja, Modular Forms war eine Formularbibliothek, die damals schon Modular war, also Modular und viele Ideen von da sind dann auch in Balibot geflossen. Modular Forms hat so sein eigenes kleines Validierungssystem, das auch modular war. Und ich glaube, ich war damals zu einem gewissen Grad Vorreiter in der Art und Weise, wie ich die API gebaut habe. Es gab ein paar parallele Projekte, die auch in die Richtung gingen. Und das hat sich vermutlich alles auch so gegenseitig ein bisschen inspiriert. Also die API, die ich damals gebaut habe, ist im Grunde sehr stark, was wir heute bei 10 Stack Forms sehen zum Beispiel. Und nach außen war es eine super Library, aber intern habe ich einfach am Ende des Tages Fehler gemacht, auf die ich dann gelernt habe. Ein Teil der TypeScript-Performance war nicht performant, weil wir haben die Pfade von verschachtelten Objekten berechnet und ein Objekt, also das steigt ja dann exponentiell, wenn das, wenn man das tief verschachtelt, was dann die Performance killen kann. Dann gibt es natürlich noch viele andere Gründe. Und dann auch, wie ich intern den State abgebildet habe, war nicht optimal, wodurch es dann zu vielen Bugs kam und auch Bugs, die man da irgend einfach immer fixen kann. Und deshalb hatte ich schon immer wieder mal die Idee, Modular Forms neu zu schreiben. Und am Ende hat es Sinn gemacht, eine neue Brand draus zu bauen und es wurde dann formisch, weil es einfach viele größere Breaking Chains gab und es eigentlich am Ende des Tages ein komplett neues Projekt geworden ist. Ja. Und mehr oder weniger zufällig über die Zeit ist dann formisch entstanden.

SPEAKER_00

Vielleicht, um da einzusteigen, weil du auch so gesagt hast, dass das Formisch ist, so ein bisschen aus Valybot heraus entstanden. Wenn ich an so ein Form-Library denke, dann denke ich so an zwei Teile oder zweieinhalb. Das eine große ist so Rendering, UI-Komponenten, wie sehen Inputfelder aus, wie verhalten die sich und so weiter. Und das andere ist alles, was mit Validierung, Business-Logik, Fehlerhandling, Abhängigkeiten von Formfeldern und so weiter zu tun hat. So, und Formisch ist ja keine UI-Library, sondern eher der letztere Case, also alles, was mit Logik, Validierung und so weiter zu tun hat. Was ist denn dann Formisch mehr als Valibot, was ja schon wahrscheinlich 90% davon ist?

SPEAKER_01

Würde ich gar nicht sagen. Valibot ist am Ende Validierung und Types. Und Formisch ist am Ende, wie der State abgebildet oder gespeichert wird. Also State meine ich, die Eingabe des Formulars und auch in welchem Zustand sich das Feld jeweils befindet, wurde es bearbeitet, wurde es berührt, ist die Eingabe valide, all das handelt formisch für dich intern und gibt dir eine hübsche API nach außen, auf die du dann zugreifen kannst. Und das Ganze ist fully type-safe, wodurch wir dann verhindern möchten, dass man selbst irgendwelche Fehler aussehen macht oder vielleicht auch dein Agent heutzutage. Ja. Und da hängt schon nochmal einiges dran, was man da erfinden, bauen muss, damit es dann am Ende auch gut funktioniert.

SPEAKER_00

Ist es dann fair zu sagen, dass Formisch im Prinzip die Grundlage für meine Form-UI-Library ist? Also wenn ich jetzt, ich hab eine Component Library und so weiter, aber die ist halt noch nicht mit Leben befüllt und ich will jetzt hier meine Formkomponenten bauen, dann ist quasi Formisch das, was so der, ohne das Abwärts zu meinen, also der Glue-Code zwischen so quasi dem Datenmodell und dem UI-Layer irgendwie sein kann.

SPEAKER_01

Ja, genau. Es gibt auch zum Beispiel einen offiziellen Guide zu Formisch in der Chat CN-Dokumentation, wo du zum Beispiel Formisch an die Chat-CN-Komponenten anschließen kannst. Und kannst dann somit deine Formulare ziemlich einfach bauen.

SPEAKER_00

Und Formisch übernimmt aber nur alles Clientseitige.

SPEAKER_01

Aktuell ja, aber im Grunde. Schon bevor ich Formisch gebaut habe, das war auch damals schon bei ModularForms implementiert, war die native Serveranbindung und auch die Client-Server-Kommunikation ein Ziel oder ein Fokus. Und Teile in Formisch sind auch schon so gebaut, dass das am Ende möglich ist, dass zum Beispiel dein Formular auch ohne JavaScript nur mit einem Post-Request und Form Data an deinen Server gesendet werden können. Und dann das Schema, das du klientseitig verwendest, kann dann auch serverseitig verwendet werden. Das heißt, du musst es nur einmal schreiben. Und dieselbe Validierung kann dann auch serverseitig stattfinden, bevor dann die Daten im Hintergrund weiterverarbeitet werden. Genau, also das steht aktuell für V2 auf der Roadmap. Und ich denke, wir sind vermutlich dann auch das erste Formular-Framework-Library, dass das alles so abbildet und abbilden kann. Also ich weiß, es gibt schon Libraries, die das irgendwie und dann vielleicht mit einem spezifischen Hinbekommt, aber ich glaube, wir werden die ersten sein, die das dann mit einer mehr oder weniger Unified API Implementierung für Next.js, Remix. Wobei bei Remix muss man jetzt gucken, welche Richtung es geht.

SPEAKER_00

Wahrscheinlich für TypeScript, genau. Weil ich glaube, in Frameworks und Ökosystemen, die halt schon immer so ein bisschen mehr aus Server-Side-Rendering-Richtungen kamen, weiß nicht, Blazor, Laravel und sowas alles. Da gibt es, glaube ich, ähnliche Ansätze schon länger, aber die hängen dann halt auch an dem Backend so, ne? Die haben halt dafür dieses nur Kleinseitige nicht.

SPEAKER_01

Ja, und dann musst du wahrscheinlich in zwei Programmiersprachen arbeiten oder ja. Ich meine, das hat schon, oder es macht, kann schon seinen Sinn haben, irgendwie ein Nax, Zwölf-Kit, NextJazz, was auch immer. Solid Start oder jetzt Ten Stack Start zu verwenden.

SPEAKER_00

Und wenn du sagst, Formisch hat sich so aus Valibot heraus ergeben, Valibot war stellenweise schon ein Vollzeitjob. Was hast du dir dabei gedacht, zu sagen, ich brauche noch so einen zweiten Vollzeitjob, also nur ein unbezahlter Job mit Valibot, das ist irgendwie nicht genug. Es muss noch ein zweites Projekt irgendwie her.

SPEAKER_01

Ja, also es ist schon eigentlich ein großer Zufall, dass es Formisch heutzutage gibt. Ich hatte schon so an der ersten Version gebastelt. Das war bestimmt Ende 2003 und Ende 2024, glaube ich. Und ich bin mehrfach gescheitert, weil ich einfach, also formisch ist am Ende irgendwas, was halt noch nie jemand so gebaut hat. Ist es auch kein großes Hexenwerd, also ich will es auch nicht zu groß aufblasen. Aber am Ende muss man halt sich Gedanken machen, Sachen ausprobieren. Also als ich Formisch gestartet habe, waren sehr viele Sachen nicht klar und auch nicht glaub, dass es überhaupt so möglich ist. Und vielleicht kann ich das kurz mehr erklären, warum. Es gibt auch einen Blogpost auf unserem Blog bei Formisch über die Architektur. Da kann man sich auch gerne mal reinlesen, wenn man da Lust drauf hat. Was macht Formisch? Formisch mappt den State des Formulars in einzelne Signals. Das heißt, jede Eingabe ist ein eigenes Signal, jeder Zustand eines Felds, ob es bearbeitet wurde, ob es einen Fehler hat, was die Fehler sind, das sind alles einzelne Signals. Und das Besondere hier ist, dass wir nicht, wie fast alle anderen Framework Agnostic Libraries, einen eigenen Reactivity-Layer gebaut haben. Was wir gemacht haben, ist, wir oder ich dass wir die nativen das native Reactivity-System jedes Frameworks im Bildprozess in die Library so gesehen reinbacken. Und dadurch nutzt du, wenn du View nutzt, dein normales Rev, wenn du in Svelte arbeitest, deine Runes in Solid, dein Create Signal. React braucht eine kleine Sonderbehandlung. Ja, und dadurch hast du halt keine zusätzliche Abstraktionskost. Dein Reactivity-System verhält sich so, wie du es erwartest. Und du könntest zum Beispiel auch dann deine Formular-Updates zum Beispiel batchen mit anderen State-Updates und es würde sich ganz normal halten, so wie du es erwarten würdest. Und dadurch ist es halt schnell und nativ und klein und effizient und ja, ich denke am Ende auch einfach sehr stabil und robust.

SPEAKER_02

Wie sehr unterscheiden sich diese unterschiedlichen Sind es tatsächlich Adaptionen oder ist es nur bei React, dass man was Eigentliches bauen musste?

SPEAKER_01

Also wie groß ist die Anpassung praktisch für ein Framework? Sehr klein. Also Formisch hat einen Framework-agnostischen Core, der im Grunde die Hauptlogik abbildet, die am Ende des Tages unabhängig vom jeweiligen Framework ist. Zum Beispiel, wenn du einen dynamischen Field Array hast, also ein dynamisches Feld, wo neue Felder zugefügt werden, dann kümmert sich die Core-Library darum, dass das am Ende eingefügt wird oder wenn was verschoben wird, dass dann der ganze State dementsprechend angepasst wird. Das macht alles die Core-Bibliothek. Dann gibt es noch ein Methods-Package, da liegt auch ein Teil der Logik drin und dann haben wir die einzelnen Framework-Implementierungen und die Framework-Implementierung, die kümmern sich im Grunde nur um dann zum Beispiel in React Solid und so weiter einen Field-Component bereitzustellen in dem jeweiligen Framework oder Hooks oder je nach Framework Primitives Rune. Heißt es Runes? Ich weiß es nicht, oder welche andere Begriffe es noch gibt. Ja, genau. Und das sind im Grunde recht kleine Layers am Ende, um dann die Library benutzen zu können. Und was halt das Besondere ist, wenn man die Bibliothek für ein spezifisches Framework bauen würde, wäre im Grunde am Ende nichts anderes. Und das ist das Besondere. Weil bei Modular Forms zum Beispiel hatte ich damals versucht, so einen agnostischen Layer zu bauen und am Ende gab es in alle Richtungen Nachteile und dann habe ich es einfach dupliziert und mehrfach gebaut. Aber sobald man dann das für drei, vier Frameworks gebaut hat, irgendwann kommt man bei der Maintenance nicht mehr hinterher und dann verhaltet sich alles wieder anders und so weiter. Und deshalb sage ich, oder würde ich sagen, Formisch ist sehr stabil und sehr, macht alles Sinn und sehr schlüssig. Und meines Erachtens war es definitiv für die Zukunft.

SPEAKER_00

Wenn man sich die Formis-Webseite anguckt, dann sieht man ja auch, wenn man die Guides anguckt, muss man gerade so auswählen, will ich das hier in React sehen, in Preact in Quick und Solid und Zwelt, was du gerade auch alles aufgezählt hast. Und ich habe mich vorhin beim Einlesen schon so gefragt: so, geht es überhaupt mit Vanilla.js? Und jetzt, wo du gesagt hast, der Core braucht im Prinzip so ein Signal-Handling aus einem dieser Frameworks, frage ich mich, wenn ich jetzt nur Vanilla.js mit Webcomponents bauen will, so, kann ich dann Formisch überhaupt benutzen? Aktuell nicht, wir könnten es möglich machen.

SPEAKER_01

Was wir machen, im Buildstep des Core-Package schaut sich unser Bundler jede einzelne Datei an und prüft, ob es von der bestimmten Datei eine React-Version gibt, eine Angular-Version und so weiter. Oder Angular nur nicht, aber bald. Und wenn es herebt, dann wird der Framework spezifische Code ausgetauscht. Und das kann man sich so vorstellen. Die Reactivity Primitives, die formisch verwendet, die folgen einer standardisierten API. Also wir haben intern auch einen Great Signal, einen Batch, einen Untrack und so weiter. Das sind so typische Reactivity Primitives, die man braucht, um so ein Reactivity-System mit Signals zu bauen. Und was wir im Grunde machen, wenn jetzt Despive zum Beispiel Rev heißt, dann schreiben wir halt das Rev so um, dass es halt am Ende Great Signal heißt. Und dann passt es vermutlich sogar schon perfekt in, was Formisch erwarten würde. Und das ist alles, was wir machen. Und im Bildschritt für jedes Framework tauschen wir halt dann oder backen wir dann halt so gesehen die nativen Reactivity Primitives des jeweiligen Frameworks rein. Und deshalb müssten wir, wenn wir das für nativ, von LandChares anbieten wollten, bräuchten wir ein Vanilla-Package. Das machten dann vermutlich ein eigenes kleines Signal-System. Bautenbereitstellung. Also was wir bei React machen, wir haben so gesehen ein eigenes kleines Subscription-System, im Grunde sind es mehr oder weniger Signals. Und das merkt sich halt, wenn ein Signal innerhalb von einer bestimmten Komponente oder Hook benutzt wird. Und wenn es der Fall ist und sich das ändert, dann wird einfach ein React ein Re-Render für die jeweilige Komponente getriggert. Was bedeutet, wenn wir jetzt ein kompliziertes Formular haben und sich irgendwo ganz schief vertacht, ganz tief verschachtet, eine Eingabe ändert und nur die Eingabe, nur der Zustand sich verändert, nichts anderes, dann wird auch nur dieses kleine Formularfeld neu gerendert.

SPEAKER_00

Okay. Wie ist es denn, wenn ihr so eine große Menge an Frameworks unterstützen müsst, müsst ihr schon auch so ein bisschen verstehen, was davon vielleicht am ehesten und wie viel und wie genau verwendet wird. Nutzt ihr da irgendeine Art von Telemetrie oder verlasst ihr euch da allein auf Feedback aus der Community? Das musst du mir genauer beschreiben, was du damit nutzt. Ne, du könntest ja in deinem Bildprozess, so einen kleinen Analytics-Call irgendwo hin machen, bei einem gewissen Percentage der User, der sagt, hey, ich bin hier gerade im Bildprozess und ich baue gerade für View oder ich baue gerade für React. So damit ihr einfach so ein Gefühl kriegt an eurem Ende der Leitung sozusagen so, okay, was wird halt am häufigsten eingesetzt und wo müssen wir uns vielleicht noch ein bisschen was anschauen?

SPEAKER_01

Ja, also der Bildprozess, der findet im Grunde statt, wenn wir das, wenn wir die einzelnen Pakete publishen. Das heißt, das bekommst du als Nutzer nicht mit, du als Nutzer importierst oder installierst und importierst einfach ein NPM-Package. Alles fühlt sich ganz normal an, da ist keine Matching dabei. Genau.

SPEAKER_00

Ich dachte, du meintest den Bildprozess beim Projekt dann.

SPEAKER_01

Formisch ist ganz simpel zu verwenden. Du tust im Grunde nur Formisch und Valibot installieren. Formisch dann für ein jeweiliges Framework und hast eine recht einfache API und kannst im Grunde innerhalb von Minuten loslegen. Wir haben auch einen Formisch-Skill, der deinem Agent alles beibringt, was er wissen muss.

SPEAKER_02

Ich glaube aber auch die Großmodelle, die kennen, glaube ich, sogar schon Formisch und wäre meine Frage gewesen, ob Valibot und Formisch groß genug sind, um so ein bisschen zu einem Standard-Repository oder Standard-Knowledge zu gehören.

SPEAKER_01

Valibot definitiv. Ich meine, ihr könnt einfach euer Model, eure Wahl danach fragen. Formisch kommt es wahrscheinlich drauf an, wann der Cut der Trainingsdaten waren. Und dann ist halt auch die Sache, die meisten Modelle haben ja Zugriffs aufs Internet oder haben irgendwas angebunden, das denen einen weiteren Kontext liefert, falls erforderlich. Und deshalb, ich hatte persönlich noch nie Probleme damit, aber man kann natürlich im Falle von Valibot muss man es wahrscheinlich nicht mehr, aber bei Formisch kann man auch alternativ den Skill installieren, da ist dann alles Relevante drin. Und dann funktioniert das. Also ich, wir nutzen, also ich nutze bei uns in der Company Formisch natürlich unsere Formulare und lasse meine Agents die Formulare vorschreiben.

SPEAKER_00

Dann biegen wir da jetzt mal ab, oder? Nee, ganz kurz, also nachdem wir jetzt verstanden haben. Doch nicht. Gleich darf Dennis zu seinem AI-Zeug kommen. Nachdem ich jetzt den Unterschied bei dem Bildprozess verstanden habe und auch gesehen habe, dass er ja dann unterschiedliche Pakete published für, ne, benutzt es mit React, benutzt es mit und so weiter. Habe ich mir gerade in der Anleitung nochmal angeguckt, dass wie du auch zu Recht gesagt hast, naja, musst Valibot zuerst installieren, dann installierst du Formisch, weil das eine Peer-Dependency ist und du musst quasi beide von Hand installieren. Wieso das und wieso bringt Formisch nicht einfach Valibot mit? Wieso habe ich da mehr Arbeit mit, dumm gefragt? Okay, du fragst, warum wir Valibot nicht einfach reinbacken in Formis.

SPEAKER_01

Ja, oder als Transient-Dependenciert einfach mitbringen. Könnten wir rein theoretisch machen. Ich denke aber, dass wir früher oder später auch weitere Schema-Libraries unterstützen werden. Und demnach macht es Sinn, dass du das dann selber installierst, je nach Bedarf. Aktuell ist Valibot zu einem kleineren Teil in die formische API reingebacken. Aber einen Großteil dadurch könnten wir durch Standard Schema ersetzen. Jetzt kommt bestimmt auch die Frage, hey, warum, also du erfindest Standard Schema und dann taust du das nicht ein. Das hat seinen Grund, weil wenn ein Formular initialisiert wird, dann läuft formisch das Valibot-Schema ab, versteht, wie die Struktur aussieht und initialisiert die einzelnen Signals, sodass die von Anfang an zur Verfügung stehen. Und genau, da muss man halt spezifisches Schema-Knowledge haben und es bildet Standard-Schema nicht ab. Das heißt, wenn wir mehrere Frameworks unterstützen wollen, dann müssen wir entweder ein kleines Adapter-Pattern bauen oder wir packen das auch irgendwie in den Bildprozess. Da muss ich mir noch Gedanken machen, was die beste Lösung ist. Aber das ist so ein bisschen der Grund.

SPEAKER_00

Okay, das beantwortet die Frage vollkommen. Also wenn man in Zukunft noch andere Libraries unterstützen will, macht das ja Sinn, die nicht so stark miteinander zu verheiraten. So. Und jetzt, Dennis, sitzt schon irgendwie, nee, nicht sitzt auf Hummeln, sitzt auf Kohlen, hat Hummeln sonst wo. Keine Ahnung, stell deine AI-Frage. Die eine. Die eine, die ist immer curious.

SPEAKER_02

Was sagst du zu AI? Nein, ich meine, ich finde es ein spannendes Spannungsfeld, das hört sich doof an. Ein interessantes Spannungsfeld irgendwo. Weil auf der einen Seite, wir in der Programmierbar so ein bisschen natürlich überlegen, haben wir den News überlegt, ne, wie geht das weiter? Wir hatten ja immer AI getrennte News und normale News und irgendwo so, nimmt die Relevanz nicht irgendwie ab für Updates aus der Welt, ne, für, keine Ahnung, ob jetzt irgendeine neue Bahnversion da ist oder wie auch immer, weil ich sie sowieso nicht mehr benutze als EntwicklerInt. Und jetzt hast du zum einen gesagt, ne, okay, ja, auf der Arbeit hast du den Skill oder gibt es auch den Skill und dann können die Agents da irgendwie das nutzen und auf der anderen Haltseite hast du gesagt, du bist schon irgendwie verliebt in dieses Detail, dass es halt super, super genau funktioniert und dann noch den letzten Byte irgendwie raus rauskitzelt. Von daher finde ich deine Perspektive darauf super spannend. Also wird es das immer noch weiter geben, sodass man, also dass es diese Frameworks gibt, die sich auch in irgendeiner gewissen Weise weiterentwickeln, weil sie halt Technologien ausnutzen, irgendwie state of the art sind, kann dabei AI unterstützen und wie viel brauchen wir das überhaupt noch.

SPEAKER_01

Ich würde auch sagen, vor so ein, zwei Jahren war ich mir auch sehr, sehr unsicher, in welche Richtung es geht und man kann es natürlich auch jetzt nie vorhersagen. Sonst würde ich wahrscheinlich auch ganz andere Entscheidungen treffen, wenn ich die Zukunft wüsste. Viel mehr Geld verdienen. Ich meine, vor so ein, zwei Jahren wussten wir ja nicht, brauchen wir überhaupt noch Libraries und Frameworks oder schreibt AI alles irgendwie raw from Scratch. Und ich glaube, zumindest in absehbarer Zeit, also es hat sich weiterhin durchgesetzt, dass Libraries und Frameworks verwendet werden und man hat ja eher gesehen, dass es da nochmal so einen exponentiellen Boost gibt, weil zum einen sehr viel mehr gebaut werden kann und weil durch AI natürlich auch eine ganz neue Zielgruppe Zugang zu diesen ganzen Programmiertools bekommen hat. Und ich denke, das wird jetzt erstmal eine Weile so weitergehen. Und ich denke, Open Source wird weiterhin ein sehr großer und wichtiger Bestandteil sein. Und alles, was in Production eingesetzt wird und erfolgreich und groß wird und irgendwann sicher, stabil, schnell, was auch immer laufen muss, braucht zumindest in absehbarer Zeit noch Leute, die halt drauf schauen und es sicherstellen. Ich denke, wir werden in den nächsten Jahren definitiv viel mehr neue Tools bauen, die dann halt die Abstraktionsebene erweitern und dann halt auch Leute Production Code shippen lassen, die wirklich keine Ahnung mehr haben. Aber ich denke, das wird halt ein Prozess sein über die nächsten Jahre. So wie wir, so wie viele von uns wahrscheinlich keinen Assembler mehr schreiben können und trotzdem halt irgendwie was Cooles bauen können, wird sich das wahrscheinlich so weiterentwickeln. Das heißt, ich denke, die ganzen Open Source-Projekte werden definitiv weiter gebraucht. Und es ist aktuell nicht absehbar, dass AI alles raw schreibt und Bytecode ausliefert, wann uns keinen Grund mehr gibt, es zu kontrollieren. Ja, aber definitiv hat sich die Landschaft verändert. Zu der Zeit, wo ich Formisch gebaut habe, war bestimmt so ein Allzeithoch in der Visibility, Importance und die man so als Open Source Maintainer hatte. Auch ein Grund, warum Walibot überhaupt funktioniert hat. Ohne mein Background mit Valibot und das bestehende Netzwerk hätte auch Formisch mit großer Sicherheit nie funktioniert. Und selbst jetzt muss ich schon hart kämpfen, damit Formisch langfristig auch den Durchbruch hat und erzielt. Ja.

SPEAKER_00

Da würde ich das vielleicht einmal anschließen, weil als du vorhin die Downloadzahlen genannt hattest von Valibot und Sot, habe ich mir mal auf DevPick, das ist so eine Plattform, da kann man so Packages miteinander vergleichen, das mal angeschaut. Und man sieht diesen Uplift, den du bei Walibot beschrieben hast, eben schon auch sehr deutlich. In den letzten Monaten geht das schon deutlich schneller hoch. Den sieht man aber bei Sot, wenn man das im Vergleich daneben dran plottet, eben auch und deutlich schneller, ja. Und wenn man sich das anguckt, wann beide Linien ungefähr anfangen, so exponentiell zu beschleunigen, ist das so Ende letzten, Anfang diesen Jahres. Also, ich würde mal behaupten, so dieser Moment, als Coding-Agents Mainstream gegangen sind. Also Mainstream ist vielleicht ein bisschen, wir leben ja auch immer noch in so einer Bubble, insbesondere wir hier alle, ja, aber wo sie halt so einen Durchbruch gehabt haben. Und was man da vielleicht ja sieht, ist, dass die Libraries, die eh schon etabliert sind, halt massiv davon profitieren, weil wenn dein Coding-Agent irgendwas bauen muss und der braucht jetzt eine Validation-Library, dann nimmt er halt die, die irgendwie in seinem Korpus drin ist, die er kennt, die irgendwie sehr prominent platziert ist und die profitieren dann ungemein davon. Und Valibot und andere vielleicht auch, aber eben nicht in dem Umfang. Und von daher ist vielleicht die größere Challenge, oder meine Frage an dich, ne, ist vielleicht nicht die größere Challenge, nicht, dass es jetzt AI gibt und weniger geschrieben wird, sondern es wird viel mehr geschrieben, aber wir haben so ein Discovery-Problem vielleicht in Open Source. Und du musst halt irgendwie schauen, wie kriegst du deine Library überhaupt vor die Tür.

SPEAKER_01

Ja, ich glaube, das ändert sich gerade enorm stark. Früher war die ganze Aufmerksamkeit, die heute auf AI ist, unter den Entwicklern schon sehr stark auf Open Source. Und wenn was Neues rauskam und das man cool fand, dann hat man es halt ausprobiert und getestet und so weiter. Ich denke, diese Dynamik wird sich definitiv stark verändern, langfristig. Immer mehr Leute, die jetzt Valibot Informische Wenden werden, werden das vielleicht unbewusst machen, weil der Agent die Entscheidung trifft. Und selbst wenn es bewusst passiert, wird vermutlich der Agent einen Großteil des Codes schreiben und man wird jetzt nicht mehr von Hand die Dokumentation lesen oder so ein tiefes Verständnis für das Ganze aufbauen. Das heißt, der Weg, wie man da reinkommt am Ende in der Produktensoftware, wird sich definitiv stark verändern.

SPEAKER_02

Aber heißt das nicht auch gleichzeitig irgendwie, wenn man es jetzt vielleicht ein bisschen negativ malen möchte, dass sich eigentlich es ab jetzt sich wenig weiterentwickeln würde? Weil ich meine, die Wahrscheinlichkeit, dass jetzt ein neues Formisch gebaut wird, ist doch geringer, oder?

SPEAKER_01

Ich würde schon sagen, es gibt Bereiche, da wird jetzt weniger oder nichts mehr passieren. Und da zählt vielleicht dann auch eine Schema Validation Library hinzu, oder es wird zumindest fast schon möglich, da noch gegen anzukommen. Ich denke, wenn man jetzt Open Source macht und noch nichts gebaut hat, Und erst loslegt und Großes vorhat, dann muss man halt in die ganzen neuen, hotten Themen rein, wo halt immer noch viel drüber geredet wird. Und da werden auch noch so Grundlagen gebaut. Definitiv. Also ich meine, ein Großteil von dem, was wir mit AI machen, ist ja immer noch am Anfang. Und du musst halt irgendwas in diesem Bereich bauen, in Innovation in dem Bereich machen. Sei es eine neue AI-SDK oder wie du Agent baust. Oder wir sehen ja jetzt erst seit, let's say, drei, vier, fünf Wochen, dass es dann auch native Agents-Frameworks gibt, sowas wie NextJS und so weiter, aber halt spezialisiert, um Agents zu bauen. Und da sind wir ja noch in den Kinderschuhen, also da wird noch so viel mehr passieren. Okay.

SPEAKER_02

Das ist ja, also ja, für mich ist das jetzt ein neues Feld sozusagen, was sich aufmacht. Aber wenn wir es jetzt mal auf das Webdevelopment beispielsweise reduzieren, ne, und es da auch schwieriger wird, irgendwie erfolgreich mit diesen Projekten zu sein, dann ist die Wahrscheinlichkeit ja irgendwie, dass man sich hinsetzt und einem Agent sagt, jetzt bau mal irgendwie ein neues, keine Ahnung, XY-Framework. Also selbst der Use Case Office ist ja irgendwie, es entsteht ja auch aus, keine Ahnung, eigenen Problemen oder du hast eine Idee und denkst so, eigentlich hätte ich gerne dafür eine Lösung, die irgendwie gut funktioniert und global funktioniert, dass dieser Gedanke alleine schon weniger ist, weil du halt irgendwie dann halt einem Agent sagt, ja, bau ein Formular, das funktioniert. Das heißt, diese Ebene es irgendwie gar nicht mehr braucht.

SPEAKER_01

Ja, ich bin selber gespannt, auf der einen Seite stimmt das, aber ich denke, das stimmt auch, dass du halt mittlerweile auch so Projekte viel einfacher bauen kannst. Deshalb, vielleicht wird es gar nicht weniger, weil es halt viel einfacher wurde, das zu bauen. Aber weißt du, das machen die Leute noch im gleichen Maße? Gute Frage. Also schwierig zu sagen. Also ich meine, ich sehe trotzdem noch immer wieder viele neue Open Source Projekte und wenn man zum Beispiel bei Russell in den neuen Open Source Batch reinschaut, ich war in den Badge im letzten Jahr und da gibt es immer noch viele neue Ideen und neue Open Source Projekte.

SPEAKER_00

Und ich stelle mal die steile These in den Raum, dass das Kunststück an Open Source ja auch nicht unbedingt ist, den geilen Code zu schreiben, also auch wenn das wesentlich der Bestandteil davon ist. Aber da gehört ja so viel mehr dazu. Das war schon immer zu einem sehr großen Teil, in Anführungszeichen, Marketing, aber halt eine gute Dokumentation, gute Community-Arbeit, schnelles Resolven von Issues, die irgendwie aufkommen und sowas. Und das alles musst du ja immer noch machen. Also selbst wenn jetzt jemand das nächste Nax, das nächste Formisch, das nächste, keine Ahnung, was, von mir aus auch AI one-shottet und das ist jetzt da, dann ist ja dieses Projekt an und für sich noch lange nicht erfolgreich. Da gehört ja noch viel mehr drum herum. Also ich meine, Fabian kann ja auch noch erzählen, was er alles gemacht hat neben dem Quelltext von Formisch. Da wird bestimmt noch einiges anderes passiert sein. Und auch das muss man ja noch irgendwie machen.

SPEAKER_02

Das ist richtig, aber du musst ja irgendwie ein Interesse dafür haben. Also du musst ja irgendwie eine Motivation haben zu sagen, hey, es lohnt sich und dann kann man jetzt lohnen, irgendwie auch den Mieren, ne? Es ist lustig. Aber das ansprichst du. Es ist macht irgendwie Sinn oder ich habe Spaß daran, diese Lücke sozusagen zu füllen, die ja da ist.

SPEAKER_01

Also als ich formisch so ein bisschen wieder aufgenommen habe und dann auch tatsächlich entwickelt und entworfen habe, habe ich schon gewusst, also bei Valibot war mir schon klar, auch wenn es jetzt nicht sich direkt finanziell in Form von Donations oder irgendwelche Zahlungen rentiert, wird sich das langfristig durch den Einfluss, durch das Netzwerken, vielleicht auch die kleine Bekanntheit, sich rentieren und das zahlt sich heutzutage aus. Also ich kriege jede Woche gefühlt neue Jobanfragen, einfach weil ich so sichtbar bin und wahrscheinlich unter den Top-Contributern irgendwo bei GitHub oder in der Webentwicklungswelt drin bin. Aber bei Formisch, ähmch kann man schon sagen, das habe ich einfach gebaut, weil ich Lust hatte. Und deshalb habe ich es gemacht. Also da war jetzt nicht irgendwie der große Antrieb, große Company oder was auch immer zu bauen. Ich habe halt das Problem gesehen. Ich wusste, es gibt wahrscheinlich nicht so viele, die sich die Zeit nehmen, das zu lösen und vielleicht auch das überhaupt lösen können. Und ich glaube, ich hatte einen ganz neuen Ansatz und war einfach selber neugierig. Ist es möglich? Und wie weit kann man das tragen? Und ja. Und dadurch ist Formisch entstanden. Und ohne Walibot weiß ich nicht, wäre das wahrscheinlich auch nie so weit gekommen, weil es wahrscheinlich aber nicht funktioniert hätte. Aber durch Walibot kann ich halt durch das, was ich mir in den letzten Jahren ein Stück weit erarbeitet habe, nutzen und auch das Netzwerk. Ich denke, wir machen jetzt wahrscheinlich auch eine kleine Launchparty in New York. Und ich kann mir gut vorstellen, dass Rich Harris von Biswelt vorbeikommen wird und vielleicht noch ein paar andere coole Leute.

SPEAKER_04

Und ja, und ja, sang halt alles irgendwie zusammen. Cool.

SPEAKER_00

Und am Ende, ich meine, das war ja schon immer so auch bei Open Source. Also es gibt so, glaube ich, so zwei große Antreiber. Entweder du hast es, du betreibst es aus so einer Infrastruktursicht, weil du, weiß ich nicht, Facebook bist und du brauchst halt irgendwie ein neues VI-Framework, um irgendwie dein Zeug zusammenzuhalten und du machst es halt Open Source, weil warum auch nicht? So, ja. Oder du brauchst halt so wie Google, Dart und Flutter und machst es halt irgendwie Open Source. Oder du willst halt einfach, weil du ein kleiner Entwickler irgendwo bist und du willst, dass dieses Stück Software existiert. So. Also das ist vielleicht jetzt eher so der Fall von Bollywood und Formisch so. Und dann ist es egal, ob das 200 Millionen Leute downloaden oder 2 Millionen oder 200.000 oder keine Ahnung, aber das ist halt so deins und du hast es gemacht. Und ich glaube, das ändert sich auch nicht. So, ja, ich glaube, die Tools ändern sich vielleicht. Du brauchst vielleicht weniger Code selbst, du resolvst vielleicht nicht mehr jede Issue irgendwie am Ende des Tages selbst. Aber wenn du halt willst, dass dieses Stück Software existiert und das so sein soll, wie du es gerne hättest und es dir vorgestellt hast und das Problem lösen wolltest, dann wird es das wahrscheinlich auch in Monaten und Jahren immer noch geben.

SPEAKER_02

Ja, und am Ende fand ich auch Fabian Steak eigentlich ganz gut dazu, dass sich halt der Schwerpunkt davon einfach auch erinnert. Also ich meine, es gibt im Öko-System von AI so viel, was noch ungelöst ist. Und da wird sich dann halt einfach der Fokus verschieben und dass du halt dann die eine Web Library nicht brauchst, aber halt das eine AI-Framework oder das eine AI-Tool oder so.

SPEAKER_01

Und wenn neue Innovationen dazukommen, zeigen es günstigere Tokens oder bessere Modelle oder neue Open Source Tools ermöglichen, also entstehen dir wieder ganz neue Möglichkeiten, neue Sachen zu bauen. Entweder on top oder weil jetzt die Tokens günstiger sind, oder weil zum Beispiel die Open Source Modelle so viel besser werden oder weil vielleicht schon die kleinen Modelle, die du lokal ausführen kannst, so gut sind, damit du jetzt bestimmte Dinge auf deinem MacBook machen kannst, da wird sicher noch sehr viel passieren.

SPEAKER_00

Also ich glaube, als ich so angefangen habe mit Webentwicklung, war so, jeder wollte irgendwie mal sein eigenes Model View Controller Framework schreiben. Das war damals so der heiße Scheiß, ja. Und wenn man sich heute so Hacker-News anguckt oder sowas, ist glaube ich so, jeder will mal ein AI-Agent Memory Framework irgendwie schreiben. Weil das gibt es irgendwie gerade auch wie Sand am Meer und jeder hat da so einen minimal anderen Ansatz und jeden Tag gibt es da irgendwie sowas Neues und vielleicht ist das dann einfach so The Next Frontier irgendwie.

SPEAKER_01

Und das hat man jetzt schon gesehen, das entwickelt sich immer so weiter. Wir hatten jetzt eine Phase, da waren irgendwie AI-Agence-Bilder und dann, wie du sagst, Memory und dein Hornets. Und jetzt geht es Richtung Agent Frameworks und was dann noch so alles passieren wird.

SPEAKER_02

Gut. So. Ich habe die Moderation gemacht. Ich könnte jetzt einfach ganz non chalant die Picks skippen. Wenn ich es selbst gerne habe. Aber. Nur weil du eine Hausaufgaben nicht gemacht hast. Aber ja. Ich habe tatsächlich einen Pick, wenn er dann so genannt wurde. So, dann kommen jetzt hier die Picks. Nein, doch, Picks of the Day. Schieß los. Hast du Fabian gesehen, wer hier gerade an dem Büro vorbeigelaufen ist? Nein. Nein.

unknown

Okay.

SPEAKER_02

Weil zum Kontext ist es 21.30 Uhr, also wir nehmen heute relativ spät auf, da Fabian. Das ist auch normale Arbeitszeit für mich morgen wieder zurück und Dennis nach New York fliegt. Also wir sind häufig bis Mitternacht auf. Ja, du bist ja doch jung. Das muss so sein. Es würde März zumindest gefallen. Und da sind vor dem, vor unserer Glaswand, aber oben steht ein Fernseher, ich sehe nur das untere, zwei nackte Männerbeine, also ohne Schuhe. Also nackte Füße und nackte Beine, habe ich gesehen, soweit im Office. Da stellt Fabian auf mal ganz neu gehört.

SPEAKER_01

Da muss ich gucken, ob mein Geldball noch da ist.

SPEAKER_02

Ich denke, sie gehören den. Irgendwas in Polen oder irgend sowas?

SPEAKER_01

Was? Irgendein hast du doch gegrüßt. Ja, ich kenne den Namen nicht, aber er ist in der Boarding-Wohnung.

SPEAKER_02

Ah, okay. Ja, naja. Gut, das finden wir noch raus. Picks. Fabian, du darfst als zweiter und Jan fängt an.

SPEAKER_00

Ich weiß nicht, ob man euch erst. Ich glaube, jetzt hast du uns alle aus.

SPEAKER_02

Ich habe alle verwirrt. Achso. Jan darf zuerst.

SPEAKER_00

Ich habe anderthalb Picks eigentlich, weil mir ist ein Open Source Projekt unter die Füße gekommen, vor die Füße gefallen, das heißt FaceGate. Und was das macht, ist, du kannst damit Apps am Mac mit Face ID oder Touch-ID schützen. Wenn du quasi nicht willst, dass irgendwie jeder, der an deinem Rechner vorbeiläuft, das aufmachen kann oder du noch so ein bisschen mehr Layer und Security haben willst, kannst du das installieren und dann kannst du so sagen, so, hey, diese Apps irgendwie bitte beschützen. Und wenn dann die Apps aufgemacht werden, dann geht so ein Fenster auf, spannt so die ganze Breite von deinem Screen ab, legt sich ganz vorne und sagt, so, hey, jetzt hier erstmal an mir vorbei. Und das sagt ihr es eigentlich ganz cool. So, das ist die eine Hälfte von meinem Pick. Die andere Hälfte ist so, ich bin bei so Apps immer so ein bisschen skeptisch, so wie funktionieren die überhaupt und wie einfach es ist auszuhebeln und wie arbeiten die eigentlich im Hintergrund. Und dann habe ich einfach folgendes gemacht. Ich habe mir das Repo genommen und hab mich mit Claude da mal dran gesetzt und habe so, weiß ich nicht, eine halbe Stunde mit dem dieses Repo auseinandergenommen und hab mir das erklären lassen und so gechallengedt, wie man das nicht aushebeln kann und sowas. Und das ist so die andere Hälfte von meinem Pick, weil ganz oft nutzen wir ja so Open Source Software, einfach so ohne das zu hinterfragen und installieren das hier und auch gerne irgendwie mit vollen User-Rechten im User-Space und mach, wie es dir gefällt und sowas. Und das waren, glaube ich, jetzt eigentlich cool investierte 30 Minuten, weil zum einen war jetzt irgendwie klar, das scheint irgendwie alles ganz safe zu sein und macht auch ein paar clevere Tricks und so. Aber es hilft einem halt auch so ein bisschen besser zu verstehen, was da eigentlich passiert und was man sich da eigentlich so installiert. Deshalb so ein zweigeteilter Pick diese Woche. Zum einen FaceGate, Cool App, kann man sich mal anschauen. Zum anderen aber auch, hey, wenn du das nächste Mal eine Open Source App hast, die du irgendwie installieren willst oder eine Anwendung über Brew irgendwie runterladen oder so, einfach einmal kurz das Repository zu Cloud hinschmeißen und sagen so, hey, guck dir das mal an, mach mal so ein Mini-Security-Audit, erklär mir, wie das unter der Haube funktioniert und dann schauen wir mal. Fand ich ganz cool, hat mich beeindruckt. Hab ich übrigens auch mit Fable gemacht.

SPEAKER_02

Sehr gut. Bin ich gespannt, wie du das in ein CMS-Format bringst, diesen Pick.

SPEAKER_00

Fabian. Das CMS, Fabian wird dir das erklären können, aber das CMS unterstützt N Picks of the Day. Also jeder Host kann so viele mitbringen wie er will. Und er sagt, das ist Fable, oder wie? Ne, das zweite, ja, das weiß ich. Achso, du meinst, auf was ich verlinke dann so? Ja, das weißt du nicht. Ja, okay. Das muss mir noch überlegen. Okay, sehr gut.

SPEAKER_01

Macht das CMS immer noch automatisch einen Screenshot?

SPEAKER_00

Ja. Aber er funktioniert nur in der Hälfte aller Fälle ordentlich, weil manchmal ist so ein Cookie-Banner davor und keine Ahnung. Also manche pflege ich dann doch von Hand ein. Müssen wir noch so einen Cookie-Banner?

SPEAKER_04

Cookie-Wegklicker noch einbauen, ne? Ja.

SPEAKER_01

Du hast keinen Pick? Äh, richtig.

SPEAKER_02

Okay.

SPEAKER_01

Wurde schon mal NPMX genannt?

SPEAKER_02

Ja. Hast du danach gesucht eben, hast du gesagt? Ja, ich hab's nicht gefunden.

unknown

Funktioniert.

SPEAKER_01

Das wird sogar noch nicht so gut.

SPEAKER_02

Wer hat sie denn initial gebaut? Ich habe aber noch ein paar andere Ideen für Picks. Aber mach erstmal, vielleicht bin ich, liebe ich falsch, ich kenn's nur irgendwie, vielleicht kenn ich es.

SPEAKER_01

Okay, dann machen wir einfach zwei Picks.

SPEAKER_00

Also es war noch kein Pick. Ich habe es gerade im CMS gesucht. Okay.

SPEAKER_01

Also von Dennis nicht verwirrend, die Suche funktioniert, hust, hust. NPMX ist im Grunde eine Alternative für NPM, für die NPM-Website, aber das baut auf NPM auf. Also es ist im Grunde die gleiche Datenbank. Halt mit einem neuen Interface. Und ich glaube, man kann auch irgendwie sich darüber anmelden und dann wird irgendwie die CLI genutzt oder was auch immer. So tief bin ich jetzt nicht drin. Ich weiß auf jeden Fall, ich glaube, es wurde teils von am Ende des Tages von vielen verschiedenen Open Source Contributern gebaut, aber ich glaube, dass das NUX-Team da auch stark involviert ist oder war. Das haben wir nicht, das war kein Pick, das war in den News.

SPEAKER_00

Das ist richtig. Aber es war kein Pick of the Day.

SPEAKER_02

Ja, aber die Volltext-Suche sollte es trotzdem finden auf der programmierbaren Webseite.

SPEAKER_00

Das ist ein fairer Einwand.

SPEAKER_01

Aber vielleicht hat die Text Speeds to Text das Gamex nicht.

SPEAKER_00

Aber der Titel ist ja trotzdem, also der Titel ist ja auch Volltextindiziert und der ist richtig. Also stimmt. Ich weiß keine Ahnung, wer das hier gebaut hat. Frag mal Fable. Dein Pick. Also wir können. Ich lasse jetzt erstmal Fabian seinen Pick jetzt eine machen, weil ich kann da auch gleich zur Suche noch was erzählen. Und zu Fable dazu.

SPEAKER_01

Ja, ich glaube, ich habe alle schon zu NPMX gesagt. Was auch noch eine coole Sache ist, die man mit seinen Agents verwenden kann, ist Kontext 7 oder Kontext 7. Vielleicht kennt es deine oder andere. Ist im Grunde eine Art Kontext-Sammlung für verschiedene Open Source-Projekte und vielleicht auch für ganz andere Dinge. Und das kann man als MCP oder CLI an sein Agent anbinden und wenn immer man zum Beispiel das wie Formisch nutzt, wo vielleicht der jeweilige Agent noch keinen Kontext hat, kann er dann einfach in Kontext 7 danach suchen, bekommt dann den Kontext, den er braucht und kann dann loslegen.

SPEAKER_04

Sehr gut.

SPEAKER_02

Darf ich auch fast sagen, also ein Pick war es nicht, aber vermutlich um mich unterhalten.

SPEAKER_00

Moment, also es gibt, glaube ich, ein paar Leute, die dürfen sich hier darüber beschweren, was ein vernünftiger Pick ist und was nicht. Und Dennis, ich weiß nicht, ob du in diese Kategorie meinzählst.

SPEAKER_02

Ich hab mich, was hast du, du hast mich akustisch, glaube ich, nicht verstanden. Ich habe mich nicht über den Pick beschwert. Sondern? Ich habe gesagt, ich gehe davon aus, ich weiß nicht, was die Kontextsuche sagt, aber die Kontextsuche vor allen Dingen, ich gehe davon aus, dass wir Kontext 7 auch schon mal in der Programmierbar erwähnt haben. Das war meine einzige Aussage.

SPEAKER_00

Ich habe verstanden, ich weiß nicht, ob das als Pick zählt.

SPEAKER_02

Nee, nee, nee, nee, nee. Ist ein guter Pick. Super, super Pick.

SPEAKER_00

Okay, was wolltest du noch sagen, gern? Die Suche, mir ist es auch schon ein paar Mal aufgefallen, dass sie manchmal so out of sync irgendwie geht, insbesondere mit Folgen, die noch nicht so sehr alt sind, also als wäre da so ein bisschen Latenz drin. Und alle paar Wochen, wenn ich mal wieder Muße und Zeit habe, gehe ich so mit Claudien und sage so, hey, guck dir nochmal die Suche an. Ich habe hier schon wieder diesen Edge Case, der nicht funktioniert. Und dann rödelt er da so sehr lange hin und her. Er hat mittlerweile auch so ein Algolia-MCP, um da irgendwie das zu vergleichen und zu machen und tun und bla. Und jedes Mal findet er einen coolen Edge Case und sagt so, hey, hier, Race Condition, dein Splitting funktioniert nicht, keine Ahnung, ich hab das gefixt. Und dann sage ich, ist ja super. Schön, können wir deployen und dann teste ich das und alles funktioniert. Und dann ist so ein paar Wochen später, ist dann wieder so, irgendwas funktioniert, dann kriege ich wieder zur Cloud hin und sage so, ja. Nutzt ihr den Algolia-Crawler? Nee, nee, wir pushen das selbst in den Index rein. Ich habe aber zwischenzeitlich schon überlegt, ob ich einfach den Algolia-Crawler benutze. Genau, der wird wahrscheinlich ewig dauern, bis er bei euch alles durchhört. Das ist nämlich genau das Ding. Wir haben ja schon so das Ding, dass Seiten sich manchmal ändern können und so und du musst dem dann schon irgendwie immer nochmal so ein Update geben können von schau dir diese Seite nochmal an. Oder du musst mit einer sehr hohen Latenz leben. Und ich glaube halt schon, dass die meisten, die die Suche benutzen, das genau dann benutzen, wenn es halt gerade irgendwie relevant ist. Also du willst nicht jetzt auf die programmierbare Webseite kommen und was drei Jahre Altes raussuchen, sondern du suchst halt jetzt gerade im Kontext von den Folgen der letzten paar Wochen oder so. Und wenn dann die Suche nicht aktuell ist, ist ja doof. Aber jetzt gerade ist sie scheinbar auch nicht immer 100% aktuell. Also Claude, wir haben morgen nochmal eine Session vor, glaube ich.

SPEAKER_02

Sehr gut. Be prepared. Fabian, sehr cool, dass du mal hier wieder vorbeigeschneit bist.

SPEAKER_00

Ich habe versucht, Fabian für die Programmierkon zu gewinnen.

SPEAKER_02

Wir sind noch in Verhandlungen. Genau, er hat es auch noch nicht komplett abgesagt. Er hat auch eben gesagt, es ist unwahrscheinlich, aber wer weiß, was sich noch ergibt. Wenn du die First-Class-Tickets zahlst, kommt er.

SPEAKER_00

Ich?

SPEAKER_04

Wer ist hier für die Programmierbar verantwortlich?

SPEAKER_02

Ja, spannend. Genau. Ja, auf jeden Fall mega cool. Und spannend, mal ein bisschen Updates von dir zu bekommen. Und was du mit deinen Projekten da weiter baust. Du hast gar nicht Open Circle genannt, ein einziges Mal.

SPEAKER_05

Ja.

SPEAKER_02

Und dabei ist es doch deine Open Source Organisation. Open Source Organisation. Und du sprichst aber so schön von wir, obwohl du das meiste wahrscheinlich selbst gebaut hast.

SPEAKER_01

Aber es ist ja. Ja, wir sind am Ende schon ein kleines Team. Wir wären wahrscheinlich ein größeres Team, hätte ich deutlich mehr Zeit. Aber ich habe zum Beispiel jemanden, der macht den Großteil des Contents. Und wenn einer von euch irgendwie Bock hat, involviert zu sein, wir haben auch kein großes, aber ein kleines Open Source Budget. Das komplette Budget geht an Contributor. Ich nehme überhaupt nichts raus aus dem Budget im Moment. Und ja, wenn jemand coole Beiträge leistet, dann freue ich mich auch, einen Beitrag zurückzugeben. Cool. Sehr gut.

SPEAKER_02

Vielen Dank, dass du da warst. Gute Rückreise morgen. Die Vereinigten Staaten. Und Jan, dir noch einen schönen Abend.

SPEAKER_00

Ich muss ja nicht zurückreisen, ich bin schon zu Hause. Alles gut. Das ist richtig.

SPEAKER_02

Vielen Dank. Bis bald. Mach's gut. Bis bald. Tschüss.