Skip to content

Blog

Writing on topics I'm passionate about.

Four Ways to Deploy a Bun API: What I Picked for Honu and Why

I benchmarked four real ways to ship a Bun API in a container — slim, distroless, alpine, and a compiled single-binary on chainguard — under cgroup limits. I changed my mind on the winner halfway through writing this.

bundockerdevopsperformance

Ditching the Theme Toggle: System Theme Detection in Astro

How I built system theme detection for my portfolio — an inline script for flash prevention, React hooks for reactive switching, and Shiki dual-theme syntax highlighting.

astroreactcssdark-mode

Writing a Geocoding API in Go (Coming from TypeScript)

What it's like switching from TypeScript to Go for an API project — the good, the painful, and the surprisingly ergonomic PostGIS queries.

gotypescriptpostgresqlpostgis

Why I Switched from Next.js to Astro for My Portfolio

I've rebuilt my portfolio three times: Gatsby, Next.js, and now Astro. Here's the journey and why Astro is the one that stuck.

astronextjsgatsbyportfolio

MCP in Practice: Connecting AI to Real Data Sources

What Model Context Protocol actually looks like in production — lessons from integrating MCP into Gameplan Network and Milli, beyond the hype.

aimcptypescriptai-sdk

Running Local LLMs on Apple Silicon with MLX

A practical guide to running LLMs locally on Mac using MLX — what works, what's fast, and why local inference matters for developers.

aimlxapple-siliconllm

Offline-First Audio Transcription with Whisper.cpp in the Browser

How I built Transcriber I Hardly Knew Her — a privacy-first transcription app that records and transcribes audio entirely in the browser using Whisper.cpp compiled to WebAssembly.

whisperwebassemblyreacttypescript

Shipping a React Native App While Sleep Deprived

Building Diaper Diaries — an Expo app that helps parents track and teach their newborns' bathroom patterns. Built out of necessity at 3am.

react-nativeexpotypescriptmobile

Going Native with Electrobun: Building a Desktop PDF Signer

Why I picked Electrobun over Electron for a desktop PDF signing app with PKCS#11 smart card integration, and what the Bun-native desktop experience is actually like.

electrobunbunreacttypescript

Building a 1000⭐ Open Source Prisma Tool

How prisma-erd-generator went from a weekend hack to 1000+ stars, 64 forks, and 23 contributors — and what I learned maintaining open source along the way.

open-sourceprismatypescriptmermaidjs

Creating a GraphQL API while utilizing your REST API

Using an existing REST API we'll learn how to create a GraphQL API around our existing services instead of a complete rewrite of our API.

graphqlrestapijavascript

Understanding GraphQL through REST

Why GraphQL is a useful API specification

graphqlrestapispecifications

Upgrading from React 16 to React 17

The time has come to upgrade and although the team says there are no new changes, development speed will increase for many

reactcreate react appfast refresh

Catching up a forked repo on GitHub

When contributing to open source repositories you often need to catch up your fork of that repository to submit a contribution. Here's how to do it

githubopen sourcegit

Using Tailwind CSS with Gatsby

Tailwind takes writing CSS down to a fraction by providing many easy to use classes so you can focus on functionality over flash. In this walk through I'm going to be covering how to add Tailwind CSS to a Gatsby project

tailwindcssgatsbyreact

Setting up scripts with Typescript

Everyone needs to script a process to become more efficient. If we frequently update a script it's nice to have documentation and completion. Typescript is a powerful tool to make lookup and updating quick and easy. Lets implement it!

javascripttypescriptscriptingnode