For a project I'm working on, I needed Google Forms/Typeform functionality that is built into the application. Rather than building it directly into the app, I decided to build it as a TypeScript library that anyone can use. The library is full-stack, meaning it comes with database schemas for the form/response tables, backend route handlers for creating/updating forms and collecting form submissions. I use JSONForms [0] to define how forms should be rendered, and implemented a new JSONForms renderer for shadcn/ui projects. (But you can use any other compatible renderer). An overview of the features: - DB Schemas, request handlers, and frontend hooks included - Form builder shadcn/ui component with Google Forms-like UX - Integrates with any TypeScript stack - Form validation using JSON Schema + Zod In the future, I might look at creating data analysis and export functionality. Live demo: https://fragno.dev/forms Docs: https://fragno.dev/docs/forms Code: https://github.com/rejot-dev/fragno/tree/main/packages/forms Everything under MIT license |