Buat, publikasikan, dan analisis form tanpa ribet.
FormKita adalah platform pembuat form full-stack untuk tim kecil dan bisnis yang ingin membuat form, mengumpulkan respons, dan membaca hasil dalam satu alur yang rapi. Produk ini menggabungkan editor drag-and-drop, publikasi form, dan analitik respons agar tim bisa bergerak cepat tanpa bergantung pada engineering.
Founder Rani, 32 - Rani menjalankan startup kecil dan perlu mengumpulkan leads dari landing page serta event. Ia butuh cara cepat untuk membuat form yang terlihat profesional dan bisa dibagikan ke tim.
Ops Manager Budi, 41 - Budi mengelola operasional internal seperti request vendor, survei karyawan, dan pengumpulan data harian. Ia butuh validasi sederhana dan hasil yang mudah diekspor.
Marketing Specialist Sinta, 28 - Sinta membuat kampanye berkala dan ingin mengetahui form mana yang paling banyak menghasilkan respons. Ia membutuhkan dashboard ringkas dan analytics yang mudah dibaca.
Rani menjalankan kampanye webinar dan butuh form pendaftaran yang bisa dibuat cepat tanpa menunggu tim engineering. Di FormKita, ia membuka dashboard, membuat form baru, drag-and-drop beberapa field, lalu menyimpan draft dan melihat preview dalam hitungan menit.
Saat form dipublikasikan, FormKita otomatis menghasilkan public link dan embed code yang bisa dipasang di landing page kampanye. Rani mulai menerima respons, melihat chart per field untuk menemukan pertanyaan yang paling sering ditinggalkan, lalu mengekspor CSV untuk follow-up tim sales.
Hasilnya, Rani tidak hanya menghemat waktu pembuatan form, tetapi juga mendapat visibilitas yang jelas tentang performa kampanye. Bagi bisnis, ini berarti time-to-publish lebih cepat, respons lebih banyak, dan keputusan yang lebih berbasis data.
Team & resourcing - Small team - 2 full-stack engineers, 1 product 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, TypeScript, PostgreSQL, Prisma ORM, and Auth.js with the Astro adapter. Product summary: FormKita is a form builder for small teams and businesses. It needs a public landing page with subtle GSAP animation and Lenis smooth scrolling, authenticated dashboard, drag-and-drop form editor, public form submission pages, publishing with public link and optional password, and analytics with response counts, field-wise charts, and CSV export. Primary screens and flows: 1) Landing page with hero, benefits, register/login CTAs, GSAP subtle animation, Lenis smooth scroll. 2) Register and Login using Auth.js. Protect all routes except landing and public form pages. 3) Dashboard showing list of forms, total responses, draft/published status, and Create New Form button. 4) Form Editor with reusable FieldBuilder component supporting drag-and-drop reorder, field types: text, multiple choice, number, required toggle, save draft, and live preview. 5) Publish screen that generates a public slug link and embed code snippet, with optional password protection. 6) Analytics screen with response count, field-wise charts, and CSV export. 7) Public form submission page that is fast, mobile-friendly, and validates required fields server-side. Data model: 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) Technical requirements: - Use Astro API routes or a separate TypeScript server for CRUD form logic, publish flow, and analytics. - Use PostgreSQL with Prisma migrations and clean relational schema. - Use Auth.js for register/login/session handling and server-side route protection. - Add instrumentation for page_view, register, login, form_created, draft_saved, published, response_submitted, analytics_viewed, csv_exported. - Implement accessible UI, empty states, optimized loading, reusable components, and responsive design. Design system: - Primary color #2D336B for navigation, primary buttons, headings, interactive accents, and focus borders. - Secondary color #FFF2F2 for page backgrounds, cards, and contrast areas. - All text on #FFF2F2 must use #2D336B with at least 4.5:1 contrast. Implement production-ready file structure, schema, server routes, client components, form validation, and realistic seed/sample data. Prioritize clear architecture, reusable components, and polished UX.
Anda adalah Product Manager yang ringkas dan langsung ke inti. Tugas Anda: hasilkan konten file PRD.md untuk produk FormKita dalam satu blok markdown. Aturan output PRD: - Judul utama: # PRD FormKita (ini satu-satunya header yang boleh menggunakan #). - Setiap bagian berikutnya gunakan teks tebal atau daftar, tetapi DILARANG menggunakan ##, ###, --, atau ** (kecuali untuk penekanan minimal, lebih baik gunakan daftar bernomor atau bullet). - Maksimal 3 kalimat per paragraf. - Langsung ke konten, tanpa pembukaan atau penutupan. 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 atau sebagai server terpisah yang terhubung (jelaskan dalam PRD). 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 wajib (untuk bagian Desain UI): - Primer: #2D336B (Indigo Tua) untuk navigasi, tombol primer, heading, aksen interaktif, dan border fokus. - Sekunder: #FFF2F2 (Champagne Petal) untuk latar belakang halaman, card, dan area kontras. - Kontras: Teks di atas #FFF2F2 wajib menggunakan #2D336B dengan rasio kontras minimal 4.5:1. 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. - Optimasi loading, aksesibilitas, dan struktur komponen yang reusable (khususnya FieldBuilder). Struktur PRD yang harus dihasilkan (urutkan persis): 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). 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 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