Forwarded from Dev Notes
Bereket Engida for the 2025 JavaScriptLandia Awards
Bereket (@imbereket) is being nominated for Outstanding Contribution from a New Arrival for his impactful work on BetterAuth, which is making authentication simpler and helping many developers.
The community has already started nominating him. Let’s add our support.
📅 Nominations close Sept 19
🏆 Winners announced at JSConf 2025 (Oct 14–16, Maryland)
Nominate Bereket 👉 here.
Original: x post
Follow: DevNotes
Bereket (@imbereket) is being nominated for Outstanding Contribution from a New Arrival for his impactful work on BetterAuth, which is making authentication simpler and helping many developers.
The community has already started nominating him. Let’s add our support.
📅 Nominations close Sept 19
🏆 Winners announced at JSConf 2025 (Oct 14–16, Maryland)
Nominate Bereket 👉 here.
Original: x post
Follow: DevNotes
👍2❤1
this new year feels dull. no psychological shift, no sense of renewal.I used to feel that, but not this time. It just feels like a social ritual. I’m not sure if that’s good, because I’m not falling for the ‘new year, new me’ gimmick, or bad, because I don’t feel any renewal..idk bcha
btw chrome has an ai summarizer api built-in in the latest version and it runs locally.
i'm working on a new project that I started a while ago but paused immediately because I was so busy i restarted it this week from scratch.
It's called formgen.If you've ever built a complex form (with validation, conditional fields, etc.), you know the pain. You define your data structure and validation rules in a zod schema...and then you have to manually re-describe the entire thing again in your UI code. You wire up every input, repeat labels, write error handlers...it's repetitive, boring, and error-prone.
so what if your zod schema was the only thing you needed?,it'll automatically generate a fully functional, type-safe, accessible form with proper labels, error messages, and everything?
ui generation is totally optional, and it works fully headless with tRPC integration for type-safe backend communication.that's the goal for formgen. a schema-first, framework-agnostic form engine.
It's called formgen.If you've ever built a complex form (with validation, conditional fields, etc.), you know the pain. You define your data structure and validation rules in a zod schema...and then you have to manually re-describe the entire thing again in your UI code. You wire up every input, repeat labels, write error handlers...it's repetitive, boring, and error-prone.
so what if your zod schema was the only thing you needed?,it'll automatically generate a fully functional, type-safe, accessible form with proper labels, error messages, and everything?
ui generation is totally optional, and it works fully headless with tRPC integration for type-safe backend communication.that's the goal for formgen. a schema-first, framework-agnostic form engine.
🔥9❤1
it'll be built on tanstack so you can use it on different frameworks and different validation libraries like zod, arktype, or joi, will be supported. it automatically handles nested objects, arrays, and conditional fields, so complex forms work out-of-the-box.
even without ui, formgen is useful,it keeps your form state, validation, and backend integration fully consistent and type-safe. with tRPC integration, your backend calls use the same schema, so no duplicated dto or parsing errors. headless mode and overrides let you handle edge cases or custom behavior while staying fully declarative. this makes it practical for any project, even if you just want a robust, type-safe form engine without auto-generated ui.
even without ui, formgen is useful,it keeps your form state, validation, and backend integration fully consistent and type-safe. with tRPC integration, your backend calls use the same schema, so no duplicated dto or parsing errors. headless mode and overrides let you handle edge cases or custom behavior while staying fully declarative. this makes it practical for any project, even if you just want a robust, type-safe form engine without auto-generated ui.
this is by far the most complex project I've ever attempted.i have no idea if I can fully pull it off. But I'm going to continur build it in public, learn everything I can, and share the process. The worst case scenario is I learn. The best case is I build a tool that makes building form easier.
🔥2
Sam's Archive
this is by far the most complex project I've ever attempted.i have no idea if I can fully pull it off. But I'm going to continur build it in public, learn everything I can, and share the process. The worst case scenario is I learn. The best case is I build…
why is it complex?
> the abstraction leakage problem: this is my biggest challenge. my goal is to abstract away all the complexity, but forms are inherently complex and need to leak.
> a textarea that needs a custom onblur handler to call an api and validate a single field..how does that fit into my metadata? i’ll need an escape hatch, and designing that escape hatch so it doesn’t become the only way people use the library is critical.
> nested arrays and objects.this is where every form library’s simplicity goes to die..tanstack form handles the state for this well, but my job is to generate the ui for it. automatically generating "add" and "remove" buttons that are styled correctly for every possible ui plugin (shadcn, mantine, mui) is pain. the level of customization needed for a complex array form is so high that my automatic rendering might be abandoned immediately for the headless mode.that's why the ui is optional.
> the headless mode is my salvation (and my admission of defeat).
<field name="name"> {({ field, error }) => ( ... )} </field>
this is the most important part of my entire proposal.
> the abstraction leakage problem: this is my biggest challenge. my goal is to abstract away all the complexity, but forms are inherently complex and need to leak.
> a textarea that needs a custom onblur handler to call an api and validate a single field..how does that fit into my metadata? i’ll need an escape hatch, and designing that escape hatch so it doesn’t become the only way people use the library is critical.
> nested arrays and objects.this is where every form library’s simplicity goes to die..tanstack form handles the state for this well, but my job is to generate the ui for it. automatically generating "add" and "remove" buttons that are styled correctly for every possible ui plugin (shadcn, mantine, mui) is pain. the level of customization needed for a complex array form is so high that my automatic rendering might be abandoned immediately for the headless mode.that's why the ui is optional.
> the headless mode is my salvation (and my admission of defeat).
<field name="name"> {({ field, error }) => ( ... )} </field>
this is the most important part of my entire proposal.
⚡3
I’m trying this build-in-public thing on X too, show your boy some love there.🥹
https://x.com/SamuelFikre_/status/1967830135484321950
https://x.com/SamuelFikre_/status/1967830135484321950
❤3
so this guy from x contacted me today to collab on the formgen project. i didn't know him before but he is followed by people in the photo, which is good.ig he is a good dev..i'm really surprised by this.
x is actually mad.
x is actually mad.
🔥20