Blog statis lengkap dengan CMS terintegrasi, berjalan 100% di atas GitHub — tanpa database, tanpa server, tanpa biaya hosting.
Tulis artikel di panel admin → konten tersimpan sebagai Markdown di repo Anda → GitHub Actions otomatis membangun situs statis yang SEO-friendly → publikasi ke GitHub Pages.
┌──────────────┐ tulis ┌──────────────┐ commit ┌──────────────┐
│ Panel Admin │ ─────────► │ content/*.md │ ────────► │ GitHub Repo │
│ (/admin/) │ │ (Markdown) │ └──────┬───────┘
└──────────────┘ └──────────────┘ │ push
▼
┌──────────────┐ deploy ┌──────────────┐ build ┌──────────────┐
│ GitHub Pages │ ◄──────── │ _site/ │ ◄───────── │GitHub Actions│
│ (blog live) │ │ (HTML statis)│ │ (build.js) │
└──────────────┘ └──────────────┘ └──────────────┘
Blog publik (SEO-optimized):
description, canonical, Open Graph, Twitter CardPanel admin (CMS):
Buat repo baru (mis. blog-cms), lalu unggah seluruh isi folder ini.
git init
git add .
git commit -m "Initial commit: GitCMS Blog"
git branch -M main
git remote add origin https://github.com/USERNAME/blog-cms.git
git push -u origin main
config.jsonPENTING — edit minimal dua baris ini agar URL situs benar:
{
"baseUrl": "https://USERNAME.github.io/blog-cms",
"basePath": "/blog-cms"
}
| Jenis situs | baseUrl |
basePath |
|---|---|---|
| Project site (umum) | https://user.github.io/blog-cms |
/blog-cms |
| User site | https://user.github.io |
`` (kosong) |
| Domain sendiri | https://blogsaya.com |
`` (kosong) |
Anda juga bisa mengubah ini nanti lewat menu Pengaturan Situs di panel admin.
baseUrl yang Anda sethttps://github.com/settings/tokens → Fine-grained tokens → Generate new token<baseUrl>/admin/ (mis. https://USERNAME.github.io/blog-cms/admin/)main, folder content/posts)Edit di /admin/ → commit ke content/posts/ → Actions build → Pages update
Setiap kali Anda menyimpan artikel atau mengubah pengaturan, GitHub Actions otomatis membangun ulang situs. Mirip “Publish” di WordPress, tapi tanpa server.
blog-cms/
├── admin/ ← panel CMS (akses di /admin/)
│ ├── index.html
│ └── assets/{css,js}/
├── content/
│ ├── posts/ ← artikel blog (.md) ← DIKELOLA CMS
│ └── pages/ ← halaman statis (about.md, dll)
├── theme/
│ └── style.css ← tema tampilan blog publik
├── build/
│ ├── build.js ← static site generator
│ ├── templates.js ← template HTML + SEO
│ └── serve.js ← server pratinjau lokal
├── public/images/ ← gambar yang diunggah
├── config.json ← konfigurasi situs
├── package.json ← dependensi build
├── .github/workflows/
│ └── deploy.yml ← pipeline build & deploy
└── _site/ ← hasil build (auto-generate, tidak di-commit)
Untuk menguji sebelum push (butuh Node.js 18+):
npm install # sekali saja
npm run build # bangun situs ke _site/
npm run serve # jalankan di http://localhost:4321
Buka http://localhost:4321/blog-cms/ (sesuai basePath) untuk melihat blog,
dan /admin/ untuk panel CMS.
Setiap artikel = file Markdown dengan frontmatter:
---
title: "Judul Artikel"
slug: judul-artikel
date: 2026-06-05
status: published # atau "draft" (tidak ditampilkan)
category: "SEO"
author: "Nama Anda"
tags: ["seo", "tutorial"]
excerpt: "Ringkasan untuk SEO & kartu artikel."
featured_image: "/public/images/foto.jpg"
---
## Isi artikel dalam Markdown
| Ingin mengubah… | Edit file… |
|---|---|
| Warna, font, tampilan | theme/style.css (lihat variabel CSS di :root) |
| Judul, deskripsi, sosmed | config.json atau menu Pengaturan Situs |
| Menu navigasi | config.json → bagian nav |
| Struktur halaman / SEO | build/templates.js |
| Logika build | build/build.js |
Setiap halaman artikel otomatis menghasilkan:
<title> dan <meta name="description"> unik<link rel="canonical"> untuk mencegah duplikatog:title, og:description, og:image, og:type=article)Situs juga menghasilkan sitemap.xml, rss.xml, dan robots.txt.
| Masalah | Solusi |
|---|---|
| CSS/gambar tidak muncul | Pastikan basePath di config.json benar (mis. /blog-cms) |
| Halaman 404 setelah deploy | Tunggu workflow Actions selesai; cek Source = GitHub Actions |
| Link antar-halaman rusak | Periksa basePath — kosongkan untuk user-site/domain sendiri |
| “Token tidak valid” | Cek permission Contents: Read and write & masa berlaku token |
| Artikel tak muncul di blog | Pastikan status: published, lalu tunggu build selesai |
| Workflow Actions gagal | Buka tab Actions → klik run yang gagal untuk lihat log |
content/pages/Dibuat untuk Anda yang ingin blog cepat, gratis, dan sepenuhnya dimiliki sendiri. Selamat berkarya! 🚀