Blog
Catatan seputar coding, produk, dan hal-hal yang sedang saya pelajari.

Ketika Ide Bertemu Claude Max
Beberapa hari memakai Claude Max cukup untuk mengubah cara saya memandang eksekusi, kelangkaan, dan apa yang tersisa dari daya cipta manusia.

Checklist Saya Sebelum Nyambungin MCP Server Baru ke Codebase Client
MCP server itu ekosistem plugin baru buat AI coding agent, dan advisory keamanan soal ini tahun ini udah lumayan serius. Ini rutinitas beneran yang saya jalanin sebelum nyambungin satu server baru.

Saya Coba Pasang Login Passkey di Project Client: Apa yang Beneran Kejadian
Passkey udah full didukung browser dan OS sekarang, tapi katanya adopsinya stagnan. Ini yang kejadian pas saya beneran pasang di app client beneran, bukan sekadar demo.

Context Engineering: Beneran Beda Sama Prompt Engineering, Apa Cuma Rebranding?
Hot take: sebagian dari yang dijual sebagai 'context engineering' tahun ini itu beneran skill yang beda. Tapi cukup banyak juga yang cuma prompt engineering ganti baju.

Minggu Waktu Worm Supply-Chain Beneran Nongol di Dependency Tree Salah Satu Project Saya
Saya udah pernah nulis checklist buat insiden kayak gini. Bulan ini salah satunya beneran nyentuh project client, dan checklist itu dapet test beneran pertama kalinya.

Saya Migrasi Project Client ke Compiler Native TypeScript 7: Apa yang Beneran Berubah
TypeScript 7.0 rilis bulan ini dengan compiler native berbasis Go, katanya 10x lebih cepat. Saya coba beneran di project client, bukan cuma percaya benchmark orang.

Checklist Saya Sebelum Ngasih Tool AI Baru Deket-Deket Proyek Klien
Agent atau IDE baru diumumin hampir tiap minggu. Ini checklist konkret yang saya jalanin sebelum adopsi satu, daripada ngejar tiap ada launching.

Pasar Kerja Lagi Paling Ketat yang Pernah Saya Liat — Ini Kelihatannya dari Sisi Freelancer
Semua orang baca headline soal hiring entry-level yang makin kering. Ini yang beneran kelihatan dari tempat saya duduk sebagai freelancer solo.

Semua Orang Heboh Soal Signals — Saya Belum Mau Rewrite Stack React Saya
Fine-grained reactivity itu hype frontend tahun ini. Ini kenapa stack React + Spring Boot saya belum pindah, dan apa yang beneran bisa ngubah pikiran saya.

Spec-Driven Development: Emang Beneran Beda dari Vibe Coding?
Saya coba nulis spec formal dulu sebelum ngasih agent pegang codebase klien — ini yang beneran berubah, dan yang cuma vibe coding pakai jas.

Checklist Saya Tiap Kali Ada Serangan Supply-Chain npm Baru
Bukan saran teoretis — ini langkah konkret yang saya jalanin di semua project pas ada worm atau package yang kecompromise lagi muncul di linimasa dev.

Nyoba AI Browser Agent buat Kerjaan Freelance yang Ngebosenin
Saya coba pakai browser agent buat ngerjain tugas administratif freelance yang selama ini saya males banget ngerjain. Hasilnya campur aduk — dan itu yang bikin menarik.

Semua Orang Ngomongin Edge Computing, Saya Masih di VPS $6/Bulan — Ini Alasannya
Hot take: buat scale project-project saya, edge functions itu solusi buat masalah yang saya nggak punya, ditambah beberapa masalah baru yang harus saya urus.

Retrospektif: Kebiasaan Kerja Saya yang Beneran Berubah Sepanjang 2026
Bukan prediksi soal masa depan AI dan software — cuma jujur ngeliat ke belakang, kebiasaan kerja mana yang beneran nempel dan mana yang cuma trend sesaat buat saya pribadi.

Sebulan Pakai Bot Review Kode AI di PR Saya: Ini yang Beneran Kepake
Saya pasang AI reviewer otomatis di beberapa repo selama sebulan. Sebagian catetannya beneran nolongin, sebagian cuma noise yang saya matiin.

Checklist Saya Sebelum Terima Klien Freelance Baru
Pertanyaan-pertanyaan yang beneran saya tanyain sebelum bilang iya ke proyek baru, hasil belajar dari beberapa kontrak yang harusnya saya tolak.

Language Switcher Situs Ini Cuma Nge-prefix `/en`, Bukan Nerjemahin Slug
Kenapa i18n-url.ts bisa sesederhana itu, kenapa itu artinya slug ID dan EN harus selalu sama persis — dan gimana saya sendiri pernah ngelanggar aturan itu.

Kenapa Saya Terus Mindahin Stack ke Self-Hosting
Apa aja yang saya pindahin dari SaaS ke VPS sendiri tahun ini, dan alasan sebenarnya — biaya cuma salah satu, bukan yang utama.

Nggak Nulis CSS Sendiri buat Markdown, Saya Pasrahin ke @tailwindcss/typography
Kenapa isi blog post dan case study portfolio dirender pakai class prose, bukan style manual per elemen.

Yang Bakal Saya Bilang ke Junior Developer yang Baru Mulai Sekarang
Nengok balik jalan saya sendiri dari Android dev ke fullstack freelancer, di job market yang keliatannya jauh lebih susah ditembus dibanding zaman saya.

Sebulan Ngoding Harian Pakai Claude Sonnet 5
Apa yang beneran berubah di kerjaan freelance harian saya setelah pindah workflow agent ke Claude Sonnet 5.

Kenapa Saya Nggak Hapus Riwayat Laravel Lama, Cuma Pindahin ke Branch
Alasan gookkis-web-laravel-old masih ada di repo ini walaupun main udah nggak butuh satupun barisnya.

Situs Statis Ini Nggak Punya Test Suite — Ini Kenapa Saya Belum Khawatir
Astro check nge-cover apa yang paling sering rusak, dan sisanya risikonya kecil buat proyek seukuran ini.

Pindah ke Tailwind v4: Nggak Ada Lagi tailwind.config.js
Kenapa semua color token sekarang saya define langsung di CSS lewat @theme, bukan di file JS config kayak Tailwind v3.

Panik 'Utang Teknis' Vibe Coding: Yang Beneran Saya Lihat di Lapangan
Semua orang lagi ribut soal krisis utang teknis gara-gara vibe coding — ini yang beneran saya temuin sebagai freelancer yang sering dipanggil buat beresinnya.

Yang Saya Siapkan Sebelum Daftar Google AdSense
Checklist yang saya pakai buat mastiin blog ini siap direview: privacy policy, konten, sampai konfigurasi teknis.

Animasi Background Halus Tanpa Library JavaScript
Cara saya bikin efek signal-field di background situs ini cuma pakai CSS, tanpa canvas atau library animasi.

Dari Android Freelancer ke Full-Stack: Evolusi Stack Saya
Perjalanan tech stack saya dari fokus native Android ke web, backend, sampai desktop app lintas platform.

Nulis Blog Dibantu AI Tapi Tetap Berdasarkan Pengalaman Sendiri
Proses saya nulis post-post di blog ini: brainstorming sama AI, tapi isinya tetap pengalaman dan keputusan asli — termasuk satu kali saya hampir ke-lolosin klaim yang nggak pernah beneran saya cek.

Pola Thin Route + Shared Component buat Halaman Dwibahasa di Astro
Struktur yang saya pakai biar nggak dobel maintenance markup antara halaman Indonesia dan Inggris.

Checklist TLS dan HSTS Minimal buat VPS Sendiri
Konfigurasi SSL yang saya pakai di Nginx: bukan yang paling canggih, tapi cukup buat situs statis personal — dan skor yang beneran keluar pas saya scan.

Kenapa Case Study Portfolio Saya Pakai Format Problem-Solusi
Alasan field problem dan solution di schema portfolio, bukan cuma judul proyek dan screenshot.

RSS Feed Dwibahasa: Kenapa Masih Saya Pertahankan
Di era yang katanya RSS udah mati, ini alasan saya tetap generate rss.xml per bahasa buat blog ini.

SEO Checklist buat Static Site: Sitemap, Hreflang, dan Schema
Tiga hal teknis yang saya beresin biar situs statis ini lebih gampang diindeks dan dipahami mesin pencari.

Toggle Tema 3 Arah: System, Light, Dark — Bukan Cuma prefers-color-scheme
Kenapa satu tombol tema yang siklus lewat tiga state ternyata lebih baik daripada cuma ngandelin preferensi OS.

Pakai AI Buat Nulis Test: yang Membantu dan yang Tetap Saya Cek Manual
Gimana saya libatkan AI coding agent dalam proses nulis dan review unit test.

Backup dan Disaster Recovery buat Solo Developer: Yang Saya Terapkan
Setup backup sederhana yang saya pakai supaya nggak panik kalau VPS tiba-tiba mati.

Flutter vs Native: Kenapa Saya Tetap Pilih Native buat Sebagian Besar Proyek Mobile
Pertimbangan saya waktu milih antara Flutter dan native development (Swift/Kotlin) — dan satu kejadian yang bikin saya mikir ulang soal ini.

TypeScript vs JavaScript: Kenapa Saya Akhirnya Total Pindah
Alasan praktis kenapa saya berhenti nulis JavaScript polos di proyek baru.

Kenapa Saya Pindahin gookkis.com dari Laravel ke Astro
Alasan di balik migrasi dari CMS Laravel + database ke static site Astro yang lebih ringan dirawat.

Kenapa Saya Suka Kerja di Beberapa Proyek Freelance Sekaligus
Alasan saya tetap pegang lebih dari satu proyek freelance dalam satu waktu, gimana cara ngatur supaya nggak keteteran, dan titik di mana itu pernah kebablasan.

Jadi Software Engineer Remote: Yang Saya Pelajari dari Bertahun-Tahun Freelance
Beberapa pelajaran soal disiplin, komunikasi, dan manajemen waktu dari kerja remote freelance.

Deploy Banyak Proyek di Satu VPS: Struktur Nginx yang Saya Pakai
Gimana cara saya host banyak domain/proyek dalam satu server pakai Nginx.

Setup CI/CD Sederhana Pakai GitHub Actions buat Static Site
Struktur workflow deploy yang saya pakai buat situs ini — build, sync, selesai.

Milih VPS buat Side Project: Hal-Hal yang Saya Pertimbangkan
Beberapa faktor yang saya cek sebelum mutusin VPS buat proyek sampingan — ditulis setelah dua kali pindah provider karena alasan yang beda-beda.

Hemat Token, Hemat Waktu: Tips Ngoding Efektif Bareng AI
Bukan daftar tips generik — ini pelajaran yang saya kumpulin dari kesalahan komunikasi sendiri sama AI coding assistant, satu per satu.

Workflow Ngoding Bareng AI Agent yang Saya Pakai Sekarang
Gimana cara saya integrasikan AI coding agent ke proses development sehari-hari.

Eksperimen Agentic AI: Bikin dodolanan.com Pakai Claude Code
Cerita eksperimen saya riset workflow agentic AI dengan langsung bikin dan rilis proyek nyata, bukan cuma demo yang nggak pernah keluar dari laptop.

Static Site vs CMS Tradisional: Kapan Harus Pindah?
Pertimbangan yang saya pakai sebelum mutusin migrasi dari CMS berbasis database ke static site.

PostgreSQL vs MySQL: Kapan Saya Pilih yang Mana
Perbandingan praktis dari pengalaman pakai keduanya di berbagai proyek.

React + Spring Boot: Stack Favorit Saya buat Aplikasi Internal
Kenapa kombinasi React di frontend dan Spring Boot di backend jadi pilihan andalan saya buat aplikasi web internal.

Astro Content Collections: Cara Kelola Konten Tanpa Database
Gimana content collections di Astro bikin blog dan portfolio bisa jalan tanpa CMS atau database sama sekali.

Pindah dari Web ke Android Development: Yang Saya Pelajari
Beberapa mindset shift yang harus saya lakukan waktu pertama kali serius terjun ke Android development.

Kenapa Privacy-First Itu Penting Buat Aplikasi Personal (Studi Kasus Istiqomah)
Alasan di balik keputusan desain 'no account, no server, no ads' di Istiqomah.

Membangun Istiqomah: App Habit Tracker Tanpa Server dan Tanpa Akun
Cerita di balik pembuatan Istiqomah — aplikasi pelacak ibadah harian yang 100% jalan di device, termasuk satu edge case perhitungan yang bikin saya riset ulang.

Swift vs Kotlin: Perbandingan dari Developer yang Pakai Keduanya
Setelah bertahun-tahun kerja di Android dan iOS, ini perbandingan jujur saya soal Swift dan Kotlin.

Python vs Go buat Backend Tools Internal: Pengalaman Saya
Kapan saya pilih Python, kapan saya pilih Go, buat tools internal dan automation.

Belajar dari Nol: Membangun Fitur Remote Desktop dari Sisi Security
Hal-hal yang saya pelajari soal enkripsi, autentikasi, dan session handling waktu bikin fitur remote desktop.

Kenapa Golang Cocok Buat Bikin Tools VPN dan Remote Desktop
Concurrency model dan single-binary deployment Go bikin dia jadi pilihan natural buat networking tools — termasuk satu perbandingan langsung yang saya coba sendiri.

Bikin Aplikasi Desktop Cross-Platform dengan Avalonia UI dan C#
Kenapa saya pindah dari WPF ke Avalonia buat aplikasi desktop yang harus jalan di Windows, macOS, dan Linux.