Studi Kasus Aris Setiawan: Migrasi Form Konsultasi ke Server Actions Pangkas Bundle JavaScript 47 KB dan Naikkan Submit Rate dari 2,1 ke 4,8 Persen di 2026
TL;DR: Personal brand Aris Setiawan (legal consultant) punya tiga form lead capture di landing page yang dibangun pakai pola lama (REST API + fetch + state management manual). Setelah migrasi ke Server Actions Next.js pada Maret 2026, bundle JavaScript turun 47 KB, INP halaman membaik dari 280 ke 140 ms, dan submit rate naik dari 2,1 ke 4,8 persen dalam 30 hari. Studi internal ini fokus pada trade-off teknis dan hasil terukur.
Dalam tiga proyek terakhir yang saya bantu, satu masalah konsisten muncul di landing page konsultan profesional: form sederhana dibangun dengan boilerplate berlebih. State loading, error handling, validasi, semua ditulis manual di client component. Hasilnya: bundle membengkak, INP buruk, dan form kadang gagal jalan kalau JavaScript lambat dimuat.
Project Aris Setiawan jadi contoh paling representatif. Tiga form di landing page hukum: konsultasi gratis, request demo, dan newsletter. Total kode form sebelum migrasi: 312 baris TypeScript di client component. Setelah migrasi ke Server Actions: 87 baris, 70 persen reduksi.
Apa Masalahnya?
Form dengan REST API butuh boilerplate berikut:
- Endpoint
/api/leaddengan validasi dan auth. - Client component dengan
useStateuntuk loading, error, dan data. fetch()call manual dengan error handling.- Toast notification atau redirect logic.
- Reset form state setelah sukses.
Masing-masing form butuh stack lengkap di atas. Untuk tiga form, total: 14 file, 312 baris kode, dan dependency react-hook-form sebesar 31 KB. Saat saya audit performa Maret 2026, INP halaman konsultasi Aris mencapai 280 ms (di atas threshold "good" 200 ms). Submit rate stagnan di 2,1 persen.
Framework Migrasi yang Saya Pakai
| Aspek | Sebelum (REST API) | Sesudah (Server Actions) |
|---|---|---|
| File per form | 4-5 | 2 |
| Total baris kode | 312 | 87 |
| Bundle client JS | +47 KB | 0 KB tambahan |
| Auth handling | Manual di route handler | Inline di action |
| Cache invalidation | Manual revalidatePath di response | revalidatePath() langsung |
| Progressive enhancement | Tidak ada | Otomatis |
Untuk validasi, saya pakai Zod yang dijalankan di server side di dalam action. Tidak ada validasi client-side berlebihan. Browser bawaan (required, pattern, type="email") sudah cukup untuk UX, sisanya divalidasi di server.
Studi Kasus Aris Setiawan
Aris adalah konsultan hukum yang fokus pada UMKM. Landing page-nya dibangun dengan Next.js 14 App Router sejak Januari 2026. Tiga form lead capture:
- Form konsultasi gratis (5 field: nama, email, WhatsApp, jenis bisnis, kebutuhan).
- Form request demo paket premium (3 field).
- Form newsletter (1 field).
Langkah migrasi yang dijalankan tim:
- Audit bundle pakai
next build --analyze, identifikasi 47 KB chunk dari form code. - Tulis Server Action di
app/kontak/actions.tsdengan validasi Zod inline. - Ganti
<form onSubmit={...}>jadi<form action={submitConsultation}>. - Hapus
useStateloading dan ganti denganuseFormStatusdari React. - Pasang revalidatePath untuk update jumlah lead di dashboard admin.
- Test progressive enhancement: disable JavaScript di DevTools, pastikan form tetap submit.
Hasil Setelah 30 Hari
Metrik teknis:
- Bundle JavaScript first-load turun dari 187 KB ke 140 KB (47 KB reduction).
- INP P75 membaik dari 280 ke 140 ms.
- LCP halaman tetap stabil di 1,9 detik.
- Build time turun 18 persen karena chunk lebih sedikit.
Metrik bisnis (data internal Aris):
- Submit rate form konsultasi naik dari 2,1 ke 4,8 persen.
- Total leads per bulan naik dari 47 ke 109.
- Lead quality (yang lanjut ke discovery call) tetap sama: sekitar 38 persen.
Faktor utama kenaikan submit rate: form tetap jalan saat koneksi lambat (progressive enhancement) dan INP yang lebih cepat membuat form terasa lebih responsif di mobile. Data ini sejalan dengan riset web.dev tentang INP yang menunjukkan korelasi langsung antara INP dan conversion rate.
Pertanyaan Umum
Apakah Server Actions cocok untuk semua form?
Untuk form dengan side effect server (save ke DB, kirim email), ya. Untuk form pencarian client-side atau filter UI murni, tetap pakai client state biasa.
Bagaimana handling rate limiting?
Server Actions bisa dipasangi rate limiter di dalam action body. Saya pakai pola dengan upstash redis seperti dijelaskan di artikel rate limiting.
Apakah aman dari CSRF?
Next.js otomatis validasi origin header dan pakai unique action ID per build. Tetap perlu validasi auth di dalam action untuk endpoint sensitif.
Bisakah dipakai di project Pages Router?
Tidak. Server Actions eksklusif App Router. Pages Router harus migrasi dulu atau tetap pakai API routes.
Insight Aplikatif
Pola Server Actions bukan sekadar simplifikasi syntax. Trade-off utama: control granular hilang di sisi client (tidak ada custom loading state per field), tapi dapat progressive enhancement, bundle lebih ramping, dan cache revalidation otomatis. Untuk landing page personal brand atau bisnis kecil di Indonesia yang fokus konversi, trade-off ini layak. Untuk form kompleks dengan dependency state antar-field, tetap evaluasi kebutuhan dulu.
Artikel Terkait
Case Study
Studi Kasus Vetmo: Pasang use cache Direktif di Grid 80 Dokter Pet Care Pangkas TTFB dari 720 ke 110 ms dan Naikkan Booking Konsultasi 38 Persen di 2026
Halaman pencarian dokter Vetmo merender 80 kartu profil per request, membebani server. Migrasi ke direktif use cache di Next.js 15 dengan cacheTag per kota memangkas TTFB dan menaikkan booking.
Case Study
Studi Kasus Ade Mulyana: Migrasi ke Data-Driven Attribution Naikkan ROAS Konsultan Pajak dari 2,1 ke 4,7 dengan Realokasi Budget ke YouTube Pre-Roll di 2026
Pindah dari last-click ke data-driven attribution di GA4 mengungkap kanal yang underrated. Lihat bagaimana realokasi 40 persen budget ke YouTube pre-roll menggandakan ROAS dalam 90 hari.
Case Study
Studi Kasus Felicia Tan: Naikkan AEO Citation Reuse Rate Konten Fashion dari 21 ke 58 Persen lewat Restruktur Paragraf Kanonikal di 2026
Studi kasus Felicia Tan: restruktur 12 paragraf kanonikal konten fashion menaikkan AEO Citation Reuse Rate dari 21 ke 58 persen dan menghasilkan 19 sitasi ChatGPT per minggu di 2026.
Butuh website yang benar-benar bekerja?
Hubungi Vito untuk konsultasi gratis 15 menit.
WhatsApp Sekarang