I built a React form library 2 years ago.
It got almost zero usage.
Recently, I revisited the idea and realized the problem wasn’t the code — it was the approach.
Most form libraries are powerful, but they come with complexity:
- too much setup
- too much wiring
- too much abstraction
So I rebuilt it from scratch with one goal:
Make forms stupidly simple.
The Problem
Every time I build a form in React, I repeat the same steps:
- Manage state for each input
- Handle validation
- Wire everything together
- Add conditional logic
Even with tools like React Hook Form, there's still mental overhead.
The Insight
For most use cases, developers don’t need more power.
They need less friction.
So instead of controlling every input manually, I tried this:
Define the entire form as data.
The Idea
<KiForm
fields={[
"email",
"password",
{
name: "role",
options: ["User", "Admin"]
},
{
name: "company",
showIf: { field: "role", equals: "Admin" }
}
]}
/>
---
## Screenshot
How It Works
- You pass a JSON config
- Fields are generated automatically
- State is managed internally
- Conditional logic is built-in
Feedback
I’m still validating this idea.
Would love to know:
- Is this useful for your workflow?
- What’s missing?
- Where would this break?
GitHub: https://github.com/kadirulislam/ki-forms
npm: https://www.npmjs.com/package/ki-forms


Top comments (0)