Frontend Formsify menggunakan Next.js (App Router) dan terhubung ke backend be-formsify.
- Frontend repo: https://github.com/Cyaside/fe-formsify
- Backend repo: https://github.com/Cyaside/be-formsify
- Next.js 16 (App Router)
- React 19
- TypeScript 5
- Tailwind CSS 4
- TanStack React Query (server state/data fetching)
- Zustand (client state)
- DnD Kit (
@dnd-kit/core,@dnd-kit/sortable) untuk drag-drop builder - Socket.IO Client untuk realtime collaboration
- Recharts untuk analytics chart
- Framer Motion untuk animation/interactions
- Node.js 20+
- npm
- Backend sudah berjalan (default
http://localhost:4000)
Buat file fe-formsify/.env.local: atau bisa lihat di .env.example
NEXT_PUBLIC_API_BASE_URL=http://localhost:4000
NEXT_PUBLIC_GOOGLE_CLIENT_ID=
NEXT_PUBLIC_ENABLE_FORM_COLLAB=falseKeterangan:
NEXT_PUBLIC_API_BASE_URL: base URL backend API.NEXT_PUBLIC_GOOGLE_CLIENT_ID: isi jika Google Sign-In dipakai.NEXT_PUBLIC_ENABLE_FORM_COLLAB: aktifkan fitur collab realtime di UI.
cd fe-formsify
npm install
npm run devFrontend default di http://localhost:3000.
npm run lint
npm run buildnpm run build
npm run startstart menggunakan PORT environment variable. Jika tidak diisi, gunakan port sesuai runtime platform.
- Pastikan
NEXT_PUBLIC_API_BASE_URLmengarah ke backend yang benar. - Pastikan backend mengizinkan origin frontend pada
CORS_ORIGIN. - Jika collab diaktifkan, backend juga harus set
ENABLE_FORM_COLLAB=true.
- Terkadang saat proses membuat form, ada bug kecil di mana perubahan terlihat revert (contoh: klik Add question, lalu pertanyaan sempat hilang dan perlu klik lagi) Ini biasanya masalah koneksi.
- Autosave menggunakan on-change namun Socket.IO tetap mengaktifkan polling fallback transport (kalau websocket gagal karena proxy atau network) untuk ningkatin stabilitas koneksi di deployment (khususnya di belakang proxy/load balancer), karena pure WebSocket kadang menyebabkan sync tidak stabil.






