Blog

Blog

Notes on code, products, and things I'm learning.

Why I Moved gookkis.com from Laravel to Astro

The reasoning behind migrating from a Laravel + database CMS to a lighter-to-maintain static Astro site.

#astro#laravel#static-site

Why I Like Working on Multiple Freelance Projects at Once

Why I keep more than one freelance project running at a time, and how I manage it without getting overwhelmed.

#career#freelance

Being a Remote Software Engineer: What Years of Freelancing Taught Me

A few lessons on discipline, communication, and time management from remote freelance work.

#career#remote#freelance

Deploying Multiple Projects on One VPS: The Nginx Structure I Use

How I host multiple domains/projects on a single server using Nginx.

#devops#nginx#vps

A Simple CI/CD Setup with GitHub Actions for a Static Site

The deploy workflow structure I use for this site — build, sync, done.

#devops#ci-cd#github-actions

Choosing a VPS for a Side Project: What I Weigh

A few factors I check before deciding on a VPS for a side project.

#devops#vps

Save Tokens, Save Time: Practical Tips for Coding Effectively with AI

A few practical lessons on communicating effectively with an AI coding assistant.

#ai#productivity#tips

The AI Agent Coding Workflow I Use Now

How I integrate an AI coding agent into my everyday development process.

#ai#claude-code#productivity

Agentic AI Experiment: Building dodolanan.com with Claude Code

The story of my experiment researching agentic AI workflows by building and shipping a real project.

#ai#agentic-ai#claude-code

Static Site vs Traditional CMS: When Should You Switch?

The considerations I used before deciding to migrate from a database-backed CMS to a static site.

#webdev#cms#astro

PostgreSQL vs MySQL: When I Reach for Each

A practical comparison from experience using both across different projects.

#sql#postgresql#mysql

React + Spring Boot: My Go-To Stack for Internal Applications

Why the combination of React on the frontend and Spring Boot on the backend is my reliable pick for internal web apps.

#react#spring-boot#webdev

Astro Content Collections: Managing Content Without a Database

How Astro's content collections let a blog and portfolio run without a CMS or database at all.

#astro#webdev#cms

Moving from Web to Android Development: What I Learned

A few mindset shifts I had to make when I first seriously got into Android development.

#android#mobile#career

Why Privacy-First Matters for Personal Apps (Istiqomah Case Study)

The reasoning behind Istiqomah's 'no account, no server, no ads' design decisions.

#privacy#mobile#product

Building Istiqomah: A Habit Tracker App with No Server and No Account

The story behind Istiqomah — a daily worship tracker that runs 100% on-device.

#swift#kotlin#mobile#privacy

Swift vs Kotlin: A Comparison from a Developer Who Uses Both

After years working in Android and iOS, here's my honest comparison of Swift and Kotlin.

#swift#kotlin#mobile

Python vs Go for Internal Backend Tools: My Experience

When I reach for Python, when I reach for Go, for internal tools and automation.

#python#golang#backend

Learning from Scratch: Building a Remote Desktop Feature with Security in Mind

What I learned about encryption, authentication, and session handling while building a remote desktop feature.

#security#desktop#csharp

Why Go Is a Good Fit for VPN and Remote Desktop Tools

Go's concurrency model and single-binary deployment make it a natural choice for networking tools.

#golang#vpn#security

Building a Cross-Platform Desktop App with Avalonia UI and C#

Why I moved from WPF to Avalonia for a desktop app that had to run on Windows, macOS, and Linux.

#avalonia#csharp#desktop