Episode ini menelusuri sejarah Nuxt dari Vue SPA manual menjadi meta framework full-stack, evolusi dari Nuxt 2 ke Nuxt 3 dan Nuxt 4, serta masalah setup SSR, routing, dan data fetching yang diselesaikan Nuxt dibanding pendekatan tradisional.

Setelah environment kalian siap, mari memahami mengapa Nuxt lahir dan masalah apa yang dia selesaikan. Nuxt sering disebut meta framework — sebuah framework yang dibangun di atas framework lain. Dia tidak mengganti Vue, dia melengkapi Vue dengan layer full-stack yang utuh.
Untuk memahami nilai Nuxt, kalian perlu tahu dulu kesulitan membangun aplikasi Vue secara manual: mengatur router, mengurus rendering di server, menyiapkan server API, menangani meta tags untuk SEO, sampai men-deploy ke berbagai platform. Semua itu adalah pekerjaan berulang yang dilakukan setiap developer secara berbeda-beda.
Episode 1 ini membedah latar belakang tersebut: bagaimana Nuxt berevolusi dari Nuxt 2 ke Nuxt 3 lalu Nuxt 4, apa posisinya di ekosistem Vue dan JAMstack, serta bagaimana dia dibandingkan dengan membangun Vue SPA manual atau memakai Next.js. Kalian akan keluar dari episode ini dengan alasan kuat mengapa Nuxt layak dipelajari.
Vue lahir sebagai library reaktif untuk user interface. Saat sebuah aplikasi tumbuh, developer harus memilih dan merangkai sendiri banyak library: vue-router untuk routing, vuex atau pinia untuk state, axios untuk data, dan solusi SSR yang rumit bernama vue-server-renderer. Rangkaian keputusan ini berbeda di setiap project dan memakan banyak waktu.
Nuxt muncul untuk menstandarkan semua itu. Dia menyediakan konvensi direktori yang sudah disepakati, file-based routing, auto-import, dan satu entry point yang konsisten. Developer cukup fokus menulis fitur, bukan merangkai infrastruktur.
Perjalanan Nuxt melalui beberapa tonggak besar:
app/ yang lebih bersih, server actions yang stabil, dan peningkatan modularitas.npx nuxi infoPerintah npx nuxi info menampilkan versi Nuxt, Nitro, dan Node yang dipakai project kalian. Informasi ini sangat berguna saat debugging isu versi.
Nuxt adalah framework resmi dari tim Vue ecosystem, bersama Vite dan Vitest. Dalam istilah JAMstack — JavaScript, API, dan Markup — Nuxt bisa menghasilkan markup statis yang disajikan cepat di CDN, sekaligus memakai JavaScript dan API server saat dibutuhkan. Dia menjembatani dunia SPA yang sepenuhnya client-side dan dunia server-rendered yang lebih tradisional.
Secara tradisional, membangun aplikasi full-stack Vue berarti dua codebase: frontend Vue dan backend terpisah. Nuxt menyatukan keduanya. Routing otomatis dari folder pages, data diambil dengan composable bawaan, dan API ditulis di folder server dengan Nitro.
export default defineEventHandler((event) => {
return { nama: "Arman", peran: "Cloud & Software Engineer" }
})File di server/api otomatis menjadi endpoint HTTP. defineEventHandler((event) => {...}) menerima request dan mengembalikan response JSON tanpa perlu setup Express atau Fastify.
Sebelum Nuxt, mengaktifkan SSR memaksa kalian mengatur server sendiri, menangani hydration, dan membagi kode server-client secara manual. Nuxt mengabstraksi semua itu lewat mode rendering per halaman:
export default defineNuxtConfig({
routeRules: {
"/blog/**": { swr: 3600 },
"/": { prerender: true }
}
})routeRules memungkinkan setiap pola halaman punya strategi rendering berbeda. Prerender untuk halaman statis dan swr untuk konten yang dirender ulang di server dengan cache. Konsep ini akan diperdalam di episode 14.
Vue SPA murni hanya dirender di browser, sehingga SEO buruk, waktu muat pertama lama, dan tidak ada server-side data. Kalian juga harus merangkai router, state, dan tooling sendiri. Nuxt memberikan semua itu secara terintegrasi plus kemampuan SSR. Pilih Vue SPA murni hanya untuk dashboard internal yang tidak butuh SEO.
Next.js dan Nuxt sejajar dalam banyak hal: routing berbasis file, SSR, SSG, dan serverless deployment. Perbedaan inti ada di ekosistem: Next.js memakai React, Nuxt memakai Vue. Bagi kalian yang sudah nyaman dengan Vue, Nuxt adalah pilihan paling natural. Selain itu Nuxt menawarkan Nitro yang membuat kode server kalian bisa berjalan di hampir semua platform tanpa menulis adapter khusus.
Tip
Jangan berpikir Nuxt hanya untuk halaman marketing. Dengan Nitro, route rules, dan server API, Nuxt cocok untuk aplikasi SaaS penuh — hal yang akan kita buktikan sepanjang series ini.
Jujur soal batasan: untuk landing page statis yang sangat sederhana, Nuxt mungkin terlalu besar — Vue atau bahkan HTML statis cukup. Untuk API murni tanpa UI, lebih baik backend khusus. Nuxt bersinar justru saat kalian butuh keduanya dalam satu codebase: UI yang dirender di server dan API yang bisa dipanggil dari client.
Pertimbangan lain adalah biaya perawatan tooling. Pada Vue SPA manual, meng-upgrade satu dependency besar bisa merusak banyak bagian lain, dan kalian harus memperbaiki semuanya sendiri. Nuxt mengelola kompatibilitas banyak dependency secara terpusat, sehingga kalian lebih fokus ke fitur.
Beberapa contoh keputusan yang bisa membantu:
Episode 1 meletakkan landasan mental kalian: Nuxt lahir karena merakit full-stack Vue secara manual itu sulit dan tidak konsisten. Dia menstandarkan routing, data fetching, SSR, SSG, dan server engine dalam satu framework yang terus berevolusi dari Nuxt 2 ke Nuxt 3 dan kini Nuxt 4.
Inti yang harus dibawa pulang:
app/.Di episode 2 selanjutnya kita akan membahas konsep dasar dan arsitektur utama Nuxt — bagaimana rendering modes bekerja di balik layar, peran Nitro sebagai server engine, mekanisme auto-import, komponen utama project, serta batas antara kode server dan kode client. Ini akan menjadi fondasi teknis untuk semua episode berikutnya.