A beautiful, minimalist form builder that makes form filling fun and engaging. Built with Next.js, TypeScript, and modern web technologies.
100% Free & Open Source - Made with ❤️ to provide value to the community.
- Beautiful Form Builder: Intuitive interface with live preview
- Engaging Form Experience: Smooth animations and micro-interactions
- 9 Professional Templates: Ready-to-use forms for any use case
- Real-time Analytics: Track responses and form performance
- Responsive Design: Works perfectly on all devices
- Authentication: Secure user management with Clerk
- File Upload Support: Accept files, images, and documents
- Frontend: Next.js 15, TypeScript, Tailwind CSS
- Backend: Next.js API Routes, Prisma ORM
- Database: PostgreSQL (Supabase)
- Authentication: Clerk
- Animations: Framer Motion
- UI Components: Radix UI, Lucide React
- Node.js 18+
- PostgreSQL database
- Clerk account for authentication
- DodoPayments account for payments
```bash git clone cd borax-forms npm install ```
Create a `.env.local` file in the root directory:
```env
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key CLERK_SECRET_KEY=your_clerk_secret_key NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard CLERK_WEBHOOK_SECRET=your_clerk_webhook_secret
DATABASE_URL="postgresql://username:password@localhost:5432/borax_forms"
DODO_PAYMENTS_API_KEY=your_dodo_payments_api_key DODO_PAYMENTS_WEBHOOK_SECRET=your_webhook_secret
NEXT_PUBLIC_APP_URL=http://localhost:3000 ```
```bash
npx prisma generate
npx prisma db push
npx prisma db seed ```
- Create a new Clerk application at clerk.com
- Add your domain to allowed origins
- Set up webhook endpoint: `/api/webhooks/clerk`
- Copy your API keys to `.env.local`
- Create a DodoPayments account at dodopayments.com
- Set up webhook endpoint: `/api/webhooks/dodopayments`
- Copy your API keys to `.env.local`
```bash npm run dev ```
Visit http://localhost:3000 to see your application!
``` borax-forms/ ├── src/ │ ├── app/ # Next.js App Router │ │ ├── api/ # API routes │ │ ├── dashboard/ # User dashboard │ │ ├── forms/ # Form builder pages │ │ ├── f/ # Public form pages │ │ └── pricing/ # Pricing page │ ├── components/ # React components │ │ ├── form-builder/ # Form builder components │ │ ├── form-renderer/ # Form display components │ │ └── ui/ # Reusable UI components │ └── lib/ # Utility functions ├── prisma/ # Database schema └── public/ # Static assets ```
Borax Forms is built with a focus on:
- Minimalism: Clean, uncluttered interfaces
- Timelessness: Design that won't look outdated
- Fun: Making form filling enjoyable, not boring
- Accessibility: Usable by everyone
- Performance: Fast loading and smooth interactions
The app uses a credit-based pricing model:
- Each form response costs 1 credit
- Credits are purchased in packages
- Credits never expire
- No monthly subscriptions
- Add the type to the `Question` interface in `FormBuilder.tsx`
- Add the type icon and label to `QuestionTypeSelector.tsx`
- Implement the input component in `QuestionRenderer.tsx`
- Add the preview in `FormPreview.tsx`
Themes are stored as JSON in the database and applied via CSS classes. You can add new themes by:
- Adding theme styles to `globals.css`
- Creating theme selection in the form builder
- Applying theme classes in the form renderer
- Push your code to GitHub
- Connect your repository to Vercel
- Add environment variables in Vercel dashboard
- Deploy!
The app can be deployed to any platform that supports Next.js:
- Netlify
- Railway
- DigitalOcean App Platform
- AWS Amplify
This project is licensed under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
If you have any questions or need help, please:
- Check the documentation
- Search existing issues
- Create a new issue with detailed information
Made with ❤️ and lots of ☕ by the Borax Forms team