Is this thing on?
Hello again. This little blog is now on the new instance after discovering substack has no issue hosting and monetizing fascist content. I do believe that democratic privileges like free speech should only extend to those supporting democracy. Fascists, by definition, are against the free speech and democracy, so they don't deserve to be heard.
But first things first.
Today’s Best Band Ever™ is Ukrainian band Hatespeech. For four years now Ukraine is fighting the biggest fascist country on the planet. "Only at gun point we seek unity" is something that many of us are guilty of.
Difficulty: Hurt me plenty.
The world.
The US and Israel are trying to destroy the International Criminal Court. The only organization that is designed to bring corrupt and criminal governments to accountability. Go figure why they would want that.
Russians (the most of them, not just Putin) are in the fifth year of their 3-day invasion to Ukraine. They are about to cross over 1.5 million russian soldiers as killed or wounded in action. This insane number speaks volumes about who supports this war as well as how much value the so called russian culture puts on human life.
The US and Israel is in the sixth month of their quick win against Iran, In addition Israel is expanding their war from Gaza to other neighbors. Business as usual.
The hottest summer ever recorded, but we're still building AI datacenters all the while some major cities already struggle to provide electricity to their citizens.
But there's hope. Mamdani in New York. Ukrainians effectively replacing the Chief in Command of the Ukrainian army by doing the purest form of direct democracy - going to the streets. Europe, Canada and South Korea slowly waking up to the realities of whom to trust. And when it comes to AI, seems like we are reaching the limits of throwing more hardware at the problem and the locally runnable open source models are becoming good enough.
Back to the world of technology. Safe and free of politics.
Enter Ghost. It's time to host the blog somewhere nazi free.
I could have gone with the SaaS version, which is free for the rough feature parity with substack (nothing custom) or $18/month for a one-man-show pro subscription.
But the stars have aligned - I'm currently on sick leave and with plenty of ideas looking for real-life testing. So here's the plan.
Phase 1. Baseline.
Run a trivial Ghost installation on a single VM, no external database. Record the state and use that for the cost baseline. Cost shall be absolutely central for all phases.
Phase 2. Refactor.
Modernize the architecture into a modern container-based setup with moderate resiliency. The goal is to keep the cost same or smaller than the VM baseline.
Phase 3. Magic.
The goal for the third phase will be cost reduction by making the application fully cloud-native.
There's a lot of confusion these days on what is cloud native. I would like to propose the following definition.
A cloud native solution
- runs only parts that are needed at the moment (on demand)
- runs them only for as long as they are needed (just in time)
- runs in the most cost-efficient way (cost centric)
I feel it's important to note that when I say "cost-efficient", I mean not only the infrastructure costs, but total cost of ownership. More on that later.
The ultimate goal is to have it running almost for free. Let's see how low can we get, ideally below $1/month. This is the Yak-Shaving phase with the catch that I cannot do that indefinitely. The added bonus is that every day of running it more expensive than needed, it's my personal money being wasted.
So, what's up?
Well, since you are reading this, the Phase 1 is complete. This instance of Ghost is running on AWS on a single low-cost VM.

Points worth mentioning
Look ma, no SSH
The VM doesn't have an inbound SSH, all access to it happens over AWS SSM Connect (which, I believe is just Apache Guacamole in a trench coat).
We're still not in Kansas IPv6
The initial idea was to use only IPv6 networking. AWS includes a free egress-only gateway for IPv6, but Proton (my privacy-oriented email provider) doesn't have an IPv6 interfaces and so, after some deliberation, the Elastic IP was the cheapest option for egress-only IPv4 traffic.
Agentic tools are useful junior engineers
This blog's text is GPT-free, but all infrastructure operations were made by Claude Code.
Not surprisingly, Claude was wrong in many architectural decisions. E.g. it's a terrible idea to vibe one's architecture. We're still far from the GenAI agents being trusted even as mid-level engineers. To my surprise Claude code is just over one year old (first release February 2025), so the day is young, and the bubble is still expanding.
Spec driven FTW, but it needs care
I'm happy with the minimalist file-based (aka in-repo) task manager Moth.
I settled on a spec-driven flow where I create a brief moth task, brainstorm it with the agent, let it create the work plan, but also update the moth task with high-level feature description (no files or code details) enough to re-implement the feature from the scratch as well as include the decisions discussed and rejected (including reasons for the rejection). In addition to that, I found it essential that this should happen regularly as the feature is being implemented, tested and crawls toward its final, sometimes very different from the initial, shape.
In transport economics there's this counter-intuitive phenomenon that adding more capacity (more roads, more trains), instead of reducing congestion, induces bigger demand.
When applied to agentic workflows, newer models offer ever greater context windows, but that leads to us giving agents ever greater problems and context gets inevitably saturated again. Coding agents are elaborate GPT chats and this means that on every iteration, the whole context is sent back and forth and that's a lot of tokens to pay for. This is the reason we're starting to hear suggestions to /clear often or do handovers.
Back to my spec-driven flavor. To be token and context efficient, it relies on a two–layer hierarchy: abstract, concise and context-friendly IDEA.md, README.md and moth tasks at the top; more concrete per-moth plans below, feeding the abstract conclusions upwards. I believe this makes agentic development sustainable for long projects.
The whole repository is here.
It's not reliable at all
As expected, a single low-power VM, no automated backups (there's a script). This setup is waiting for the inevitable disaster.
Show me the money
Finally, the money part. The pre-deployment projection was $15-19/month. Based on the recent data from the running system, it's $18/month. It's quite incredible that we can predict the future infrastructure costs at such precision.
Some would say, it's less than their Netflix subscription. It is, but we can, must and will do better. Cost efficiency is the absolute core of public cloud.
Incidentally, this is the exact amount of the cheapest Pro subscription with the SaaS Ghost.
Of course, they bring maintenance and resilience, but still.
If I were to keep the architecture, I could cut the costs to $14/month with aggressive savings plans. But that's not the point. The point is to demonstrate that cost-efficiency is the centerpiece of cloud architecture.
So $18/month is the baseline after spending one evening, say 4 hours, implementing the phase 1. Let's see what the next phases bring.
Stay tuned, stop aggressors and fight Nazis no matter what they pretend to be or the country they come from.
PS. This blog is still stubbornly 100% GPT-free.
Comments ()