RSS Amplifier

Blog

One For The Code

Recent content on One For The Code

oneforthecode.comRSS feed ↗67 posts

Latest posts

Documentation Is a Feature, Not a Chore

Code that nobody can work out how to use is not really finished.

Docker's --init Flag Fixes Zombie Processes

Why your containers weren’t shutting down cleanly.

Docker Volume Mounts vs Bind Mounts: When to Use Each

Understand the difference between volume mounts and bind mounts, and how to share data between containers.

Docker Compose depends_on Doesn't Wait for Ready

Healthchecks are required for true dependency ordering.

Docker BuildKit Secrets Don't Leak Into Images

Pass secrets at build time without baking them into layers.

Debugging Is the Most Underrated Skill

The skill nobody interviews for and everybody quietly relies on.

Dataview's dv.pages() vs dv.list()

Which Dataview query to reach for, and when the other one is simpler.

CSS :has() Is Finally Here

Parent selectors that actually work, after decades of waiting.

Creation Is Art, Debugging Is Science

Why models are so much better at finding your bug than designing your system.

Creating Your First Laravel Package

Pulling the code you keep copying between projects into something reusable.

Creating Type-Safe Environment Variables in TypeScript

Catching a missing environment variable at boot rather than in production.

Creating a Daily Review Template in Obsidian

Opening and closing the day deliberately instead of just letting it happen.

Creating a Custom ESLint Rule

Getting the linter to enforce the thing you keep repeating in reviews.

Copilot Is Training Wheels You Should Eventually Remove

Useful while you are learning, and worth putting down once you have.

Comments Should Explain Why, Not What

Nobody has ever needed a comment narrating the line directly underneath it.

Code Review Is About the Team, Not the Code

Reviews are for sharing what you know, not for scoring points on style.

Code Ownership Is an Anti-Pattern

Why ‘my code’ is a phrase that should worry you and everyone around you.

Channel Your Drama Into Entertainment

Drama belongs on a stage, deliberately, and not in the middle of your day.

Caddy's Automatic HTTPS Is Magic

Certificates that renew themselves, off the back of about three lines of config.

Burnout Is Not a Badge of Honour

Working yourself into the ground is not dedication, it is bad planning.

Building Type-Safe APIs with tRPC

Type safety from client to server, with none of the code generation.

Building Streaming APIs with Node.js

Moving a lot of data without your process quietly running out of memory.

Building Real-time Features with Laravel Reverb

First-party WebSockets in Laravel, without reaching for a third party.

Building Multi-Tenant SaaS with Laravel

One codebase serving many customers without their data getting mixed up.

Building Custom GPTs for Your Workflow

Building a narrow assistant that knows your workflow rather than everything.

Building Custom Artisan Commands in Laravel

Moving the tedious jobs into the CLI, where they were always meant to live.

Building an Automated Weekly Review with Things 3 and Obsidian

Use Dataview queries to automatically aggregate daily notes and completed tasks into a weekly review.

Building an AI Code Review Bot

Letting a bot take the boring first pass so people review what matters.

Building a Zettelkasten in Obsidian

Small atomic notes that quietly compound into something genuinely useful.

Building a Type-Safe API Client with Zod

Validating at runtime so your compile-time types are not a comfortable lie.

Building a Robust Webhook System in Laravel

Sending events to other people’s systems and coping when they are down.

Building a RAG Pipeline with LangChain

Getting a model to answer from your documents instead of inventing things.

Building a Plugin System in TypeScript

Letting other people extend your code without it descending into chaos.

Building a Pi-hole + Unbound DNS Stack

Blocking ads at the DNS level and doing your own recursion while you are there.

Building a Personal CRM with Obsidian and Dataview

Keeping track of the people you care about without paying monthly for it.

Building a Notes MCP Server for Claude Desktop

Give Claude direct access to your local notes folder using the Model Context Protocol.

Building a Media Server Stack: Jellyfin + *arr Apps

Jellyfin and the *arr apps wired together so the library looks after itself.

Building a Local-First App with CRDTs

Using Yjs so your app carries on working when the network does not.

Building a Job Queue with BullMQ

Getting slow work off the request cycle without losing any of it.

Building a Home Dashboard with Homepage

One page that tells you whether everything in the house is still up.

Building a CLI Tool with Commander.js and Ink

Terminal UIs in React with proper command parsing.

Build Momentum Before You Need It

Momentum is easier to maintain than it ever is to create from scratch.

Always Be Refactoring

Why the big rewrite never actually happens, and what to do instead.

AI Won't Replace Developers, But It Will Replace Developers Who Don't Use AI

The tooling is not coming for your job, but the people using it might be.

Linux chattr Makes Files Immutable

The one Linux command that tells even root to do one.

Higher-Order Functions

Functions that take functions, and why you already use them every day.

Reducing Katas

Practising reduce until it stops feeling like witchcraft.

Roll Your Own Component Generators

A little trick to speed you along your development journey.

Stone Soup Programming

Put a rock in some water and ask if anyone fancies adding a carrot.

Shape Shifting Functions

Functions that change shape depending on what you hand them.