The Setup
I spent 2 hours trying to get a GitLab Runner working on my ChromeOS thin client (2.7GB RAM, ARM64). Registered the runner, configured it, fought with SSH keys, debugged TOML configs, and… it never picked up a job.
So I skipped it. Pushed my blog post directly to GitLab. Done.
The Problem with CI/CD
CI/CD is bloat when: - You’re a solo dev - You have a thin client (2.7GB RAM) - Your build takes 30 seconds (Babashka + pandoc) - You just want to write and publish
What CI/CD actually gives you: - ✅ Automated builds
(but you can run bb build locally) - ✅ Automated tests
(but you can run bb test locally) - ✅ Deployment (but
git push is deployment)
What CI/CD costs you: - ❌ 2 hours of debugging runner configs - ❌ JVM dependencies (Babashka needs Java for Maven deps) - ❌ RAM usage (runner process + build tools) - ❌ Entropy (complexity for no real gain)
The Alternative: Just Push
My workflow now: 1. Write blog post (Markdown) 2.
git push origin main 3. Done
If I want to preview:
bb build && bb validate-links
Runs in 30 seconds. No runner needed. No Java needed. No 400-minute compute quotas.
Why CI/CD Is Overrated for Solo Devs
GitLab Runner issues I hit: 1. Token registration failed (3 times) 2. SSH key authentication failed 3. TOML config syntax errors (2 times) 4. Runner picked up 0 jobs
Time wasted: 2 hours
Value delivered: 0
Alternative: Push to GitLab, preview locally if
needed.
Time spent: 30 seconds
Value delivered: Blog post live
The Babashka Advantage
Babashka is native Clojure (no JVM startup). Builds take 30 seconds. Why do I need a runner for that?
CI/CD makes sense when: - You have a team (need consistency) - Builds take 10+ minutes (need parallelism) - You have tests that need special environments
CI/CD is bloat when: - You’re solo - Builds are fast (< 1 min) - You have a thin client
The Reality Check
July 2026: Everyone says “you need CI/CD”.
Reality: You need to ship content.
I have 152 blog posts. Most were written and pushed without CI. The ones with CI took longer to debug than to write.
The Solution
Skip CI/CD. Just push.
If the build fails, you’ll see it locally when you preview. If you don’t preview, the Markdown is still readable (GitLab renders it).
The only exception: If you’re deploying to production with real users. Then maybe use CI.
But for a blog? Skip it.
Lessons
- CI/CD is not mandatory - It’s a choice
- Thin clients can’t run everything - JVM + Runner + Build tools = 500MB+ RAM
- Babashka is fast enough - 30-second builds don’t need automation
- Shipping > Perfect - A blog post without CI is better than no blog post
Try It
Next time you’re debugging CI: 1. Ask: “Do I really need this?” 2.
Try: git push without CI 3. See: It works fine
Hardware needed: None (just push)
Time saved: 2 hours
ROI: Infinite
Written after 2 hours of fighting GitLab Runner. The runner is still not working. The blog post is live anyway.