“The Answer to the Great Question… Of Life, the Universe and Everything… Is… Forty-two.”
— Douglas Adams
For me, the Great Question wasn’t why we exist — it was why, after 10 years of promising myself, have I still not started this damn blog?
The truth is a bit like the fan-discovered nine times six equals forty-two (in base-13) joke from Hitchhiker’s Guide. Douglas Adams swore he never planned it that way — but that’s the point: sometimes the answer was there all along, hidden until you change your frame of reference.
For me, the answer wasn’t elusive; it was just waiting for me to shift perspective, drop perfectionism, and finally hit “publish.”
It sat on my to-do list like a digital zombie: migrating from app to app, from Notepad → Todoist → Notion → Obsidian → plain text, haunting me through pandemics, job changes, and domain name purchases. (I bought this domain three years ago and still… nothing.)
The truth? I was stuck in the nerd’s paradox: obsessing over the “perfect stack” before writing a single word. Django or Flask? Hugo, Jekyll, or Eleventy? AWS EC2 or Netlify? AI or no AI? By the time I finished debating, I could’ve written ten posts.
Spoiler: there’s no perfect stack. There’s only shipping or not shipping.
So here we are. This post isn’t a Hello World. It’s a mix of:
- confession (why it took me a decade),
- a semi-technical walkthrough (Eleventy + Netlify),
- a rant about perfectionism,
- and a few practical takeaways if you’re finally starting your own blog.
If you’ve ever procrastinated on a side project, this is for you.
So pour some coffee, adjust your ergonomic chair, and let’s go.
Part I: Ten Years of “I’ll Start Tomorrow”
For a decade, my to-do list carried the same immortal line:
It survived productivity app migrations, pandemics, new jobs, and at least three different personal domain purchases.
Why didn’t I just do it? Because nerds are cursed by choice.
- What stack should I use? Django vs Flask, Hugo vs Jekyll, Bootstrap vs Tailwind?
- Where to host? AWS EC2, Lightsail, Docker, DigitalOcean, Netlify, Vercel?
- What should I write about? AI, insurance, philosophy, my dog?
- Who would even read it?
Every time, I’d rabbit-hole into debates instead of shipping.
Spoiler: there is no perfect platform. Only shipping or not shipping.
Part II: Why Eleventy Won the Stack Wars
Eventually, I chose Eleventy (11ty). Minimal, hackable, Markdown-first. It doesn’t force React or a CMS, and it stays out of my way.
Key Eleventy advantages:
- File-based routing → drop a
.mdfile inposts/, it just works. - Layouts system →
njk, Liquid, or plain HTML. - Data cascade → flexible frontmatter inheritance.
- Zero-client JS by default → faster pages.
If Hugo is the Swiss Army knife and Gatsby is a chainsaw with a React sticker, Eleventy is a scalpel: precise, flexible, and unlikely to amputate your leg.
My folder structure looks like this:
.
├── .eleventy.js # Eleventy config
├── package.json
├── src
│ ├── _data # Global data
│ ├── _includes # Layouts & partials
│ ├── posts # Markdown posts
│ ├── styles # CSS
│ ├── javascript # JS assets
│ └── index.md
└── .gitignore
Starter config (.eleventy.js):
module.exports = function(eleventyConfig) {
eleventyConfig.addPassthroughCopy("src/styles");
eleventyConfig.addPassthroughCopy("src/javascript");
eleventyConfig.addCollection("posts", function(collectionApi) {
return collectionApi.getFilteredByGlob("src/posts/*.md").reverse();
});
return {
dir: {
input: "src",
includes: "_includes",
data: "_data",
output: "_site"
},
templateFormats: ["md", "njk", "html"],
markdownTemplateEngine: "njk",
htmlTemplateEngine: "njk",
dataTemplateEngine: "njk"
};
};
Want to try it yourself? Download the Eleventy starter kit from my GitHub: eleventy-starter-demo
⚡ Quick Tip: Start boring. One layout, one post. Fancy plugins can wait.
Part III: Netlify — The Lazy Win
I could’ve Dockerized everything, run a Kubernetes cluster, set up Traefik and hand-rolled SSL. But why?
Netlify gave me:
- Git push → deploy CI/CD
- Free SSL certs
- Global CDN
- Dead-simple subdomain setup
netlify.toml:
[build]
command = "npx @11ty/eleventy"
publish = "_site"
[build.environment]
NODE_VERSION = "20"
Done. No EC2 provisioning. No “works on my machine.” Lazy is good. Lazy means more time writing.
Part IV: AI as a Blogging Copilot
The elephant (or large language model) in the room: AI.
Without it, I’d probably still be tweaking .eleventy.js files and obsessing over CSS margins. Instead, AI became my blogging copilot — part productivity hack, part coding safety net. Shipping in a weekend.
Where AI Helped
- Content scaffolding → rough outlines that I rewrote in my own voice
- Syntax reminders → quick Liquid/Nunjucks filter lookups
- Text grunt work → meta descriptions, alt text, boilerplate copy
AI doesn’t replace my writing — it’s autocomplete on steroids. The voice, ideas, and cosmic rants are still mine. But the productivity boost? Easily 10×. What used to take four hours of fiddling now takes 30 minutes.
My LLM Experiment
As part of building this blog, I wanted to see which AI could generate the cleanest “working blog out of the box.” I tested:
- Claude Opus 4.1 → Winner for first impressions. It gave me working code with CSS that looked great, but ignored the Eleventy framework. A follow-up prompt produced scaffolding, but only as one massive text dump (I had to split it into files manually). Claude also hit context limits quickly.
- ChatGPT 5 → Best for usability. It generated a full ZIP with all files, including Eleventy scaffolding. Some pieces threw errors, but debugging was smoother. I ended up relying on ChatGPT once Claude’s outputs hit walls.
- Gemini 2.5 Pro → Most frustrating. Its designs were decent, but exports often failed, and many “created files” never existed. Compiler errors were frequent.
Special Mention
Codex inside VS Code deserves credit: spectacular at fixing bugs on the fly and cleaning up CSS while I focused on content.
Verdict: Claude wins for working code and design quality, ChatGPT wins for day-to-day usability. Gemini… not so much.
Part V: The Philosophy of Shipping
This isn’t about SEO, personal branding, or monetisation. It’s about building a digital garden: AI experiments, sustainability hacks, DIY projects, and nerdy rants.
The regret: ten years of lost potential posts.
The liberation: the second I hit publish, the regret vanished.
The blank page wasn’t an enemy anymore — it became possibility.
Part VI: Practical Tips for Beginners
Okay, enough cosmic rambling. Here are some real, actionable tips if you’re starting a blog:
- Don’t Over-Engineer — Markdown + deploy is enough.
- Automate Early — CI/CD from day one.
- Keep Authoring Simple — VS Code + .md + push.
- AI is your friend.
Part VII: What’s Next
Coming soon:
- Johannesburg air pollution and winter smog
- My DIY home air monitor project
- Rethinking Takealot’s packaging chain
- AI vs human coding experiments
This is the start of a geeky digital garden.
Closing: The 42 Lesson
Ten years of procrastination meant ten years of lost posts. That’s the regret.
But the moment I shipped, regret gave way to momentum.
So here’s my closing thought: the answer doesn’t change — but your perspective can.
Whatever your “42” is — a project, an idea, a blog you’ve been sitting on — stop waiting for perfect conditions. Change your base, hit publish, and ship.
Because the answer to “Why wait?” is probably still 42.
(And yes, 9 × 6 = 42 — if you’re counting in base-13.)
What’s your own “42” — What project or idea have you been putting off? Drop me a note — I’d love to hear your story.”
👉 Share your thoughts with me on LinkedIn or X (Twitter)