Tool
Formwork
A headless, accessible form library with schema-driven validation and zero runtime dependencies.

Project data
- Role
- Author
- Type
- Tool
- Stack
- TypeScript
- React
- Zod
- Duration
- Ongoing
- Year
- 2023
- Status
- Live
- Links
- Repository
The challenge
Accessible forms by default
Most form libraries left error announcements and focus management to the developer.
How it was built
Development process
Six phases from the first conversation to the release. The bar shows how the time was split.
Research
Reading the form code of a dozen teams showed which validation patterns repeat everywhere.
Architecture
Data model, rendering strategy and API contracts were agreed before the first screen was drawn.
Interface
A component inventory and responsive layouts, built entirely from design tokens.
Build
Features went live in small slices behind flags, with typed boundaries between client and server.
Testing
Unit, end-to-end and accessibility checks ran on every pull request.
Deployment
Every branch got a preview environment; the production rollout was a single click.
Screens
Under the hood
One schema, many outputs
The schema generates types, validation and ARIA wiring, so they can never drift apart.
- TypeScript
- React
- Zod
Next project
Want something similar? Let’s talk.
Keep exploring










