Skip to content

Writing

Things I wrote

And what the fix actually was. Mostly Laravel, TypeScript and the tooling around them.

Coolify dashboard running on a Hetzner cloud server, beside a Hetzner price adjustment table showing the June 2026 increases

Featured

Moving from Vercel to Hetzner with Coolify: the guides are quoting dead prices

Almost every "move from Vercel to Hetzner with Coolify" guide was written in 2025. Hetzner raised cloud prices twice in 2026, and the exact server those guides name now costs 144% more. Here are the real numbers and the plan to pick instead.

6 Aug 2026 · Docker · 10 min read

Filter by topic 61

Someone built a mini Claude Code in an afternoon. Here is what to steal from it

A developer built a read-only AI code reviewer from scratch in minutes. The real lesson is the harness: model, context, guardrails, tools. Here is why you should build your own.

18 Jun 2026 · AI · 5 min read

Composer update is now a security risk. Here is the safer workflow

A Laravel package got hijacked through git tags and stole credentials at autoload time. Here is the Composer workflow I run on every project to shrink the blast radius.

17 Jun 2026 · Laravel · 7 min read

GitHub Models is being retired: what it means and where to go

GitHub is retiring GitHub Models and new customers are already locked out. Who it hits, what to migrate to, and how to dodge vendor lock-in.

17 Jun 2026 · AI · 6 min read

My Neovim Setup: A Kickstart Config I Actually Understand

A walkthrough of my real Neovim config: 31 plugins on a Kickstart base, set up for C#/.NET, web dev, and writing. What I run and why.

16 Jun 2026 · Tools · 7 min read

VPS prices are rising everywhere in 2026: Hetzner, OVHcloud, Hostinger

Hetzner, OVHcloud and Hostinger all raised VPS prices in 2026, driven by the same RAM and storage crunch. Here's what changed at each, why, and how to not overpay.

16 Jun 2026 · Tools · 6 min read

I redesigned my portfolio from tech dashboard to editorial

Why I dropped the cyan-and-cards look every dev portfolio has, and rebuilt mine as a warm editorial site with one accent, magazine rows, and a flash-free theme toggle.

13 Jun 2026 · Frontend · 6 min read

The C iceberg: surprising facts every C beginner should know

A beginner-friendly tour of C's weirdest corners: pointers, array decay, the stack and heap, struct padding, octal literals, and why a byte isn't always 8 bits.

9 Jun 2026 · C++ · 5 min read

openapi-typescript: stop hand-writing your API types

Hand-written API types drift from the real API and ship bugs. openapi-typescript generates them from your OpenAPI schema so the compiler catches mismatches.

9 Jun 2026 · Javascript · 11 min read

Smoke testing: the 30-second check that saves your deploys

A smoke test is a tiny set of checks that confirm your app still boots and the core flows work. Here's how to write one, where it sits in CI, and the tools I use.

8 Jun 2026 · Playwright · 7 min read

Is markdown dead? Why I keep asking AI for HTML notes instead

Markdown isn't dead, but for AI notes I read once I now ask for a self-contained HTML file that opens in the browser already styled. Here's when I switch, and when I stay on markdown.

8 Jun 2026 · HTML · 6 min read

CSS can now animate between pages

Cross-document view transitions let plain links fade, slide, and morph between separate HTML pages, no JavaScript framework needed. Here is how to set them up and what to watch for before you ship.

6 Jun 2026 · CSS · 7 min read

Where do we actually use data structures and algorithms?

Forget the interview trivia. Here's where data structures and algorithms show up in real projects, with code, real apps, and bugs they fixed for me.

4 Jun 2026 · DSA/CS · 6 min read

One email when the next one lands

No sequence, no course, no webinar. Leave from any email.