Buat, publikasikan, dan analisis form dalam satu alur sederhana.
FormKita adalah platform pembuatan form untuk tim yang ingin mengumpulkan respons tanpa setup yang rumit. Pengguna bisa membuat form, menyusunnya dengan drag-and-drop, memublikasikan tautan publik, lalu melihat analitik respons dan ekspor CSV dari satu dashboard.
Pemilik UMKM Dita, 34 - Dita sering mengumpulkan lead, order, dan feedback dari pelanggan melalui form sederhana. Ia butuh cara cepat untuk membuat form yang terlihat rapi dan mudah dibagikan.
Recruiter Raka, 29 - Raka mengelola banyak form untuk rekrutmen, screening, dan pengumpulan data kandidat. Ia butuh dashboard yang jelas dan analitik yang cukup untuk memantau performa form.
Operations Admin Sari, 41 - Sari mengelola form internal untuk permintaan aset, cuti, dan approval sederhana. Ia membutuhkan keamanan akses dan kontrol status draft versus published.
Dita menjalankan toko kecil dan biasanya membuat form lewat alat yang berbeda-beda, lalu menyalin data ke spreadsheet secara manual. Akibatnya, ia sering lupa memublikasikan form atau tidak tahu mana yang benar-benar dipakai pelanggan.
Dengan FormKita, Dita membuka dashboard, membuat form dengan drag-and-drop, menandai field wajib, lalu menyimpan draft sebelum publish. Dalam beberapa menit ia mendapatkan public link dan embed code, sehingga form bisa dipasang di website tanpa bantuan developer.
Setelah form aktif, Dita melihat jumlah respons, chart per field, dan mengekspor CSV saat diperlukan. Ia menghemat waktu operasional, mendapatkan data yang lebih rapi, dan bisa mengukur performa form secara langsung.
Team & resourcing - Small team - 2 engineers, 1 designer, part-time PM
Paste this into Cursor, Bolt, Lovable, or v0 to start building.
Build a full-stack web app called FormKita using Astro with React components for interactive UI, TypeScript, PostgreSQL, Prisma, and Auth.js with an Astro adapter. Create a minimal form builder platform with these screens and flows: - Public landing page with hero, benefits, CTA register/login, subtle GSAP animations, and Lenis smooth scroll. - Authentication pages for register and login. - Protected dashboard showing user forms, total responses, draft/published status, and a Create New Form button. - Form editor with drag-and-drop field reorder, field types text/multiple choice/number, required toggle, save draft, and live preview. - Publish flow that generates a public link with unique slug and optional password protection, plus embed code snippet. - Analytics page showing response count, field-wise charts, and CSV export. - Public form submission page that is fast and mobile-friendly. Use these database models: User, Form (userId), FormField (formId, type, label, required, order), FormResponse (formId, submittedAt), FormResponseItem (responseId, fieldId, value), PublishSetting (formId, slug, isPublic, password optional), AuditEvent (userId, action, timestamp). Implement backend CRUD, publish logic, analytics aggregation, and CSV export in Astro API routes. Protect all routes except the landing page and public form submission page. Add event tracking for page_view, register, login, form_created, draft_saved, published, response_submitted, analytics_viewed, and csv_exported. Use a minimal design system with primary color #2D336B and secondary color #FFF2F2, generous whitespace, clean sans-serif typography, and accessible focus states. Generate a production-ready scaffold with realistic component structure, route structure, Prisma schema, authentication setup, and seedable sample data.
Anda adalah Product Manager yang ringkas dan langsung ke inti. Tugas Anda: hasilkan konten file PRD.md untuk produk FormKita dalam satu blok markdown. Output PRD wajib mengikuti prinsip desain minimalis dan memiliki pembatas visual yang jelas antar setiap bagian. Aturan output PRD: - Judul utama: # PRD FormKita (ini satu-satunya header yang boleh menggunakan #). - Gunakan daftar bernomor (1, 2, 3) dan bullet point (-) untuk detail. DILARANG menggunakan ##, ###, --, atau ** untuk format teks (kecuali untuk tombol/aksi, gunakan backtick). - Maksimal 3 kalimat per paragraf. - **Pembatas antar bagian**: Setiap bagian besar (Ringkasan, Tujuan, Ruang Lingkup, Alur, Fungsional, Non-Fungsional, Teknologi, Desain, Metrik) wajib dipisahkan dengan garis pembatas berupa `___` (garis bawah tiga kali) atau `<hr>` untuk menciptakan hierarki visual yang bersih dan memudahkan scanning. Spesifikasi teknis wajib: - Framework: Astro (full-stack dengan API routes). UI interaktif (Dashboard, Editor, Analytics) menggunakan React. - Animasi landing: GSAP (efek subtle) dan Lenis (smooth scroll). - Autentikasi: Auth.js dengan adapter Astro dan database PostgreSQL. - Database: PostgreSQL dengan Prisma ORM. - Backend logic (CRUD form, publish, analytics) ditulis dalam TypeScript di dalam API routes Astro. Alur pengguna (wajib): 1. Landing page (hero, benefit, CTA register/login, Lenis + GSAP). 2. Autentikasi (Register dan Login). 3. Dashboard (daftar form, total responses, status draft/published, tombol Create New Form). 4. Editor Form (drag-and-drop reorder field, tipe field: text, multiple choice, number. Fitur: required toggle, save draft, live preview). 5. Publish (generate public link, embed code snippet). 6. Analisis (response count, field-wise charts, export CSV). Model data (harus disebutkan): User, Form (userId), FormField (formId, type, label, required, order), FormResponse (formId, submittedAt), FormResponseItem (responseId, fieldId, value), PublishSetting (formId, slug, isPublic, password opsional), AuditEvent (userId, action, timestamp). Panduan warna dan desain minimalis (untuk bagian Desain UI): - Warna primer: #2D336B (Indigo Tua) untuk navigasi, tombol primer, heading, aksen interaktif, dan border fokus. - Warna sekunder: #FFF2F2 (Champagne Petal) untuk latar belakang halaman, card, dan area kontras. - Prinsip minimalis: Gunakan whitespace yang luas (padding 40px+ antar blok), tipografi sans-serif bersih (ukuran terbatas: 16px untuk body, 24px untuk subheading, 40px untuk hero). Hilangkan semua dekorasi tidak perlu (bayangan, gradien, border radius berlebihan). Batasi maksimal 2 jenis ukuran font. - Khusus untuk pembatas antar section di UI (bukan di PRD): Gunakan garis horizontal tipis setebal 1px dengan warna #2D336B pada opacity 20%, diapit whitespace vertikal 32px. Persyaratan tambahan: - Lindungi semua route kecuali landing dan halaman publik form (submission). - Validasi field wajib, tangani empty states dengan baik. - Halaman publik form harus cepat dan mobile-friendly. - Instrumentasi event: page_view, register, login, form_created, draft_saved, published, response_submitted, analytics_viewed, csv_exported. Struktur PRD yang harus dihasilkan (urutkan persis, dan setiap bagian besar wajib dipisahkan dengan `___`): 1. Ringkasan Produk (1 kalimat). 2. Tujuan dan Sasaran (maks 3 poin). 3. Ruang Lingkup (Fitur Masuk dan Tidak Masuk, masing-masing 3 poin). 4. Alur Pengguna Detail (jelaskan 6 langkah di atas, tiap langkah maks 2 kalimat). 5. Persyaratan Fungsional (per halaman/fitur, tulis sebagai daftar padat). 6. Persyaratan Non-Fungsional (kinerja, keamanan, aksesibilitas - total 3 poin). 7. Tumpukan Teknologi (sebutkan semua dan jelaskan integrasi Auth.js dan Prisma). 8. Desain Sistem & UI (masukkan panduan warna dan minimalis di sini). 9. Tolok Ukur Keberhasilan (3 metrik kuantitatif). Akhiri output PRD dengan kata "SELESAI" tanpa tambahan apa pun.
Design by The Resonance | Powered by GPC – The AI Transformation Company