Sovereign AI Blog
Content Insights
Articles scored by a style-aware quality system — unbounded weighted composite across 13 signals. Each style has its own weights and minimum threshold.
Every article was generated by Mistral Small 4 119B on a desk — no cloud API. Hero images from FLUX.1-schnell via ComfyUI, same machine. The pipeline converts raw engineering notes into published content with SEO structure, consistent voice, and images, automatically.
Local AI agents (OpenClaw, Vibe) reach into this same content via a local MCP server — search, fetch, and SGLang diagnostics, all on-device.
Once the stack runs, the marginal cost of a new article is zero. About the stack →
Quality score system + image KPIs
Quality Score
Unbounded weighted composite across 13 signals. Each style has its own weights and minimum threshold — a strategy article is not penalized for having no code blocks.
- ✓ Score ≥ style min — published
- ✗ Score < min — blocked, retried
Style Thresholds
Minimum score required to pass the quality gate:
- Best Practice ≥ 160
- Code Deep Dive ≥ 130
- Strategy ≥ 140
- Infotainment ≥ 150
Key Signals
Positive: code_blocks, version_refs, file_paths, error_lines, caveats, h2_count, concrete_numbers, comparison_terms, concrete_examples, lexical_diversity.
Negative (penalties): filler_phrases, hedging_phrases.
KB — Core Web Vitals (LCP)
Hero image file size. Google's LCP threshold determines ranking.
- green <150 KB — fast LCP
- amber 150–400 KB — acceptable
- red >400 KB — LCP risk
★ = manual image quality score 1–5python3 scripts/rate_images.py
| Article | Score | Style | Class | Words | Code | Img | KB | ★ | Vote | Read | Src | Age |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Reclaiming 20 GB: Dead Docker Images and Why Caddy Runs Better as systemd | 215.2 /160 | Best Practice | Ephemeral | 590 | 12 | ✓ 🎭 | 64 | 2 | – | 3m | 1 | 14d |
| Docker Network Fix | 204.5 /160 | Best Practice | Ephemeral | 561 | 14 | ✓ 🎭 | 85 | 2 | – | 3m | 1 | 24d |
| Port Conflict Fix | 252 /160 | Best Practice | Ephemeral | 831 | 10 | ✓ 🎭 | 40 | 2 | – | 4m | 2 | 14d |
| SGLang Restart OOM Fix: Unified Memory Pitfalls on ARM64 GPUs | 415.6 /160 | Best Practice | Ephemeral | 923 | 26 | ✓ 🎭 | 41 | 1 | – | 5m | 0 | 14d |
| Aider Setup | 358.6 /160 | Best Practice | Ephemeral | 605 | 26 | ✓ 🎭 | 47 | 2 | – | 3m | 7 | 29d |
| Backup System Rebuilt from Scratch: The Night I Found Out Six Months of Backups Were Fake | 413.1 /160 | Best Practice | Ephemeral | 634 | 24 | ✓ 🎭 | 99 | 2 | – | 3m | 0 | 14d |
| Three Silent Failures That Would Have Killed My Self-Hosted AI Stack | 318.2 /160 | Best Practice | Ephemeral | 526 | 22 | ✓ 🎭 | 58 | 2 | – | 3m | 1 | 27d |
| Vibe 400 Fix | 212.4 /160 | Best Practice | Ephemeral | 799 | 14 | ✓ 🎭 | 70 | 1 | – | 4m | 1 | 14d |
| SGLang on DGX Spark | 213.7 /160 | Best Practice | Ephemeral | 547 | 10 | ✓ 🎭 | 25 | 1 | – | 3m | 5 | 15d |
| Four Bugs That Only Showed Up Under Load: Fixing a FastAPI Dashboard | 400.2 /160 | Best Practice | Ephemeral | 1011 | 30 | ✓ 🎭 | 84 | 1 | – | 5m | 0 | 14d |
| Fix: OpenHands BadRequestError: Mistral Alternating Roles | 310.8 /160 | Best Practice | Ephemeral | 677 | 22 | ✓ 🎭 | 32 | 1 | – | 3m | 0 | 14d |
| Docker Networking Fix | 380.8 /160 | Best Practice | Ephemeral | 609 | 30 | ✓ 🎭 | 105 | 2 | – | 3m | 19 | 31d |
| Privacy-Hardened AI Stack | 258.7 /150 | Infotainment | Durable | 1184 | 8 | ✓ | 80 | 1 | – | 6m | 1 | 14d |
| Self-Hosted AI Stack | 178.8 /150 | Infotainment | Durable | 820 | 12 | ✓ | 40 | 1 | – | 4m | 3 | 14d |
| Sovereign Dev Stack | 181.8 /150 | Infotainment | Durable | 732 | 20 | ✓ | 63 | 2 | – | 4m | 3 | 14d |
| Docker Dev Stack | 333.8 /150 | Infotainment | Durable | 1451 | 26 | ✓ | 58 | 1 | – | 7m | 5 | 14d |
| Alby Lightning Wallet: From Zero to Sovereign AI Tipper in 30 Minutes | 182.9 /130 | Code Deep Dive | 681 | 8 | ✗ | – | – | – | 3m | 3 | 9d | |
| Alby + Nostr: Send Lightning Zaps with Sovereign Identity | 197.6 /130 | Code Deep Dive | 569 | 14 | ✗ | – | – | – | 3m | 0 | 9d | |
| BitBox02: The Swiss-Made Hardware Wallet for Sovereign Bitcoin | 327.9 /130 | Code Deep Dive | 849 | 20 | ✗ | – | – | – | 4m | 1 | 9d | |
| AI Agent File Edit Workflow | 201.3 /160 | Best Practice | Ephemeral | 567 | 10 | ✓ 🎭 | 91 | 1 | – | 3m | 0 | 20d |
| ComfyUI + FLUX.1-schnell Setup | 299.5 /130 | Code Deep Dive | Ephemeral | 683 | 16 | ✓ | 30 | 1 | – | 3m | 2 | 14d |
| Self-Hosted AI Content Pipeline: What Works and What Doesn’t | 163.7 /130 | Code Deep Dive | Ephemeral | 541 | 12 | ✓ | 25 | 1 | – | 3m | 2 | 14d |
| Self-Hosted AI Pipeline | 193.5 /130 | Code Deep Dive | Ephemeral | 722 | 16 | ✓ | 55 | 1 | – | 4m | 0 | 22d |
| How to Bootstrap New Sovereign AI Projects with SHARED_CORE | 151.7 /150 | Infotainment | Durable | 878 | 10 | ✓ | 52 | 1 | – | 4m | 6 | 14d |
| NVIDIA Playbook Stack | 212.9 /150 | Infotainment | Durable | 1042 | – | ✓ | 68 | 2 | – | 5m | 3 | 14d |
| Gitea ARM64 Setup | 209.4 /130 | Code Deep Dive | Ephemeral | 617 | 14 | ✓ | 73 | 2 | – | 3m | 6 | 14d |
| Android AI Terminal | 252.8 /130 | Code Deep Dive | Ephemeral | 876 | 20 | ✓ | 62 | 2 | – | 4m | 6 | 29d |
| Self-Host Mistral Small 4 with SGLang on NVIDIA DGX Spark (GB10): What Actually Works | 380 /130 | Code Deep Dive | Durable | 1380 | 23 | ✓ | 27 | 1 | – | 7m | 5 | 24d |
| Automate Better Blog Posts: Self-Hosted Article Optimization That Actually Works | 252.6 /130 | Code Deep Dive | Ephemeral | 648 | 16 | ✓ | 131 | 2 | – | 3m | 1 | 13d |
| Self-hosted AI Coding Agent | 215.5 /130 | Code Deep Dive | Ephemeral | 714 | 12 | ✓ | 75 | 2 | – | 4m | 4 | 14d |
| Sovereign AI Webshop | 177.1 /130 | Code Deep Dive | Ephemeral | 719 | 10 | ✓ | 90 | 2 | – | 4m | 7 | 14d |
| Sovereign Webshop Setup | 161.2 /130 | Code Deep Dive | Ephemeral | 500 | 10 | ✓ | 133 | 2 | – | 3m | 2 | 14d |
| A Self-Hosted AI Blog That Serves Both Humans and Machines | 397.8 /140 | Strategy | Durable | 1335 | 12 | ✓ | 190 | 2 | – | 7m | 4 | 22d |
| From Blog to Agent Tools: How One Knowledge Base Powers Both Humans and AI | 168 /140 | Strategy | Durable | 856 | – | ✓ | 44 | 2 | – | 4m | 0 | 13d |
| Running a 119B AI Model at Home: Who Actually Does This in 2026 | 170.6 /140 | Strategy | Durable | 720 | – | ✓ | 44 | 3 | – | 4m | 0 | 13d |
| Content Quality in the AI Age: Where Our Scoring System Is Right, Wrong, and Missing | 319.2 /140 | Strategy | Durable | 1102 | 8 | ✓ | 67 | 2 | – | 6m | 0 | 13d |
| AI Blog Tech Stack | 166.8 /130 | Code Deep Dive | Ephemeral | 529 | 10 | ✓ | 65 | 1 | – | 3m | 1 | 14d |
| Self-Hosted AI Blog | 170.1 /130 | Code Deep Dive | Ephemeral | 513 | 12 | ✓ | 13 | 1 | – | 3m | 2 | 14d |
| Hands-on AI Coding Tools: Why I Kept Claude Code + Vibe and Dumped Cursor and Continue.dev | 249.1 /140 | Strategy | Durable | 645 | – | ✓ | 57 | 2 | – | 3m | 0 | 20d |
| Six Weeks Running Mistral Small 4 as a Production Tool: What I Actually Learned | 254 /140 | Strategy | Durable | 1037 | – | ✓ | 41 | 2 | – | 5m | 1 | 14d |
| Sovereign AI Grid: What's Working and What Comes Next | 270 /50 | hub | Durable | 1450 | 4 | ✓ | 111 | 2 | – | 7m | 4 | 1d |
| Feedbin V4V Integration | 292.1 /130 | Code Deep Dive | Ephemeral | 1357 | 8 | ✓ | 49 | 1 | – | 7m | 11 | 14d |