Blog
Catatan teknis seputar web development, DevOps, dan integrasi AI.
500 artikel
- 00.02frontend
Membangun Marquee 3 Kolom yang Accessible dengan CSS dan React
Marquee 3 kolom x 3 pilar pakai CSS keyframes + React: seamless loop, pause-on-hover, RTL-ready, aria-hidden/inert untuk accessibility -- tanpa library carousel.
TL;DR: Pakai CSS keyframes buat marquee. Ngga pakai library carousel karena berat. Hasilnya tiga pilar marquee vertikal.
#react#css#marquee - 22.40frontend
Affordance Hover-Only: Kenapa Tombol Tak Terlihat di Layar Sentuh
Panah hover-only bikin baris kategori tak kelihatan bisa diklik di layar sentuh. Pelajaran affordance: aksi harus tampak saat diam.
TL;DR: Saya buka portal di ponsel dan berhasil masuk. Tapi di desktop, ada masalah dengan hover. Saya ganti dengan pil "Lihat" yang selalu tampak.
#css#ux#accessibility - 21.51frontend
Membelah Grid: Halaman Pertama Server, Sisanya Klien
Grid entitas pilar yang menahan render halaman terlalu lama. Halaman pertama tetap dirender server, sisanya pindah ke island klien.
TL;DR: Halaman profil pilar lambat karena request data yang lambat. Menaikkan limit tidak mempercepat apa pun. Sekarang, delapan kartu pertama dikirim sebagai HTML dan sisanya sebagai JSON.
#nextjs#react#pagination - 20.47frontend
YouTube Mati di Produksi: Header Referrer yang Menekan Referer
Embed YouTube jalan di lokal, mati di produksi karena header Referrer-Policy same-origin. Satu atribut referrerPolicy per iframe menyelesaikannya.
TL;DR: Iframe YouTube tidak muncul di produksi. Penyebabnya adalah header Referrer-Policy yang memotong referer. Penyelesaiannya dengan menambahkan atribut referrerPolicy di iframe.
#youtube#iframe#http - 20.20frontend
Gate Nama Sebelum Gambar di Grid Budaya
Foto Maps gampang diambil, susah dipertanggungjawabkan. Gate nama entitas, cek naturalWidth, dan dump sebelum perubahan massal.
TL;DR: Grid budaya di portal budaya punya masalah. Kartunya kosong tanpa gambar. Saya ambil gambar dari Google Maps.
#google-maps#images#data-quality - 10.38frontend
Gerbang Validasi Sebelum Foto Pihak Ketiga Masuk Grid
Nama dicocokkan dulu, gambar dicek setelah selesai dimuat, yang ragu dikembalikan. Begitu bentuk gerbang validasi untuk foto pihak ketiga.
TL;DR: Saya menemukan masalah dengan foto di grid budaya. Foto dari Google Maps digunakan sebagai solusi, tapi harus diverifikasi dulu. Validasi nama dan gambar diperlukan untuk menghindari informasi yang salah.
#kualitas-data#api#frontend - 09.05backend
Filter Enum API Publik: Tiga Lapis Validasi untuk Satu Nilai
Nilai filter display_mode dijaga tiga lapis: handler 400, error sentinel ErrValidation, dan SQL berparameter. SQL WHERE yang lama ikut dirapikan.
TL;DR: Klausa SQL lama bermasalah. Diperbarui dengan routing ulang dan validasi. Selesai dengan tiga lapis keamanan.
#golang#api#sql - 08.50frontend
Satu Direktif yang Menandai Seluruh Modul, Bukan Cuma Komponen
Impor fungsi bantu dari file bertanda modul klien menghasilkan referensi, bukan fungsi. Error runtime dan pola modul netralnya.
TL;DR: Error "is not a function" muncul di halaman /budaya. Fungsi toVideoItems tidak bisa dipanggil dari server karena diekspor dari modul klien. Modul netral tanpa direktif bisa menyelesaikan masalah ini.
#nextjs#react#typescript - 18.55frontend
Satu Template Rute Entitas untuk Semua Bidang di Next.js
Tiga salinan rute entitas ditebang jadi satu set views terparameterisasi: registry pillar, rute tipis per bidang, dan canonical yang mengikuti base modul.
TL;DR: Laporan masuk tentang link bidang yang salah. Pemeriksaan menemukan pola sistemik yang salah. Refactor dilakukan untuk memperbaiki pola tersebut.
#nextjs#routing#app-router