← Home

Dark Mode

Ladies and Gentlemen…at long last…by popular demand…I give you…

…dark mode on berens.co!1 [Cue rampageous applause.]

Introducing Dark Mode on berens.co Dark Mode insisted on a lifestyle photoshoot before going live.

Clarification

Hold up. (Screeching brakes.)

I have to confess that this post isn’t so much about the wonders of dark mode on my website as about how I achieved it.

Background

Last October I chronicled my experience “vibe coding”—building things through AI-assisted trial and error without formal programming knowledge—and then again in November on how I used an LLM to spin up my first bot. That workflow looked like this: describe what I want → Claude generates code snippets → I copy the code → I paste it into the right file → I save the file → I commit to git → I push to GitHub → the site rebuilds → I test it → if it fails, I report the error and repeat.

It worked, but it was painfully manual and the onus is on yours truly to move code around and ensure everything ends up in the right place.

Then I discovered Claude Code and old-school vibe coding instantly became dial-up internet.

For those unfamiliar, Claude Code is a command-line tool that connects to your GitHub repository and can read, write, debug, and test code directly in your codebase—all through natural language commands. Basically your own AI coding assistant or “pair programmer”.

The Dark Mode Case Study

I needed a project to test drive it: how about building dark mode, everyone’s favorite UI enhancement. I pointed it at berens.co, authenticated, and it was ready to work directly in my codebase.

In the old vibe coding workflow, this would have meant dozens of copy-paste cycles across multiple files—CSS variables, media queries, template updates, testing each piece. Instead, I opened Claude Code and typed: “what’s the simplest way to implement a ‘dark mode’ on my current setup; one that inherits the ‘system preference’ of the browser?”

Claude Code didn’t just spit out some generic code. It read my entire site structure to understand the setup, analyzed my current CSS file, then converted all hardcoded colors to CSS custom properties. It created a complete @media (prefers-color-scheme: dark) section with a carefully chosen dark color palette, added the proper meta tag to my HTML header, tested the implementation, and committed everything to a new git branch.

My role? Overbearing supervisor and critic. I looked at the preview and said “here’s a better color palette” (showing a screenshot). Claude Code adjusted. I mentioned “the table headers need work”—it read pages/today.md, identified the issue, and fixed it. Back and forth we went, refining details:

Each time, Claude Code read the relevant files, understood the context, made the changes, tested them, and committed them. I never opened my code editor nor touched git. I just described what I wanted.

Claude Code doing its thing Claude Code taking the wheel.

This Is Agentic AI

This was my first real experience with an agentic AI—an AI that doesn’t just generate outputs for you to handle, but actually takes actions in your environment.

The difference is astounding. With my original vibe coding, “Advisory Claude” generates the code; whereas here Claude Code builds the feature. Advisory Claude gives me the recipe; Claude Code actually cooks dinner. Advisory Claude gives me directions; Claude Code is the autonomous vehicle that drives us there.

It’s not that one is smarter than the other—they’re using the same underlying model—it’s that Claude Code has agency in that it can read files, edit them, run tests, commit changes. It operates in my development environment like a junior developer who’s skilled at interpreting my terrible, inexact prompts.

Near-Zero Learning Curve

Because I’d already learned to describe what I wanted through vibe coding, I was effective with Claude Code pretty much right out of the gate. I already knew how to:

So it’s the same process; the only difference was that now I didn’t have to be the one moving the pieces around.

What This Means

The barrier to building things is shifting from “can I figure out how to code this?” to “can I describe what I want?” If you’ve been vibe coding you’re already positioned for this shift.

For most, the future isn’t about becoming a traditional developer. It’s about being able to articulate what you want to build, recognize when it’s right, and iterate until it works.

Feels about right to me: the computer handles syntax, file structure, and other minutiae; the humans worry about design, taste, and imagination.

But I, for one, welcome our agentic overlords.

— ᴘ. ᴍ. ʙ.

  1. Still seeing light mode? That’s because your system or browser is set that way—the colophon shows what we detected. Flip the preference in your OS or browser and the page will update right away. 

First published: 2026-01-23 | tweet | cast | subscribe

tech product

← back to all posts