Back to KB
Difficulty
Intermediate
Read Time
4 min

I shipped a 20-feature DevOps tool solo in 60 days using Claude Code β€” the unfiltered breakdown

By Codcompass TeamΒ·Β·4 min read

Current Situation Analysis

Self-hosted infrastructure monitoring has fractured into a high-friction stack: Uptime Kuma for uptime, Portainer/Dozzle for containers, cron scripts for TLS rotation, Grafana for metrics, and Notion for status pages. Sysadmins and solo developers pay a severe context-switching tax, juggling five dashboards, five databases, and five alerting layers that never converge. The cognitive overhead of correlating container state, recent logs, HTTP health, certificate expiry, and CPU consumption across disjoint tools outweighs the marginal quality gains of specialist software.

Traditional solo development hits a hard bandwidth wall. Frontend frameworks (Vue 3 + TypeScript + Tailwind), complex scaffolding (MCP servers, OAuth2 PKCE, OSV.dev CVE scanning), and architectural refactoring consume disproportionate time. LLM-augmented development promises acceleration but introduces hidden costs: constant verification fatigue, scope drift, premature debugging assumptions, and strategic misalignment. Without disciplined prompt framing, custom skill encoding, and spec-driven workflows, AI coding accelerates architectural decay and generates plausible but non-existent feature claims. The code itself becomes the easiest part; the bottleneck shifts to workflow discipline, verification rigor, and constraint management.

WOW Moment: Key Findings

ApproachBuild CycleFeature DensityRefactoring Overhead
Traditional Solo6–8 months5–8 core features3+ weeks (high regression risk, manual test coverage)
Claude Code-Augmented60 days20 integrated features4 days (zero production regressions, automated coverage patterns)

Key Findings:

  • Frontend Acceleration: Vue 3/TS/Tailwind component development dropped from 2–3 weeks to 2–3 days by offloading framework convention cognitive load to Claude while retaining architectural control.
  • Scaffolding Velocity: Blank-file-to-working-draft for complex modules (MCP/OAuth2, OCI manifest parsing, CVE risk scoring) compressed from 2–5 days to an afternoon.
  • Refactoring Safety: A 600-line main.go with circular dependencies and interface{} event buses was restructured into typed events, App container extraction, and DI patterns in 4 days using a custom go-refactoring skill.
  • Verification Cost: Hallucination rate was low (2 incidents over 263 commits), but scope drift/misunderstood requests dominated (56 incidents). Verification overhead remains constant and does not decrease with usage.
  • Sweet Spot: LLM-augmented development excels when paired with strict constraint prompting, spec-driven task breakdowns, and custom skil

l libraries that encode team/product conventions.

Core Solution

Architecture & Runtime

  • Single Go binary, ~17 MB RAM at idle, zero external dependencies (no Postgres, Redis, or message queues).
  • SQLite with WAL mode for persistent state; Vue 3 + TypeScript + Tailwind frontend embedded via embed.FS.
  • One Docker image, one process, zero orchestration overhead.

Observation Layer (Read-Only Principle)

  • Auto-discovers Docker, Swarm, and Kubernetes workloads.
  • Monitors HTTP/TCP endpoints, cron heartbeats, TLS certificates, resource usage, and image update availability.
  • Scans for dangerous network configurations: exposed database ports, 0.0.0.0 bindings, privileged containers.
  • Strict observe, never act contract: no restarts, pulls, or mutations. Read-only access ensures security, simplifies the trust model, and reduces blast radius.

AI-Augmented Development Workflow

  • Custom Claude Skills: go-refactoring (typed events, DI, test coverage patterns), mobile-first-audit (Vue/Tailwind conventions), linkedin-post-generator (tone/style enforcement), linkedin-lead-capture, linkedin-trend-research.
  • Spec-Driven Development: GitHub Spec Kit workflow enforces need β†’ plan β†’ atomic tasks breakdown before any code generation. Prevents output scattering and forces architectural alignment.
  • Prompt Discipline: Explicit constraint injection per task ("you touch X, you do not modify Y, and you don't factor out anything that wasn't explicitly requested"). Debug prompts mandate reproduction before correction.
  • Business & Licensing: AGPL-3.0 open-core model, Pro tier at €29/month. Ed25519-signed license keys delivered via environment variables. Marketing site built on Hugo + PocketBase handling Stripe checkout and verification.

Pitfall Guide

  1. Unbounded Scope Drift: LLMs default to over-engineering and adding unrequested abstractions. Fix: Inject explicit boundary constraints at the start of every task ("modify X, never factor out Y").
  2. Feature Hallucination & Verification Fatigue: AI generates plausible but non-existent features (e.g., Telegram/Gotify alerts). Fix: Mandatory README/codebase verification for every output; treat verification cost as constant, not diminishing.
  3. Premature Root Cause Diagnosis: LLMs jump to fixes without reproducing bugs or reading logs. Fix: Enforce "reproduce concretely, read logs, test request before proposing correction" in all debug prompts.
  4. Strategic Misalignment: LLMs optimize for technical feasibility, not market positioning (e.g., exploring SaaS when target audience demands self-hosted data sovereignty). Fix: Frame business constraints and architectural non-negotiables before technical exploration.
  5. Custom Skill Maintenance Overhead: Skills encode conventions but require versioning and upkeep alongside the product. Fix: Treat skills as living code; store them in version control, update them during refactors, and audit them quarterly.
  6. Spec-Driven Discipline Requirement: Without structured breakdowns, AI outputs scatter across unrelated files and patterns. Fix: Adopt GitHub Spec Kit workflow; never prompt without a completed need β†’ plan β†’ atomic task breakdown.

Deliverables

  • Blueprint: maintenant-architecture-v2.pdf β€” System diagram showing Go binary runtime, SQLite WAL storage, embed.FS frontend injection, K8s/Docker auto-discovery pipeline, and MCP/OAuth2 integration flow.
  • Checklist: llm-dev-verification-checklist.md β€” Pre-prompt constraint validation, scope boundary confirmation, reproduction-before-fix enforcement, and post-generation README/codebase cross-reference steps.
  • Configuration Templates:
    • .claude/skills/ directory with go-refactoring.md, mobile-first-audit.md, and constraint-prompt templates
    • spec-kit-task-breakdown.yaml β€” GitHub Spec Kit compatible task structure for atomic feature delivery
    • go-embed-fs-scaffold/ β€” Minimal Go project template demonstrating embed.FS frontend integration, SQLite WAL initialization, and read-only monitoring contract enforcement