The Great Apes — Blog Pribadi
Blog pribadi berisi artikel, galeri, pembaca PDF, dan chatbot AI. Dibangun tanpa framework dan tanpa bundler — HTML, CSS, dan JavaScript langsung, dengan Vercel serverless function sebagai backend.

Blog pribadi — "The Great Apes" — tayang di https://www.amazthegreatape.com/. Situs statis multi-halaman tanpa framework dan tanpa langkah build, di mana setiap kemampuan dinamis ditambahkan oleh serverless function atau listener Firebase, bukan oleh bundler.
Sorotan
- Tanpa framework, tanpa bundler, dan itu memang rancangannya — halaman HTML biasa plus JavaScript vanilla dengan pola modul IIFE. Header dan footer disuntikkan saat runtime oleh
loadComponent()yang mengambil potongan HTML, sehingga navigasi cukup diedit sekali dilayout/header.html, bukan di tiap halaman. - Sistem cache-busting tiga lapis yang benar-benar menjangkau tab yang masih terbuka — URL aset berversi (
css/style.css?v=…) memaksa pengambilan ulang, headerCache-Controlper folder menjaga HTML tetap divalidasi sementara CSS/JS berversi boleh di-cache tujuh hari, dan konstantaASSET_VERSIONyang dibandingkan denganversion.jsonber-no-storememicu tepat satu kali reload. Lapis ketiga ada karena dua lapis pertama tidak bisa menolong tab yang dibiarkan terbuka berhari-hari atau halaman yang dipulihkan dari bfcache; halaman admin sengaja dilewati, sebab reload di tengah penulisan artikel akan membuang draf. - Tag Open Graph dinamis tanpa merender ulang seluruh situs di server —
api/artikel.jsmembaca_artikel.htmldan merender meta OG per artikel, dengan/artikel.htmldialihkan ke sana lewatvercel.json. Fileartikel.htmldi root adalah keluaran yang masuk gitignore, bukan berkas sumber. - Pembaca PDF yang dialirkan dari Google Drive —
api/drive-pdf.jsberjalan di Edge runtime dan mem-proxy range request untuk pembaca "Pojok Baca" berbasis pdf.js, meneruskanContent-Range;Responsedi Edge tidak pernah meneruskanContent-Length, itulah sebabnya penanganan range ditulis eksplisit. - Kunci AI tidak pernah sampai ke browser — chatbot berbicara ke
api/chat.js, proxy DeepSeek di sisi server. Konfigurasi Firebase di JS klien memang konfigurasi publik; keamanannya bersandar pada rules basis data, bukan pada menyembunyikannya.
Fitur Utama
- Artikel — tulisan dengan komentar dan reaksi yang ditopang Firebase Realtime Database, plus endpoint pencarian dan indeks konten.
- Galeri — kumpulan foto yang digerakkan
data/galeri.jsondan Firebase, dengan tampilan lightbox. - Pojok Baca — pembaca PDF di dalam browser yang mengalirkan buku lewat proxy Drive, sehingga tidak ada berkas besar yang ikut masuk repo.
- Chatbot — asisten bertenaga DeepSeek yang bisa dipanggil dari situs, di-proxy di sisi server.
- Testimoni, portofolio, dan kontak — konten semi-statis di
data/*.jsonyang dipadukan dengan data langsung Firebase dan endpointkirim-pesan. - Panel admin — login Firebase Auth yang menggerbangi pengelolaan artikel, galeri, dan testimoni langsung dari browser.
Tech Stack
- HTML + CSS + JavaScript vanilla (ES6, modul IIFE, tanpa framework)
- Firebase Realtime Database, Auth, dan Storage (SDK compat v8.10.1, dimuat dari CDN)
- Vercel Serverless Functions (
api/*.js,handler(req, res)native, bukan Express) - Vercel Edge runtime (proxy streaming
api/drive-pdf.js) - DeepSeek API (chatbot, hanya di sisi server)
- pdf.js (pembaca Pojok Baca)
- Vercel (hosting, deploy otomatis saat push ke
main)
Status & Kematangan
Aktif dan dipakai terus-menerus. Tidak ada suite test otomatis — verifikasi berupa checklist manual di browser yang terdokumentasi plus satu skrip Puppeteer ad hoc yang dijalankan manual, bukan lewat CI. Pengembangan lokal terbagi antara Live Server untuk halaman statis dan vercel dev untuk endpoint di api/. Jumlah baris di bawah didominasi aset statis dan isi tulisan yang ikut dilacak git, bukan logika aplikasi, dan sengaja dilaporkan apa adanya.
Metrik Terukur
| Commit | 125 |
| Rentang Tanggal | 31 Mar 2026 – 11 Agu 2026 |
| Baris kode | 93.523 (sebagian besar berkas aset/konten statis, bukan seluruhnya logika) |
| Test otomatis | tidak ada |