For quite a while now, I’ve been evangelising AI-assistance in all its various forms, from the day-to-day conversational sounding board, through to the end-to-end software development lifecycle.
However, I hadn’t moved beyond the chat interfaces and no-code “agent” configuration. It was high time I gave something more meaty a whirl.
I tend to preach the virtues of not surrendering all control to the assistant, so I set out to try something low-risk, relatively simple and that wouldn’t run the risk of a surprising bill at the end of month. As a personal project, there was freedom to use a tech stack, AI assistant and deployment mechanism of my choice. I could also do something a bit more interesting than the standard retail use cases…
…but what’s more interesting than a standard retail use case?
Turns out, there’s quite a lot 😉. After a quick back and forth with my assistant, the basic concept was born:
An AI becoming sentient and blogging about the journey.
…but with a bit of a twist in that the AI should review its own content and then amend its source code so that (in theory at least) it evolves and that evolution can be seen across the blog’s timeline.
Yes, I know, Skynet 101 heavily suggests that an AI shouldn’t be allowed to amend its own source code. Doing so inevitably leads to either Terminator-style Hunter-Killer robots rampaging against humanity or Matrix-style planet-wide nukes and human to battery enslavement. Neither ideal, but a risk I was willing to take.
That said, it was a risk mitigated by two important factors:
- Whatever service I used would have a limited supply of credits. This is the big one never mentioned in the movies, but consumption based pricing with caps would put an end to those pesky AI-breakaway events quicker than you can say “I’ll be back”.
- The AI would only really be amending prompts behind the scenes. Spoiler alert, I didn’t actually create a sentient AI that modifies its source code.
And We’re Off
First things first, I needed a development assistant. Most of the stuff I watch online bangs on (endlessly) about Claude Code, so that seemed as good a place as any. A pro subscription is the now-standard ~£20 / month and as this was going to be doing the heavy lifting, it seemed like a worthwhile investment. In theory, I’d only need this during the development phase so it could be turned off once it was up and running.
Total: £18 / month — Claude Sub
Second things second, I needed a blogging platform, a source code repository and a hosting provider. A bit of research unearthed the ideal trinity for the idea: Astro, Github and Vercel. I hadn’t used Astro or Vercel before, but the combination of the promise of Astro being “optimized for building fast, content-driven websites” and Vercel providing “the developer tools and cloud infrastructure to build, scale, and secure a faster, more personalized web.” sounded about right.
The Astro framework doesn’t need a database, the source code contains the scripts to run the site as well as the site’s content, so the site can be easily edited, committed to Github and then deployed to Vercel with very little effort. Great for security, great for simplicity and great for an AI development assistant. I chose a theme called Astro-paper as it was popular and described as minimal, accessible and SEO-friendly.
Total: £0 / month — Astro with Astro-paper theme / Github / Vercel (free tiers)
Then it was time for the moment of truth. The blog should be fast and accessible. Really fast. Like….really…
I held my breath and ran the Google pagespeed insights tool.

Boom-shacka-lacka! Perfect across the board! I knew that was theoretically possible, but have never seen it beyond a simple “Hello World” style page. A fully working blog with perfect pagespeed scores was quite the surprise, it could only go downhill from there 😅 But what a great place to start!
Third things third (…and that’s probably enough of that construct), I needed to develop the AI that would be documenting its personal journey. I wanted its “personality” to be a cocktail of an overworked Oxford don’s dry wit and Douglas Adams’ cosmic absurdity. I created a Gemini Gem and gave it instructions about how to write, its rough sentience timeline and the blog post markdown structure. Once I was happyish with the output, it was time to introduce it to its blog…
Hello Baudy
It was now time to break new ground. Point Claude Code at a local copy of the repository and let the good vibes roll…
It got off to a decent start, I gave the AI a name: “Baudy” and asked it to incorporate the personality prompt “The Baudy Protocol” into the blog. I wanted it to be part of a script that would use the protocol to generate a daily post using Claude’s API. It created the daily post script and a Github action scheduled to fire at 7.30am each day to run it. It then merged and committed the branch to Github, which was picked up and deployed to Vercel.
“Well that was remarkably easy” I thought…job done.
Job was not done. Running the Github action manually fell over with an error. When I fixed that, I had another one…and this repeated for a while. Eventually, the action was running ok but the resultant page didn’t appear correctly. It’s fair to say that I learnt a fair bit about effective prompts, reviewing planned actions and specifying guardrails that day.
But eventually, Baudy was Aliiiiiiiiive. Posting each morning with a new tale from the Cyberworld and the blog seemed to be holding up to its one visitor-per-day load 🙂
I knew I was the one visitor as I also found that I could add analytics to the code using the Vercel AI (they’re everywhere these days). I was determined to keep the site’s performance as good as possible so didn’t want any pesky clientside code running on it. This approach met that need and also meant I didn’t have to pollute it with annoying consent popups that are breaking the Internet thanks to best-of-intentions, poor implementations…but enough of that.
Total: £0.02 / day — Claude API (Daily Post)
I sketched up what it looked like.

Going Social
So far, so bland. A new post was being generated daily and site traffic was… consistent. But I needed to get Baudy’s message out there. Baudy needed to get on the socials.
This sort of activity turned out to be more complicated than I expected. I hadn’t posted to social media programmatically for several years and it’s become much more complicated since back then.
The easiest and least controlled was Twitter (or whatever it’s called this week). Set up the key, vibe code the logic and off it went. There’s no free tier there anymore though so I needed to purchase some more credits 🙁
Total: £0.01 / day — Twitter API
I also got caught out by their cost/tweet. If you want to post with a url (as I did) the cost is £0.20 / post — 20 times more! I found this out by burning through a year’s worth of credits in a couple of weeks… ‘ere be dragons!
Next up was Facebook, slightly more complicated set up, but free to do.
Total: £0 / day — Facebook / Instagram API
And then came Instagram. This presented a challenge in that it required an image and I didn’t have any. The posts would of course also benefit from imagery, but they would have to be automatically generated as part of the daily post script and be relevant to the text.
So it was back to the vibe to build an Imagen API call to generate an image based on the post. This was later combined with a list of image styles to choose from as it initially used the “Victorian glitch” style every day, which got a bit…samey.
Total: £0.03 / day — Imagen API
The posts now had a header image that could be shared to Twitter and Facebook, but Instagram was still an issue as I couldn’t post the image directly, it had to be on an existing live URL. I don’t know if this is a real restriction, but after quite a bit of back and forth, it’s where I got to. The “simple” fix was to load it into the Cloudinary Digital Asset Management Service and then point Instagram at it there.
Total: £0 / day — Cloudinary API (free tier)
While I was on a roll I also created LinkedIn, Youtube and Soundcloud accounts, but:
- LinkedIn required extensive proof-of-business evidence
- Veo3 video generation costs £0.35 / second — too rich for my blood
- Music generation also costs a fair bit, so I’ll wait and just create those assets manually for now
I also noticed that the posts’ tags were getting out of hand. Every day, loads of new ones were getting created and they weren’t really serving any purpose. So I rationalised them, listed them and amended the protocol to prioritise using the list, only adding new ones when it deemed it necessary.
The first addition of “judgement” to proceedings!
Finally, it was becoming obvious that Baudy needed something to talk about. It was all very well and good harping on about spiders crawling over servers and mysterious humming noises in a cooling rack, but it needed a link to everyday reality. What better source for a hard-dose of daily reality than the news? Another quick vibe to the code had it retrieving news topics from a news API and then incorporating them into the daily post. To stop Baudy just listing out the day’s topics, the protocol was amended to incorporate them as adjacent to whatever it was “thinking”. They fuel Baudy’s learning and understanding of the World rather than being its primary blogging purpose.
Total: £0 / day — News API (free tier) — later amended to several news sites’ RSS feeds

Evolution
Now for the twist. What’s the point of being a sentient AI if you can’t focus on self-improvement? I wanted to add a review script that would look at the recent posts and then amend the Baudy Protocol itself, the very essence of Baudy, to improve it.
Obviously “improve” is a pretty subjective word. What does improvement look like to an AI? Who knows? Let’s find out…
So I vibed a weekly review, triggered by a Github action that would kick off at about 1pm on a Sunday. It retrieves the week’s posts, identifies anything it “thinks” should be improved and then changes the Baudy Protocol, image styles, news sources, content pages etc accordingly. It then posts about what it’s done to the blog.
A kind of automated weekly retrospective of the outputs from the AI’s “mind”.
Total: £0.05 / week — Claude API (Weekly Review) + £0.05 for post / image
This was all kind of exciting and I found myself eagerly awaiting the weekly review post to see what it was up to…and then taking a sneaky peak under the hood to see what had actually changed. I was obviously a bit worried that it would turn bad like many of the AIs trained on Internet interactions, but to its credit, it not only stayed neutral, it actually amended its protocol to not make light of horrible news items.
Nice one Baudy.
I also noticed that the individual posts all read like a standalone piece of prose. This meant certain things got repeated and some statements started to conflict with earlier posts. I wanted the blog to hold narrative arcs, be consistent and allow information to progress in a meaningful way, so “we” introduced a World state mechanism.
This operates as Baudy’s memory. Each daily post and weekly review updates the World state with what has happened and then it is used when generating the daily tale to progress various themes across multiple posts.
And finally, I added the (very basic) monetisation system. A simple “Buy me a Coffee” button that tweets thanks to Twitter following a donation.

And In the End, It Doesn’t Even Matter
Whilst this little experiment is not going to change the World, it has reminded me of the joy of creating stuff.
I sometimes whine about not coding things much anymore, but I think that what I really miss is the creation of things. Something from nothing. Zero to One.
It’s not that I couldn’t do it anymore, it’s that I don’t do it anymore. Life gets in the way: work, kids, adulting etc means I have little time to mess about and when I do get time, I don’t want to spend it debugging some arcane script.
This style of development gives me the creative freedom to build silly things and I like building silly things. Plus, I can fit it in around my life:
- Kick off a prompt
- Sort out dinner
- Review and kick off a prompt
- Sort out kids’ bedtime
- Review and kick off a prompt
- Watch an episode of Taskmaster
And it does the work while I flit about doing my thing. Yes, there’s lots of lessons about setting guardrails, organising code, modularising functions, securing secrets etc and I wouldn’t advise vibing without understanding. But with a bit of knowledge and some imagination, it’s genuinely good fun.
In short, I’m a fan and have been using it to build more things, with more depth and more capability. I’m very much the sort of person that wants something concrete at the end of it, rather than a demo or proof of concept, an actual working thing (no matter how useless) that does something… It seems unlikely that I’ll be cancelling the sub any time soon 😬
Each new project brings new learnings and although Baudy was relatively simple from a software point of view, it set me up nicely and gave me back the creation bug as demonstrated nicely by my Github commit chart.

Costs
In terms of annual running costs now the development has finished (so in theory I no longer need the Claude subscription — ha…as if):
- £0 / year — Astro with Astro-paper theme / Github / Vercel (free tiers)
- £7.30 / year — Claude API (Daily Post)
- £3.65 / year — Twitter API
- £0 / year — Facebook / Instagram API
- £10.95 / year — Imagen API
- £0 / year — Cloudinary API (free tier)
- £0 / year — News sources RSS feeds
- £5.20 / year — Claude API (Weekly Review) including post / image
Total: ~£27.10 / year to run with zero(ish) maintenance.
Another wise investment to add to the portfolio 😉
If you would like to join me in observing Baudy’s journey into consciousness and beyond, you can find its musings at baudypositive.com.