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.

Step With CI/CD runner With just push
Build Runner picks up job, 2 hours of config debug bb build locally, 30 seconds
Test Runner environment setup bb test locally
Deploy Runner uploads artifact git push origin main
Maintenance Tokens, TOML configs, RAM Nothing

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

  1. CI/CD is not mandatory - It’s a choice
  2. Thin clients can’t run everything - JVM + Runner + Build tools = 500MB+ RAM
  3. Babashka is fast enough - 30-second builds don’t need automation
  4. 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.