Back / Notes

Astro/intro-astro

Intro Astro

/1 min readastro

Astro adalah framework web untuk membangun content-driven website seperti:

  • Blog
  • Landing page marketing
  • E-commerce

Astro berfokus pada performa dengan mengutamakan render di server, dan hanya mengirim JavaScript ketika benar-benar dibutuhkan melalui pendekatan Island Architecture.


Fitur-fitur Astro

  • Island Architecture
  • UI agnostic (mendukung React, Vue, Svelte, Solid, dll)
  • Server-first rendering
  • Zero JS by default
  • Content Collections (untuk pengelolaan konten berbasis file)
  • Customizable (dengan plugin dan adapter tambahan)

Instalasi

Buat proyek baru

bash
pnpm create astro@latest

Ikuti wizard CLI untuk memilih template dan konfigurasi awal.

Tambahkan integrasi (opsional)

  • Tambahkan React:

    bash
    pnpm astro add react
  • Tambahkan TypeScript plugin:

    bash
    pnpm add @astrojs/ts-plugin
  • Tambahkan Prettier dan plugin Astro:

    bash
    pnpm add --save-dev --save-exact prettier prettier-plugin-astro

Struktur Proyek

Proyek yang dihasilkan oleh create astro memiliki struktur dasar seperti berikut:

Direktori Utama

Folder / FileDeskripsi
src/Kode utama proyek (komponen, halaman, gambar, style, dsb)
public/Aset statis (ikon, font, PDF) yang disajikan langsung oleh server
astro.config.mjsFile konfigurasi utama Astro (disarankan)
tsconfig.jsonKonfigurasi TypeScript (disarankan)
package.jsonManifest proyek dan daftar dependensi

Contoh Struktur Folder

bash
project-root/
├── public/
   ├── robots.txt
   ├── favicon.svg
   └── my-cv.pdf

├── src/
   ├── blog/
   ├── post1.md
   ├── post2.md
   └── post3.md

   ├── components/
   ├── Header.astro
   └── Button.jsx

   ├── images/
   ├── image1.jpg
   ├── image2.jpg
   └── image3.jpg

   ├── layouts/
   └── PostLayout.astro

   ├── pages/
   ├── index.astro
   ├── about.astro
   ├── rss.xml.js
   └── posts/
       └── [post].astro

   └── styles/
       └── global.css

├── astro.config.mjs
├── tsconfig.json
└── package.json