13 tulisan

Yang saya coba, yang rusak, dan yang saya pertahankan. Catatan dari pekerjaan, lengkap dengan trade-off-nya.

Tiga robot kartun yang identik, masing-masing menyusun menara balok berbeda dari lembar instruksi yang berbeda
Alur kerja AI · 2 menit baca

Apakah AGENTS.md mengubah apa yang dibangun coding agent?

Apakah file AGENTS.md mengubah apa yang dibangun coding agent? Saya jalankan prompt yang sama 14 kali dan cuma mengubah file itu. Strukturnya berubah jauh lebih banyak daripada kualitasnya.

Baca
Robot kartun bermain bowling di lajur dengan pembatas, di samping amplop bergembok dan gerbang tertutup
Keamanan · 2 menit baca

Guardrail untuk AI agent: hook, bukan harapan

Aturan di prompt itu cuma saran. Aturan yang tidak boleh dilanggar saya pindahkan ke hook dan agent khusus. Lalu saya audit, dan ternyata setup yang paling sering saya pakai masih bolong.

Baca
Ponsel kartun di mana kartu gambar keliru menimpa kartu header di atasnya
Performa · 2 menit baca

Compositor iOS Safari mengabaikan z-index kamu

Tampilannya aman di semua layar, kecuali layar yang ada di saku saya. Di iPhone, gambar sticky menembus konten yang seharusnya menutupinya, dan menaikkan z-index tidak membantu apa-apa. Ternyata ini sama sekali bukan masalah stacking.

Baca
Tab browser kartun dengan ikon piksel rusak di bawah kaca pembesar, dan pipa yang mengubah bit rapi jadi coretan
Rilis · 2 menit baca

Favicon yang dirusak OpenNext

Situs Next.js di Cloudflare Workers menyajikan favicon rusak di production. Ternyata proses build membaca file biner sebagai teks, lalu menyimpan kerusakannya di cache permanen.

Baca
Toples kue kartun yang tertutup disisihkan, sementara kartu halaman statis melesat dari awan ke ponsel dan laptop
Performa · 2 menit baca

Klien Supabase tanpa cookie

Di situs Next.js publik, satu panggilan cookies() membuat semua halaman dinamis. Solusinya: klien tanpa cookie, ditambah cache per jenis halaman.

Baca
Lemari kartun berbentuk otak tempat robot juru tulis kecil menyimpan kartu indeks ke laci-laci
Alur kerja AI · 2 menit baca

Second brain yang memperbarui dirinya sendiri

Catatan saya basi karena menulisnya terasa seperti tugas. Sekarang hook mendeteksi perubahan di tiap sesi coding, lalu agent menuliskannya ke vault. Model baru dipanggil kalau memang ada yang layak ditulis.

Baca
Tangan kartun kecil menekan tombol bulat besar bergambar bentuk, di samping balon kata berisi gelombang suara
Rilis · 2 menit baca

Ketikaria: game mengetik untuk anak yang belum bisa membaca

Game mengetik di browser untuk anak 4 sampai 10 tahun, termasuk yang belum bisa membaca. Setiap instruksi punya suara, setiap tombol berukuran besar, dan tidak ada cara untuk gagal.

Baca
Kunci kartun berkepala timer membuka satu laci lemari arsip, sementara laci lainnya tetap bergembok
Keamanan · 2 menit baca

Satu token, satu aksi: upload yang tidak bisa berkeliaran di bucket

CMS mengunggah file langsung dari browser ke Worker penyimpanan. Yang mencegah endpoint itu menjadi bucket terbuka adalah token yang hanya hidup lima menit dan menyebut satu hal yang boleh disentuhnya.

Baca
Orang kartun menarik tuas yang menukar satu halaman berbingkai dengan halaman lain, sementara crane konstruksi tertidur di latar belakang
Rilis · 2 menit baca

Publish tanpa rebuild

Satu link di footer diganti, build-nya lolos, tapi situsnya tetap menampilkan nilai lama. Jadi publish diubah menjadi transaksi database, bukan deployment.

Baca
Tangan kartun menarik scrollbar browser sementara header halaman mengecil, di samping tempat sampah berisi kertas yang dicoret
Performa · 2 menit baca

Header sticky yang mengecil tanpa JavaScript

Header-nya menempel, logonya mengecil, dan tagline-nya hilang saat kamu scroll, semuanya dengan CSS lewat scroll-driven animation. Browser yang belum mendukungnya langsung mendapat header versi akhir, bukan scroll listener.

Baca
Meja kartun dengan monitor besar berisi form sederhana bertombol besar, di samping kacamata baca dan cangkir
Rilis · 2 menit baca

CMS untuk editor yang bukan developer-nya

Admin panel biasanya pas untuk orang yang membangunnya. Yang ini pas untuk orang yang benar-benar memakainya: editor yang lebih senior, jadi hurufnya lebih besar, kontrasnya lebih tinggi, dan label tidak pernah disembunyikan.

Baca
Robot wasit kartun mengangkat kartu merah ke tiga balon bergambar persen, penggaris, dan perisai, di samping checklist di atas bangku
Performa · 2 menit baca

Audit SEO yang menolak menilai mitos

Banyak laporan SEO menilai hal-hal yang sudah dinyatakan Google tidak dipakai. Engine ini punya daftar pengecekan yang tidak akan pernah dibuat, mencantumkan sumber untuk setiap rule yang dijalankan, dan tidak menampilkan skor tanpa cakupannya.

Baca
Robot tukang pos kartun mencap surat di buku besar sambil memasukkan surat lain ke kotak pos, di bawah awan badai di atas kantor pos
Rilis · 2 menit baca

Catat dulu, email kemudian

Saat sebuah form mengirim email, bagian yang rapuh adalah email-nya. Batasi request, tulis ke database, lalu kirim email dan catat hasilnya. Provider yang down tidak boleh membuatmu kehilangan lead.

Baca