Development

Astro 6 Setelah Cloudflare: Kenapa Gue Upgrade

Asep Alazhari

Cloudflare akuisisi Astro Januari 2026. Astro 6 jadi rilis pertama era edge-first ini. Ini yang berubah pas gue upgrade situs gue sendiri dari v5.

Astro 6 Setelah Cloudflare: Kenapa Gue Upgrade

Minggu Pas Framework Favorit Gue Diakuisisi

Tanggal 16 Januari 2026, Cloudflare ngumumin kalau mereka udah akuisisi The Astro Technology Company, tim di balik framework Astro. Gue baca press release-nya pagi-pagi pas kopi gue mulai dingin. Pikiran pertama gue bukan soal teknis. Lebih ke rasa khawatir kecil. Tiap developer yang pernah liat proyek open source kesayangannya dibeli pasti ngerasain kegelisahan yang sama. Apa Astro bakal berubah jadi sesuatu yang gue nggak mau?

Jadi gue lakuin satu hal yang beneran jawab pertanyaan itu. Gue upgrade situs production beneran dari Astro 5 ke Astro 6, terus gue liat apa yang terjadi. Astro 6 adalah rilis major pertama di bawah kepemilikan Cloudflare, dan dia ngegas banget ke arah edge computing. Ini breakdown jujur soal apa yang berubah, apa yang rusak, dan worth nggak buat ngabisin satu sore lo.

Poin Penting

  • Cloudflare akuisisi Astro tanggal 16 Januari 2026, dan Astro tetap full open source di bawah kepemilikan itu.
  • Astro 6 itu edge-first. Adapter Cloudflare yang dibangun ulang ngejalanin runtime Workers asli di development, prerendering, dan production.
  • Breaking change paling gede ada di content collections. Legacy collections udah dihapus, jadi Content Layer API pakai loaders sekarang wajib.
  • Astro 6 butuh Node 22.12.0 ke atas, upgrade ke Zod 4, dan ngehapus API lama kayak Astro.glob sama komponen ViewTransitions.
  • Verdict gue setelah upgrade situs live: iya, upgrade aja. Migrasinya cuma makan satu sore dan kebanyakan cuma kerjaan mekanis.

Cloudflare Beli Astro Itu Artinya Apa buat Developer?

Artinya Astro sekarang punya pemilik berkantong tebal yang seluruh bisnisnya ada di edge, dan Astro tetap open source. Cloudflare udah konfirmasi di pengumumannya kalau framework-nya tetap open source di bawah mereka, jadi proyek lo yang udah ada tetap jalan dan lisensinya nggak berubah.

Sinyal praktisnya ada di arah pengembangan. Cloudflare punya salah satu jaringan edge paling gede di dunia. Punya framework yang nge-compile situs lo artinya Astro sama Cloudflare Workers bisa dirancang biar nyatu, bukan cuma ditempel pakai adapter buatan komunitas. Astro 6 jadi rilis pertama yang kerasa niat itunya. Astro bukan cuma static site generator yang kebetulan bisa deploy ke edge lagi. Dia nganggep runtime edge sebagai target kelas satu.

Definisi: edge itu jaringan server yang ditaruh dekat secara fisik sama user lo, jadi kode lo jalan deket mereka, bukan di satu data center yang jauh. Makin deket, makin rendah latensinya.

Apa Aja yang Baru di Astro 6?

Astro 6 itu rilis soal performa dan runtime. Dia mempercepat build, mendesain ulang dev server, dan bikin runtime non-Node kerasa native. Ini perubahan utamanya.

Dev Server yang Ngejalanin Runtime Asli Lo

Ini perubahan yang pertama gue rasain. Astro 6 membangun ulang development server-nya di atas Environment API baru dari Vite. Gampangnya, Astro sekarang bisa ngejalanin runtime production lo yang asli pas development. Kalau lo deploy ke Cloudflare Workers, dev server lo jalan di runtime Workers juga. Kutukan lama “jalan di dev tapi rusak di prod” jadi jauh lebih kecil, soalnya dev sama prod berhenti jadi dua environment yang beda.

Adapter Cloudflare yang Dibangun Ulang

Adapter @astrojs/cloudflare yang baru ngejalanin workerd, runtime Workers open source, di tiap tahap. Development, prerendering, sama production semuanya pakai engine yang sama. Lo develop langsung ke platform API Cloudflare lewat modul cloudflare:workers, dengan akses penuh ke bindings lo secara lokal. Kalau lo hidup di Cloudflare, ini alasan terbesar buat upgrade.

Content Security Policy Kelas Satu

Astro 6 ngebawa dukungan Content Security Policy kelas satu, yang jadi feature request paling banyak di-upvote sepanjang sejarah proyek ini. Sekarang lo bisa nentuin aturan CSP lewat config Astro, bukan nempelin header belakangan. Buat situs konten, itu win keamanan beneran dengan effort yang dikit banget.

Live Content Collections sama Zod 4

Live Content Collections sekarang udah stabil dan keluar dari beta. Mereka ngebolehin lo narik data secara real time tanpa rebuild seluruh situs, yang berguna kalau konten lo ada di sumber eksternal. Astro 6 juga upgrade ke Zod 4, library validasi yang nge-power schema content collection.

Compiler Rust yang Eksperimental

Astro 6 punya compiler Rust eksperimental, penerus compiler berbasis Go yang asli buat file .astro. Masih awal sih, tapi tujuannya build yang lebih cepet. Lo nggak harus ngaktifinnya, dan jangan dulu di production, tapi ini ngasih sinyal ke mana performa build bakal ngarah.

Astro 5 vs Astro 6 Sekilas

AspekAstro 5Astro 6
PemilikIndependen (Astro Technology Company)Cloudflare, tetap open source
Dev serverBerbasis Node, terpisah dari runtime prodVite Environment API, jalanin runtime asli
Adapter CloudflareAdapter gaya komunitasDibangun ulang, jalanin workerd di mana-mana
Content collectionsLegacy collections masih bolehContent Layer API wajib
ValidasiZod 3Zod 4
CSPHeader manualDukungan config kelas satu
Node minimalEra 18.20.822.12.0

Apa yang Rusak Pas Upgrade dari Astro 5 ke 6?

Jawaban singkatnya content collections, versi Node, sama beberapa API yang dihapus. Kebanyakan cuma find and replace yang mekanis. Ini persis yang gue ubah di situs gue sendiri.

Pertama, file content config-nya pindah. Astro 6 nyari definisi collection lo di src/content.config.ts, bukan src/content/config.ts. Rename-nya doang yang penting, isinya tetap sama.

git mv src/content/config.ts src/content.config.ts

Kedua, method render-nya berubah. Di Astro 5 lo manggil entry.render() di objek entry. Di Astro 6 lo import render dari astro:content terus panggil dia sebagai function.

---
// Astro 5
import { getCollection } from "astro:content";
const { Content } = await entry.render();

// Astro 6
import { getCollection, render } from "astro:content";
const { Content } = await render(entry);
---

Ketiga, entry.slug udah ilang. Content Layer API ngasih entry.id sebagai gantinya, dan id itu termasuk direktori sama ekstensi file. Gue bikin slug bersihnya sendiri.

// Astro 5
slug: entry.slug,

// Astro 6
slug: entry.id.replace("en/", "").replace(/\.(mdx|md)$/i, ""),

Keempat, batas runtime-nya naik. Astro 6 butuh Node 22.12.0 ke atas. Gue naikin .nvmrc sama field engines di package.json biar lokal sama CI cocok. Kalau lo skip ini, build lo bakal gagal di continuous integration dengan error versi yang bikin bingung.

Astro 6 juga ngehapus beberapa API yang udah lama deprecated. Astro.glob, emitESMImage, sama komponen ViewTransitions udah ilang. Kalau proyek lo masih pakai itu, ganti dulu sebelum upgrade.

Satu catatan jujur dari migrasi gue. Item paling serem di tiap daftar Astro 6 itu penghapusan legacy content collections. Buat gue itu nggak ngefek apa-apa, soalnya situs ini udah pakai glob loader dari Content Layer API yang dateng di Astro 5. Kalau lo udah migrasi collection lo dari dulu, bagian yang nyebelin udah lewat. Kalau lo masih di type content collections, itu kerjaan yang bakal beneran makan waktu.

Kalau lo mau konteks lebih soal keanehan Astro pas kerja production beneran, catatan gue soal cara fix Astro hydration mismatch ngebahas kelas bug lain yang lo temuin pas mulai nyampur server rendering sama islands.

Gimana Cara Upgrade dari Astro 5 ke Astro 6?

Ini urutan yang gue ikutin, dan jalan mulus di situs konten multibahasa.

  1. Naikin runtime lo. Set Node 22.12.0 ke atas di .nvmrc sama field engines.
  2. Update Astro sama integrasinya. Gue mindahin astro dari 5.17.1 ke 6, terus naikin @astrojs/react, @astrojs/mdx, @astrojs/sitemap, sama @astrojs/partytown ke rilis yang kompatibel sama v6.
  3. Rename src/content/config.ts jadi src/content.config.ts.
  4. Ganti entry.render() jadi render(entry) dan import render dari astro:content.
  5. Ganti entry.slug jadi nilai yang diturunin dari entry.id.
  6. Hapus semua pemakaian Astro.glob, emitESMImage, sama ViewTransitions.
  7. Jalanin astro check terus benerin error tipe yang dia munculin. Langkah ini nangkep hampir semuanya.

Kalau lo deploy ke Cloudflare Pages, perhatiin build settings lo pas upgrade. Gue pernah nulis soal cara mengatasi masalah kompatibilitas Yarn di Cloudflare Pages build v2, dan pelajaran yang sama berlaku di sini. Pin package manager sama versi Node lo biar environment build cocok sama mesin lokal lo.

Pertanyaan yang Sering Diajukan

Astro 6 worth nggak buat di-upgrade?

Worth buat kebanyakan proyek. Kalau lo udah pindah ke Content Layer API di Astro 5, migrasinya cuma satu sore kerjaan mekanis. Kalau lo deploy ke Cloudflare, adapter barunya doang udah cukup jadi alasan.

Astro masih open source nggak setelah diakuisisi Cloudflare?

Masih. Cloudflare konfirmasi di pengumuman 16 Januari 2026 kalau Astro tetap open source di bawah mereka. Proyek lo yang udah ada sama lisensinya nggak berubah.

Gue harus migrasi content collections buat Astro 6?

Iya kalau lo masih pakai legacy type content collections. Astro 5 masih ngebolehin lewat backward compatibility, tapi Astro 6 ngehapus itu. Lo wajib pakai Content Layer API pakai loaders.

Astro 6 butuh akun Cloudflare nggak?

Nggak. Astro 6 tetap nge-build situs full static yang bisa di-deploy ke mana aja. Integrasi Cloudflare itu opsional lewat adapter, bukan keharusan.

Astro 6 butuh versi Node berapa?

Node 22.12.0 ke atas. Update runtime lokal lo sama konfigurasi CI lo sebelum upgrade, atau build lo bakal gagal.

Verdict Gue Setelah Ngirim ke Production

Ketakutan soal akuisisi ternyata nggak kebukti. Astro 6 masih framework yang sama, cuma lebih cepet dan jauh lebih nyaman di edge. Upgrade-nya makan satu sore, kebanyakan cuma buat segelintir edit find and replace sama naikin versi Node. Hasilnya dev server yang ngejalanin runtime asli gue, CSP kelas satu, sama cerita Cloudflare yang akhirnya kerasa niat, bukan sekadar ditempel.

Kalau lo masih di Astro 5, lakuin migrasinya sekarang selagi perubahannya masih dikit. Mulai dari mindahin content collections kalau belum, naikin Node ke 22.12.0, terus biarin astro check nuntun lo sisanya. Lo udah upgrade belum, atau masih nunggu? Gue pengen denger gimana migrasi lo nanti.

Back to Blog

Related Posts

View All Posts »