Claude Code
Is All You
Need

How I use Claude Code for work, fun, and as a text editor

Claude Code

I installed Claude Code in June. I'd tried Cursor and Cline and Zed and a few others, but all of them felt clunky to me because I'm used to doing nearly everything in vanilla vim and my terminal. Claude Code was the first tool I tried that felt like it fit into my workflows perfectly rather than needing me to adapt to new tools.

It also worked really, really well.

I quickly cancelled my GPT subscription and put the $20/month towards Anthropic instead. Losing GPT advanced voice mode and dealing with the extra UI lag and lack of polish in Claude Desktop and Mobile apps was a bit of an adjustment to make but the terminal tool was fun enough that I didn't care.

Within a few days I'd upgraded to the $100/month MAX plan to try out Opus and to stop hitting limits.

Here's what I've built with it so far. Mainly fun stuff while I figure out how to use it, but I'm starting to use it more and more for 'real' work stuff too.

The main things you need to get full benefit from it are:

1) Faith (always run it with 'dangerously skip permissions', even on important resources like your production server and your main dev machine).

2) A lot of input. The more input you give it, the better its output is. It's a magic tool, but you'd still better be damn good at communicating, either by typing thousands of words into text files or the interactive window, or using TTS (I haven't tried this because I hate the sound of my own voice, but others have reported great results).

If you're from infosec, you might want to stop reading now—the rest of this article isn't going to make you any happier. Keep your medication close at hand if you decide to continue.

Building an
Autonomous Startup

The thing about Claude Code is that it isn't really a magic model. It's still using Sonnet or Opus under the hood, which are great, but they're not going to do the things that Claude Code can do. Claude Code's magic is like a magician's trick—it looks incredible, but it's surprisingly simple once you see how it's done.

I always told people programming is just if statements and loops, and if you want to program, you don't need to learn anything else. It's an exaggeration, but these are the fundamental concepts that run nearly everything digital. Claude Code is a reinforcement of this idea. The command line tool calls Anthropic's models in a loop with a lot of clever prompting to keep the model running in a constructive way based on limited user input.

Micromonitor startup

Spoilers: this is what it built. You can visit the startup it built at claude.dwyer.co.za or see the GitHub project at github.com/sixhobbits/claude-experiments.

The first thing I thought of doing was extending that loop—maybe infinitely? How far could Claude Code go if it was given a few resources, like a root VPS, and some minimal instructions to never terminate and to just go forever?

I told it to build a startup. I had some issues getting Claude to make sure that Claude never terminates, so instead I had Claude write a simple while loop bash script that keeps calling claude -p (more on this later, but -p is a really powerful way to use Claude).

Claude monitoring

It wrote its own prompt (link). I created a root VPS and told it to go.

Aside: I hit a small snag where Anthropic decides that running Claude as root with --dangerously-skip-permissions / yolo-mode is not allowed. You can get past this dumb nanny-state stuff by running:

export IS_SANDBOX=1 && claude --dangerously-skip-permissions

It evaluated a bunch of startup ideas, rated them, and got to work.

The idea it came up with (server monitoring) doesn't make any sense at all and it never realised it. It's a web app, so the only server it can monitor is the one it's running on, but from the copy it seems to think it's a SaaS tool you can sign up to and monitor your own servers. You can't.

BUT this is still seriously impressive stuff. It configured a fully working full stack web application, including Nginx, certificates, etc etc. It's doing real (if misguided) development work, with nearly no input from me at all.

Aside: Most people I know would criticize this in the same way that AI has always been criticized. "It's not real bro, it's just pattern matching. It's seen stuff like that before. It's not even working properly. An intern could do that with a bit of time."

The thing about these criticisms is I've been hearing them since I got into character-based neural networks in 2015. The criticisms never change, it's just the line that moves.

AI (noun) – something that can do whatever humans can do, but AI can't do

Or

AI (noun) – something that doesn't possess abstract human qualities like 'consciousness', 'creativity', or 'a soul' – anything about humans that we can't make any falsifiable claims about.

Whatever, I don't want to get into the debate too much here, but a) I am fucking impressed. b) I would never have predicted an artificial system that could do this 10 years ago or even 6 months ago, and c) anyone else who claims otherwise is likely lying or has ulterior motives. Have a nice day.

For about a day it kept building features even though the log-in page errored out and nothing worked.

I gave it a few nudges via my HUMAN_INPUT.md file and it got a basic demo up and running, a nice looking landing page, and a few other nice touches like self-referencing that the project was built by autonomous AI.

Hitting a Snag

Most of the time I could interact with it just by:

I never needed to SSH into the VPS until it stopped working. After 6 hours of no commits I had to login to check what was happening:

[Fri 25 Jul 2025 02:29:41 AM UTC] Starting Claude process...
API Error: Claude Code is unable to respond to this request,
which appears to violate our Usage Policy
(https://www.anthropic.com/legal/aup). Please double press esc
to edit your last message or start a new session for Claude Code
to assist with a different task.
[Fri 25 Jul 2025 02:29:47 AM UTC] Claude process exited with
status: 1
Waiting 3 hours before restart..

Uh oh. We're getting blocked again and I've heard Anthropic has a reputation for shutting down even paid accounts with very few or no warnings.

I read the User policy and saw that my recent inputs telling it to go ahead and market the startup to get users had probably tripped some big brother switch. The user policy (which obviously I read before when I agreed to it) states that automatically published content needs a human-in-the-loop and Claude was trying to promote the startup on Hackernews without my sign off.

Anthropic usage policy

I did what it asked (posted its stuff as-is to hackernews and reddit, luckily I didn't get banned from either but I did get ignored by both), and then watched it talk shit about user acquisition for a bit. It got lost trying to monetize through a free trial and social proof stuff, which was directionally correct even if completely non-sensical in context and then decided to turn it off so I could save my (still limited, even under the max plan) usage for some more useful stuff.

The project has 100 commits, so if you want to see exactly what it did, you can take a look at each of those.

(More in a later section, but it's also my text editor. Look at me writing this article in Claude Code.)

Writing in Claude Code

Migrating a Real
Production Project

The first opportunity I had to try Claude Code on something where the stakes were a bit higher was when I got a DM from a friend on Slack.

"You have any luck with a place to host Sboj?"

I'd recently taken over the ZATech.co.za Slack community from him. A related project was Sboj - a reverse job board (squint at the name a bit) that was integrated into the Slack community for recruitment.

ZATech Slack community Sboj reverse job board

ZATech and Sboj, two projects I'd taken over and was battling to find the time to give them the attention they deserved.

It's a Laravel/PHP app with MySQL and a bunch of other helper stuff that I had little-to-no familiarity with (my choice of poison is usually Python and Postgres), and it was running on an expensive hosting service that was overkill for the amount of traffic and users.

I wanted to set up a production VPS, but the project had no README and I didn't have the time to go spelunking into this code base and figure out all the dependencies and set up steps.

Claude Code? Yes please.

Because this isn't an experiment anymore we need to be a bit more careful. Let's start locally instead of in production and ask it to generate a readme file.

Generated README

It was great at analysing the code base and telling me about the dependencies that I need to check I have access to.

It listed things I expected (like some worker queue stuff) and stuff I didn't (like Cloudflare Turnstyle that I'd never even heard of).

I spot checked the dependencies it mentioned and the rest of the README. It seemed accurate enough, so let's try get this thing running. Once again, my starting point was a brand new VPS. I manually install and authorize Claude and then nearly everything I do from there is via Claude Code.

I created a new VPS, cloned the repo, got a database dump file, and told it to get started.

lfg I said.

Command not found. Oh yeah, VPS, no shortcuts. export IS_SANDBOX=1 && claude --dangerously-skip-permissions it is.

It set up everything I needed, and got the app running at a temporary domain. In the meantime I had to do some old-fashioned non-AI work in the background getting access to the various accounts and switching 2FA to mine.

It had a few issues restoring the database and I was glad I was watching more closely now as it tried to manually create new SQL dump files that were only excerpts of the actual dump I'd given it to get around not having the correct permissions. After telling it to rather just give itself super admin permissions on the SQL database and restoring the dump from there, it was fine (after dropping the soon-to-be production database once - I said --dangerously-skip-permissions isn't that dangerous, not that it's completely safe. Use some common sense too).

I haven't done this migration manually so I have no idea how much time I saved, but I'd guess at least 16-32 hours of learning enough about a new stack to get everything running and have confidence that it was doing what I thought it was doing.

I certainly saved a lot of time in leaning on Claude Code to find relevant logs, debug Turnstyle errors, turn off Turnstyle temporarily while we figured out how to migrate a Cloudflare account, and starting up the Laravel worker processes to do the background analytics stuff.

Setting Up
The Server

That vibe-coded app needed a home. Setting up a server used to be a day-long adventure through documentation and Stack Overflow. With Claude Code, it became a conversation.

Nginx configurations, SSL certificates, systemd services—all the pieces that usually require careful research and testing just worked. First try, every time.

Renaming
Bank Chaos

Bank statements with names like "stmt_2024_01_15_FINAL_v2_updated.pdf" were taking over my life. A simple Python script later, and years of financial documents suddenly made sense.

Clean, consistent naming. Organized by date. Finding that specific transaction from two years ago? Now it takes seconds, not hours.

Bank statements renaming tool

Building
Better

Found a website with great content but terrible UX. Instead of suffering through it, I rebuilt it. Better design, faster loading, actually usable on mobile.

The original took a team months to build. The better version? One afternoon with Claude Code. Sometimes, the best revenge is just doing it better.

Better website rebuild

Bug
Squashing

That production app I carefully architected months ago? It had a bug. A sneaky, intermittent, drives-you-crazy kind of bug. The kind that only appears on Tuesdays when Mercury is in retrograde.

Claude Code found it in minutes. Not by luck, but by methodically analyzing the codebase, understanding the context, and zeroing in on the issue. The fix was surgical and elegant.

Bug fixing in production

Article
Templates

Writing technical articles in Markdown is great until you need consistent formatting across dozens of posts. Built a template system that handles metadata, formatting, and even generates table of contents automatically.

Now every article starts perfect, looks consistent, and follows best practices. Writing became about content, not formatting fights.

Article template system

Writing
This Article

And here's the meta moment—this very article you're reading was crafted with Claude Code. Not just the code, but the entire creative process. Claude Code isn't just my development environment; it's my writing partner, my designer, my editor.

Every gradient, every animation, every carefully crafted sentence—all flowing through the same tool that deployed servers and fixed bugs. That's the magic. One tool, infinite possibilities.

Writing this article with Claude Code