Tideform
Open-source, AI-native form builder. Privacy-first alternative to Typeform.
Install / Use
/learn @Madaroon/TideformREADME
Why Tideform?
| | Typeform | Google Forms | Tideform | |---|---|---|---| | Price | $30-100/mo | Free | Free forever | | AI Generation | ❌ | ❌ | ✅ Describe → Build | | Data Privacy | Their servers | Google's servers | Your servers | | Self-Hosted | ❌ | ❌ | ✅ Docker one-liner | | Open Source | ❌ | ❌ | ✅ MIT License | | Beautiful UX | ✅ | ❌ | ✅ Conversational | | RTL Support | Partial | Partial | ✅ Full | | API | Paid tier | Limited | ✅ Full REST API |
Quick Start
Docker (recommended)
docker run -p 3000:3000 tideform/tideform
Open http://localhost:3000 and create your first form.
Docker Compose
curl -O https://raw.githubusercontent.com/tideform/tideform/main/docker-compose.yml
docker compose up -d
From Source
git clone https://github.com/tideform/tideform.git
cd tideform
cp .env.example .env
npm install
npx prisma db push
npm run dev
Features
✦ AI Form Generation
Describe your form in plain English. Tideform generates the fields, labels, validation, and conditional logic. Powered by Claude (or works offline with smart templates).
"Create a customer feedback survey for a SaaS product with NPS score"
→ 6 fields generated in 2 seconds
🔒 Privacy-First
Your data never leaves your infrastructure. Self-host on any server, VPS, or Raspberry Pi. No telemetry. No tracking. No data harvesting. GDPR-compliant by architecture.
🎨 Beautiful Conversational UI
One-question-at-a-time experience with smooth transitions, keyboard navigation, and progress tracking. 6 built-in themes including dark mode and a light "Paper" theme.
📊 Built-In Analytics
Response dashboard with completion rates, field-level statistics, NPS tracking, submission timelines, and CSV export. No third-party analytics needed.
🔗 Developer API
Full REST API for everything — create forms, submit responses, fetch analytics. Webhook support for real-time integrations with Slack, Zapier, n8n, and more.
🌍 RTL & i18n Ready
Full right-to-left layout support for Arabic, Farsi, and Urdu. Interface translations welcome via PR.
Architecture
tideform/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/ # REST API routes
│ │ │ ├── forms/ # Form CRUD
│ │ │ ├── submissions/ # Response collection
│ │ │ ├── ai/ # AI generation endpoint
│ │ │ └── auth/ # Authentication
│ │ ├── (dashboard)/ # Authenticated pages
│ │ └── (public)/ # Public form renderer
│ ├── components/ # React components
│ │ ├── builder/ # Form builder UI
│ │ ├── preview/ # Form renderer
│ │ ├── dashboard/ # Analytics & management
│ │ └── ui/ # Shared UI primitives
│ └── lib/ # Core logic
│ ├── db.ts # Prisma client
│ ├── auth.ts # NextAuth config
│ ├── ai.ts # AI generation service
│ ├── types.ts # TypeScript definitions
│ ├── validations.ts # Zod schemas
│ └── utils.ts # Helpers
├── prisma/
│ └── schema.prisma # Database schema
├── docker/ # Docker configuration
├── Dockerfile # Multi-stage production build
└── docker-compose.yml # One-command deployment
Tech Stack
- Framework: Next.js 14 (App Router)
- Database: SQLite (dev) / PostgreSQL (production) via Prisma
- Auth: NextAuth.js (credentials + OAuth)
- Styling: Tailwind CSS
- AI: Anthropic Claude (optional, works without it)
- Validation: Zod
- Charts: Recharts
- Deployment: Docker, Vercel, any Node.js host
API
Create a form
curl -X POST http://localhost:3000/api/forms \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{
"title": "Feedback Form",
"fields": [
{ "type": "rating", "label": "How was your experience?", "required": true },
{ "type": "long_text", "label": "Any comments?" }
]
}'
Submit a response
curl -X POST http://localhost:3000/api/submissions \
-H "Content-Type: application/json" \
-d '{
"formSlug": "feedback-form-abc123",
"data": {
"f_rating": 5,
"f_comments": "Love it!"
}
}'
AI-generate a form
curl -X POST http://localhost:3000/api/ai/generate \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <token>" \
-d '{ "prompt": "job application for a startup" }'
Full API documentation: docs.tideform.dev (coming soon)
Self-Hosting
Minimum Requirements
- 1 CPU core, 512MB RAM
- Docker 20+ or Node.js 18+
- 100MB disk space (+ data)
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
| DATABASE_URL | Yes | file:./dev.db | Database connection string |
| NEXTAUTH_SECRET | Yes (prod) | Auto-generated | Session encryption key |
| NEXTAUTH_URL | Yes (prod) | http://localhost:3000 | Your app's public URL |
| ANTHROPIC_API_KEY | No | — | Enables AI form generation |
| GITHUB_CLIENT_ID | No | — | GitHub OAuth login |
| GOOGLE_CLIENT_ID | No | — | Google OAuth login |
PostgreSQL (production)
# docker-compose.yml
services:
tideform:
image: tideform/tideform:latest
environment:
- DATABASE_PROVIDER=postgresql
- DATABASE_URL=postgresql://tideform:secret@postgres:5432/tideform
depends_on:
- postgres
postgres:
image: postgres:16-alpine
volumes:
- pgdata:/var/lib/postgresql/data
environment:
POSTGRES_DB: tideform
POSTGRES_USER: tideform
POSTGRES_PASSWORD: secret
volumes:
pgdata:
Roadmap
- [x] Core form builder with drag-and-drop
- [x] AI-powered form generation
- [x] Conversational form renderer
- [x] Response collection & analytics
- [x] Docker deployment
- [x] Email/password + OAuth authentication
- [ ] Embed widget (
<script>tag + iframe) - [ ] Conditional logic / field branching
- [ ] File upload support
- [ ] CSV/Excel export
- [ ] Webhook integrations
- [ ] Email notifications on submission
- [ ] Custom thank-you pages
- [ ] Team collaboration
- [ ] Form templates gallery
- [ ] Stripe payment fields
- [ ] Multi-language form UI
- [ ] Accessibility audit (WCAG 2.1 AA)
Contributing
We love contributions! See CONTRIBUTING.md for guidelines.
# Fork and clone
git clone https://github.com/YOUR_USERNAME/tideform.git
cd tideform
# Install and setup
cp .env.example .env
npm install
npx prisma db push
# Start development
npm run dev
# Open http://localhost:3000
Ways to Contribute
- 🐛 Bug reports — Found something broken? Open an issue
- 💡 Feature requests — Have an idea? Start a discussion
- 🌍 Translations — Help us reach more people
- 📖 Documentation — Improve guides, fix typos
- 🎨 Themes — Design new form themes
- 🧪 Tests — Increase coverage
License
MIT — free for personal and commercial use. See LICENSE.
<p align="center"> <b>If Tideform helps you, consider giving it a ⭐ on GitHub.</b><br/> It helps others discover the project. </p>
