Website Karang Taruna Banjarsari
Website organisasi Karang Taruna dengan struktur organisasi interaktif, kotak aspirasi warga tanpa login, artikel multi-kategori, galeri foto dan video, serta AI chatbot ber-knowledge base khusus organisasi.

Situs web resmi Karang Taruna Desa Banjarsari — organisasi kepemudaan di Kandangan, Temanggung, Jawa Tengah — tayang di https://kartabanjarsari.fun/. Situs statis multi-halaman tanpa framework dan tanpa langkah build, di mana organisasinya sendiri menyunting isi lewat panel admin di browser.
Sorotan
- Tanpa framework, memang disengaja — HTML, CSS, dan JavaScript ES6 biasa tanpa bundler dan tanpa TypeScript. Satu-satunya dependensi npm adalah
dotenv; fungsi serverless-nya memakai tanda tangan native Vercelmodule.exports = async (req, res), bukan Express, sehingga header CORS dipasang eksplisit alih-alih lewat middleware. - Firebase Realtime Database sebagai CMS — komentar, galeri, artikel, testimoni, data pengurus, catatan pengunjung, dan aspirasi warga semuanya tinggal di Realtime Database dengan aturan di
database.rules.json, dan Firebase Auth menggerbangi login admin. Organisasi memperbarui situsnya sendiri tanpa perlu deploy. - Sistem cache-busting tiga lapis dengan satu token versi — URL aset berversi, header
Cache-Controlper folder (7 hari untuk CSS/JS berversi, 1 hari untuk foto,must-revalidateuntuk HTML,no-storeuntukversion.json), dan pemeriksaanASSET_VERSIONsaat runtime yang memuat ulang sekali bila keduanya berbeda. Halaman admin dilewati agar reload tidak pernah membuang artikel yang baru separuh ditulis. - Efek visual diukur dulu, lalu dipangkas — tsParticles dibuang dan diganti latar bintang murni CSS, dan animasi meteor di kanvas membawa profil
LITEuntuk perangkat mobile. Aturan yang akhirnya melekat: periksa dulu biayanya per frame sebelum menambah efek apa pun. - Aset pihak ketiga tidak pernah menghambat render — Font Awesome dan Google Fonts dimuat lewat
preload+onloaddengan cadangan<noscript>. - Kunci AI tetap di sisi server — chatbot memanggil DeepSeek hanya melalui
api/chat.js.
Fitur Utama
- Kegiatan dan artikel — program dan kabar organisasi, dapat disunting dari panel admin.
- Galeri foto — penelusuran bertenaga lightGallery atas koleksi yang dikelola lewat Firebase.
- Peta interaktif — peta Leaflet yang menandai lokasi desa dan titik-titik kegiatannya.
- Direktori pengurus dan testimoni — data terstruktur di
data/pengurus.jsonyang dipadukan dengan entri langsung dari Firebase. - Kanal aspirasi — warga mengirim usulan dan masukan langsung lewat situs.
- Chatbot AI — asisten bertenaga DeepSeek yang menjawab pertanyaan seputar organisasi, di-proxy di sisi server.
- Pencatatan pengunjung dan verifikasi manusia —
api/log-visit.jsdanapi/verify-human.jsberdiri di belakang endpoint publik.
Tech Stack
- HTML + CSS + JavaScript vanilla (ES6), tanpa framework maupun bundler
- Firebase Realtime Database + Firebase Auth (SDK compat v8 lewat CDN)
- Vercel Serverless Functions (
api/*.js, handler native, 1024 MB / 30 detik) - DeepSeek API (chatbot, hanya di sisi server)
- Leaflet (peta) + lightGallery (galeri)
- Font Awesome + Google Fonts (tidak menghambat render)
- Hosting Vercel dengan domain kustom
Status & Kematangan
Aktif dan melayani organisasi sungguhan; dengan 265 commit, ia adalah project kedua paling banyak dikerjakan di sini. Isi dan antarmukanya berbahasa Indonesia saja — <html lang="id">, tanpa lapisan i18n dan tanpa pengalih bahasa, sebuah penyesuaian yang disengaja terhadap pembacanya. Tidak ada suite test otomatis. Rintisan fitur toko (Midtrans, satu berkas JSON produk) dibuang seluruhnya begitu jelas tidak akan diselesaikan, bukan ditinggalkan setengah tersambung; aplikasi Android pendampingnya juga dihapus. Jumlah baris di bawah termasuk media statis yang ikut dilacak git.
Metrik Terukur
| Commit | 265 |
| Rentang Tanggal | 14 Apr 2026 – 18 Agu 2026 |
| Baris kode | 56.324 (termasuk berkas media statis yang dilacak git) |
| Test otomatis | tidak ada |