Gatsby.js adalah framework React berbasis static site generator yang memungkinkan Anda membuat website yang sangat cepat, aman, dan mudah dioptimasi SEO. Gatsby menggabungkan kekuatan React, GraphQL, dan Webpack untuk menghasilkan website statis yang dapat di-deploy di berbagai platform hosting.
Gatsby sangat cocok untuk blog, portofolio, dokumentasi, dan website bisnis yang membutuhkan performa tinggi dan kemudahan pengelolaan konten.
2. Persiapan Lingkungan Pengembangan
Sebelum memulai, pastikan Anda sudah menginstal beberapa tools berikut:
Berikut adalah struktur folder utama pada proyek Gatsby:
src/
- Tempat kode sumber React, halaman, dan komponen
gatsby-config.js
- Konfigurasi utama Gatsby
gatsby-node.js
- File untuk menambah fungsionalitas Node.js seperti membuat halaman dinamis
static/
- Folder untuk file statis seperti gambar dan favicon
public/
- Folder hasil build yang berisi website statis siap deploy
Memahami struktur ini penting agar Anda dapat mengelola proyek dengan baik.
5. Menambahkan Halaman dan Navigasi
Gatsby menggunakan sistem routing berbasis file. Untuk menambahkan halaman baru, buat file React di dalam folder
src/pages/
. Contoh membuat halaman
about.js
:
import React from "react";
export default function About() {
return (
<main className="p-6 max-w-3xl mx-auto">
<h1 className="text-3xl font-bold mb-4">Tentang Kami</h1>
<p>Ini adalah halaman tentang kami di website Gatsby.</p>
</main>
);
}
Untuk navigasi antar halaman, gunakan komponen
Link
dari Gatsby:
import React from "react";
import { Link } from "gatsby";
export default function Navbar() {
return (
<nav className="bg-indigo-600 p-4 text-white flex space-x-6">
<Link to="/" className="hover:underline">Beranda</Link>
<Link to="/about" className="hover:underline">Tentang</Link>
</nav>
);
}
6. Menggunakan Plugin Gatsby
Gatsby memiliki ekosistem plugin yang sangat kaya untuk menambah fitur seperti optimasi gambar, sourcing data, dan SEO. Contoh menambahkan plugin untuk optimasi gambar:
Setelah menambahkan plugin, Anda bisa menggunakan komponen
GatsbyImage
untuk menampilkan gambar yang dioptimasi.
7. Mengambil Data dengan GraphQL
Gatsby menggunakan GraphQL untuk mengambil data dari berbagai sumber seperti filesystem, CMS, dan API. Contoh query GraphQL untuk mengambil data gambar dari filesystem: