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.
Articles are drafted on a desk by a self-hosted LLM and refined by hand. Hero images from a self-hosted image model, same machine. No cloud API. The pipeline converts raw engineering notes into published content with SEO structure, consistent voice, and images.
Local AI agents 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. How the pipeline works →
North Star Metric: Agent Activity (30 days)
Source-of-truth: Caddy access logs. No client-side tracking, no JS pixels. Why no tracking?
Loading…
What do these metrics mean?
Deep-dive companion article with the formula, business meaning, and vanity-trap behind each metric below: How to Read the Insights Dashboard for a DGX-Spark Business →
NSM · live, 30-day window
- MCP tool calls: POST requests to
/self-hosted-aiby external AI agents. Primary success metric. Calls from internal personas (cipherfox, hexabella, claude-code, vibe, openclaw) are counted separately asinternal_agent_callsfor honest dogfooding visibility. Calls from the operator's own home-DSL range (configured viaNSM_SELF_IPSenv, default91.59.0.0/16) are also broken out asself_traffic_tool_callsso the headline reflects external reach honestly. - Distinct agents: external clients deduped by (User-Agent + IP /24). Collapses rotating cloud-datacenter IPs from the same /24 with the same UA into one logical agent: closer to "how many distinct services use the MCP" than the raw IP count. Raw IPs are still shown for back-compat. Top contributors are inspectable via
top_distinct_agents[]in the raw API. - Rate-limit hits: 429 responses. Shows bot pressure rejected at 60/min/IP. Higher is fine.
- Distinct readers: distinct IPs loading canonical article URLs (
/blog/<slug>/) with the operator's own DSL/VPN ranges (NSM_SELF_IPS) excluded, the honest "how many people" signal.human_page_viewsis the same set counted as page-loads;total_viewsis the raw count including self. Search-engine crawlers that fetch article URLs are not User-Agent-filtered, so read distinct readers as an upper bound. Deliberately secondary to the MCP NSM.
Content KPIs · build-time
- Total articles: published in
/blog/ - Avg quality score: weighted composite across 13 signals (unbounded)
- Passed quality gate: score ≥ style-specific min
- With hero image: % with
/images/blog/<slug>/hero.webp - Images rated: manual ★ via
rate_images.py - Zaps: sats and zap count per article, tallied from public Nostr zap receipts (NIP-57), no payer data
Visitor geography: loading…
Audience Reach
Distinct human readers and page views by period. Scrapers bot-filtered, operator's own traffic excluded. Same source-of-truth: Caddy access logs, no client-side tracking, no JS pixels.
| Metric | Today | 7 days | 30 days | All-time |
|---|---|---|---|---|
| Unique readers | … | … | … | ≈… |
| Page views | … | … | … | … |
Methodology
Monthly unique visitors = the 30-day distinct-reader figure (the headline reach number). All-time readers are a HyperLogLog estimate (±2%): the sketch stores only 4 KiB of register maxima, so no reader identity is ever persisted and re-counting the same reader is impossible by construction. All-time figures accumulate from …. Single-IP catalogue sweeps (one address crawling 50+ articles within an hour) are filtered as bots; … caught in the last 30 days. Search-engine crawlers that fetch article URLs are not User-Agent-filtered, so treat page views as an upper bound.
Value for Value
Reader zaps per article, the one feedback signal that costs the sender something. Tallied from public Nostr zap receipts (NIP-57): integer sats and counts only, no payer identity stored, no cookies.
No zaps yet. Every article has a zap button in its footer.
Methodology
Each article footer offers a Lightning zap. Paid as a Nostr zap, the LNURL server publishes a public receipt (kind 9735) carrying the article URL, and a daily job tallies sats and counts per article off public relays. No Lightning node API, no payer data. Plain (non-Nostr) Lightning payments still reach the writer but leave no public receipt, so they are not counted here.
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 ≥ 220
- Code Deep Dive ≥ 230
- Strategy ≥ 300
- Infotainment ≥ 250
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, em_dashes, uniform_3_lists.
Em-dash penalty is -12 per occurrence: a single LLM tell can drop an article 200 points and below the gate.
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
What does the score actually mean?
Deep-dive companion article on what this scoring system gets right, wrong, and is missing: Content Quality in the AI Age: Where Our Scoring System Is Right, Wrong, and Missing →
The score is a linter for shape; fact-checking is a separate hard-gate. As of 2026-05-03 the deploy pipeline runs scripts/factcheck.py against every published article and refuses to ship if a Docker image, PyPI version, or npm package mentioned in the prose does not resolve on the public registry. So no published article on this site contains a hallucinated version pin or image tag, by construction. The score below tells you about shape (em-dashes, filler, structural depth, word count). The factcheck-gate tells you about literal-existence-of-claims. Neither one tells you the broader narrative is correct: a real Docker image used in a misleading context still passes both gates. Human attestation remains load-bearing for the actual argument.
Two gates run before publish: (1) the score-based shape gate (score >= style.min_score and word_count >= style.min_word_count; style floors as of 2026-05-27: best-practice 220, code-deep-dive 230, infotainment 250, conclusion-strategy 300; word floors 800 for fixes, 1200 for guides and strategy and services), and (2) the factcheck hard-gate (scripts/factcheck.py against Docker Hub, PyPI, npm registries; deploy aborts on any "possibly hallucinated" reference). The combined effect: every live article has registry-verified version pins, structural depth, and a clean shape signature. Articles that fail either gate stay visible on this page with the score-fail badge so the gap is auditable. What still requires human review is whether the pinned versions are the right ones for the use case described, registries cannot answer that.
| Article | Score | Style | Class | Words | Code | Img | KB | ★ | Zaps | Views | Read | Src | Age |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 24 Hours Setting Up a Lenovo Legion Pro 7 Gen 10 As a Sovereign-AI Companion Box | 1380.9 /250 | Infotainment | Durable | 7461 /1200 | , | ✓ | 69 | 1 | … | … | 37m | 0 | 11d |
| 5 MCP Patterns That Aren't 'Search the Database' | 335.4 /220 | Best Practice | Durable | 1886 /800 | 10 | ✓ | 79 | 1 | … | … | 9m | 0 | 21d |
| Agent-bench: stop trusting install counts, start measuring your agent's tools | 283.5 /250 | Infotainment | Durable | 1336 /1200 | 2 | ✓ | 18 | 1 | … | … | 7m | 5 | 2d |
| Your File-Integrity Monitor Is Probably Hashing Your Movie Folder | 256.9 /250 | Infotainment | Durable | 1506 /1200 | 8 | ✓ | 41 | … | … | … | 8m | 0 | 9d |
| AIDE + Tripwire for AI Boxes: When File Integrity Matters | 253.8 /250 | Infotainment | Durable | 1200 /1200 | 10 | ✓ | 52 | 1 | … | … | 6m | 0 | 23d |
| Astro 6 + Caddy: The Static-First AI Blog Stack | 414.7 /250 | Infotainment | Durable | 2036 /1200 | 10 | ✓ | 48 | 1 | … | … | 10m | 2 | 21d |
| Smaller, Faster, Still Smart? AutoRound int4 vs PrismaQuant for a Self-Hosted Coding Model | 358.7 /250 | Infotainment | Durable | 1830 /1200 | , | ✓ | 73 | 1 | … | … | 9m | 1 | 2d |
| Backing Up 119B Parameters Without Going Bankrupt on Storage | 275 /250 | Infotainment | Durable | 1560 /1200 | 2 | ✓ | 84 | 1 | … | … | 8m | 1 | 20d |
| Caddy + Cloudflare Tunnel: The Reliability Pattern | 500.6 /250 | Infotainment | Durable | 2328 /1200 | 6 | ✓ | 129 | 1 | … | … | 12m | 3 | 22d |
| A Benchmark Handed Me a Number Three Times in One Day. Three Times It Was Lying. | 260.4 /250 | Infotainment | Durable | 1677 /1200 | , | ✓ | 34 | 1 | … | … | 8m | 1 | 0d |
| Caveman: does the 75% token-saving skill survive contact with a self-hosted model? | 271.5 /250 | Infotainment | Durable | 1482 /1200 | , | ✓ | 40 | 1 | … | … | 7m | 5 | 2d |
| Cloud vs Local AI: Where Each Actually Wins in 2026 | 253.3 /250 | Infotainment | Durable | 1243 /1200 | , | ✓ | 28 | 1 | … | … | 6m | 0 | 16d |
| What Goes Wrong at Token 4096: A Context-Window Failure Atlas | 437 /220 | Best Practice | Durable | 2445 /800 | 6 | ✓ | 76 | 1 | … | … | 12m | 0 | 24d |
| Conversation: Inside an Academic Lab Running Local LLMs | 280 /250 | Infotainment | Durable | 1647 /1200 | , | ✓ | 24 | 1 | … | … | 8m | 5 | 18d |
| Conversation: The Hobbyist-Pro Who Pays Their Mortgage With a Spark | 265.8 /250 | Infotainment | Durable | 1731 /1200 | , | ✓ | 97 | 1 | … | … | 9m | 5 | 18d |
| Conversation: An NVIDIA Engineer Off the Record | 263.4 /250 | Infotainment | Durable | 1853 /1200 | , | ✓ | 119 | 1 | … | … | 9m | 7 | 17d |
| Dashboard As Learning-Cockpit, Not Admin-Tool | 495.7 /250 | Infotainment | Durable | 3381 /1200 | 6 | ✓ | 51 | 1 | … | … | 17m | 0 | 11d |
| The /data/ Convention Trap: Ubuntu-LVM Lessons That Bit Me Twice | 764.2 /250 | Infotainment | Durable | 3993 /1200 | 2 | ✓ | 32 | 1 | … | … | 20m | 1 | 11d |
| DGX Spark vs Apple Mac Studio: Which Wins for Local LLMs? | 643.9 /250 | Infotainment | Durable | 2447 /1200 | , | ✓ | 83 | 1 | … | … | 12m | 0 | 20d |
| EAGLE Speculative Decoding: When It Helps and When It Doesn't | 450.5 /220 | Best Practice | Durable | 2301 /800 | 8 | ✓ | 65 | 1 | … | … | 12m | 0 | 24d |
| The Engineering Honesty Manifesto | 369.2 /250 | Infotainment | Durable | 2183 /1200 | , | ✓ | 44 | 1 | … | … | 11m | 1 | 16d |
| FIPS, the Mesh Protocol, and Why I Need to Build It to Believe It | 324.5 /250 | Infotainment | Durable | 2372 /1200 | , | ✓ 🎭 | 87 | 1 | … | … | 12m | 5 | 25d |
| Five DGX Spark Disasters I Survived (You Don't Have To) | 385.9 /250 | Infotainment | Durable | 1849 /1200 | , | ✓ | 63 | 1 | … | … | 9m | 1 | 20d |
| Aider Setup on DGX Spark: Mistral-via-SGLang Endpoint and Tor-Routed pip | 461.7 /220 | Best Practice | Ephemeral | 868 /800 | 30 | ✓ 🎭 | 47 | 2 | … | … | 4m | 7 | 74d |
| How Four Silent Failures Made My Backup System a Security Theater | 421.5 /220 | Best Practice | Ephemeral | 1005 /800 | 22 | ✓ 🎭 | 41 | 5 | … | … | 5m | 1 | 59d |
| Bitcoin Connect: window.webln Stays After Disconnect | 274.4 /220 | Best Practice | Ephemeral | 1355 /800 | 6 | ✓ 🎭 | 47 | 4 | … | … | 7m | 4 | 25d |
| Cloudflared in Astro's Docker Network: The Hostname-Resolution Fix | 340.8 /220 | Best Practice | Ephemeral | 1294 /800 | 14 | ✓ 🎭 | 85 | 2 | … | … | 6m | 1 | 76d |
| Four Bugs That Only Showed Up Under Load: Fixing a FastAPI Dashboard | 477.9 /220 | Best Practice | Ephemeral | 1206 /800 | 32 | ✓ 🎭 | 84 | 4 | … | … | 6m | 4 | 85d |
| Reclaiming 20 GB: Dead Docker Images and Why Caddy Runs Better as systemd | 351 /220 | Best Practice | Ephemeral | 1093 /800 | 12 | ✓ 🎭 | 64 | 2 | … | … | 5m | 1 | 77d |
| EAGLE Throughput Is Content-Dependent: Same Run, 14 to 31 Tokens Per Second | 274.3 /220 | Best Practice | Ephemeral | 1588 /800 | 2 | ✓ 🎭 | 47 | 3 | … | … | 8m | 0 | 25d |
| FFmpeg Volume Filter eval=frame: A 4-Second Silent Bug | 320.7 /220 | Best Practice | Ephemeral | 1244 /800 | 12 | ✓ 🎭 | 57 | 5 | … | … | 6m | 0 | 36d |
| Why hf download Lies to You at 22 GB on DGX Spark | 602.2 /220 | Best Practice | Ephemeral | 1962 /800 | 24 | ✓ 🎭 | 41 | 1 | … | … | 10m | 3 | 30d |
| Per-Segment Loudnorm and the 3-Second Lookahead Bug | 253.3 /220 | Best Practice | Ephemeral | 1819 /800 | 8 | ✓ 🎭 | 49 | 2 | … | … | 9m | 3 | 25d |
| Fix OpenClaw + SGLang with Mistral: Stop the "conversation roles must alternate" 400 BadRequest | 311.3 /220 | Best Practice | Ephemeral | 919 /800 | 22 | ✓ | 77 | 1 | … | … | 5m | 2 | 46d |
| Fix: OpenHands BadRequestError: Mistral Alternating Roles | 338.1 /220 | Best Practice | Ephemeral | 979 /800 | 22 | ✓ 🎭 | 32 | 1 | … | … | 5m | 1 | 79d |
| OpenHands and Gitea Integration: Docker-Network Hostname Fix | 504.7 /220 | Best Practice | Ephemeral | 966 /800 | 38 | ✓ 🎭 | 105 | 2 | … | … | 5m | 19 | 78d |
| OpenWebUI Port Conflict on DGX Spark: Why 8080 Was Already Taken | 311 /220 | Best Practice | Ephemeral | 1256 /800 | 10 | ✓ 🎭 | 40 | 2 | … | … | 6m | 2 | 80d |
| Voxtral Podcast Audio: Mono 24 kHz Baseline and Three Compression Pitfalls | 435.6 /220 | Best Practice | Ephemeral | 901 /800 | 24 | ✓ | 64 | 1 | … | … | 5m | 0 | 40d |
| Three Self-Healing Patches in One Day, All the Same Shape | 268 /220 | Best Practice | Ephemeral | 1390 /800 | 16 | ✓ 🎭 | 58 | 4 | … | … | 7m | 0 | 32d |
| SGLang Restart OOM Fix: Unified Memory Cleanup on GB10/DGX Spark | 286.6 /220 | Best Practice | Ephemeral | 920 /800 | 12 | ✓ 🎭 | 41 | 1 | … | … | 5m | 0 | 83d |
| SGLang on DGX Spark: 35-41 tok/s with EAGLE Speculative Decoding | 384.4 /220 | Best Practice | Ephemeral | 1302 /800 | 14 | ✓ 🎭 | 25 | 1 | … | … | 7m | 10 | 84d |
| Three Silent Failures That Would Have Killed My Self-Hosted AI Stack | 367.3 /220 | Best Practice | Ephemeral | 856 /800 | 24 | ✓ 🎭 | 58 | 2 | … | … | 4m | 1 | 75d |
| Vibe 400 Bad Request Fix: Mistral Alternating Roles and reasoning_effort | 423 /220 | Best Practice | Ephemeral | 1457 /800 | 26 | ✓ 🎭 | 70 | 4 | … | … | 7m | 3 | 81d |
| Vibe write_file Overwrite Bug: When Edits Silently Replace Whole Files | 397.6 /220 | Best Practice | Ephemeral | 1193 /800 | 12 | ✓ 🎭 | 91 | 1 | … | … | 6m | 1 | 82d |
| Why SGLang Never Froze My Desktop But vLLM Did: an SM 12.1 MoE-Kernel Story | 290.9 /220 | Best Practice | Ephemeral | 1662 /800 | 4 | ✓ 🎭 | 31 | 1 | … | … | 8m | 0 | 25d |
| Voxtral-TTS Blocker on GB10: The Three-Line vllm-omni Patch | 263.2 /220 | Best Practice | Ephemeral | 1044 /800 | 6 | ✓ | 38 | 1 | … | … | 5m | 1 | 40d |
| Voxtral 4B Open-Checkpoint: The Encoder is Gated | 231.9 /220 | Best Practice | Ephemeral | 1325 /800 | 8 | ✓ 🎭 | 28 | 3 | … | … | 7m | 4 | 36d |
| Voxtral Stage 1 OOM on GB10: Why --enforce-eager Is Not Enough | 306 /220 | Best Practice | Ephemeral | 1018 /800 | 10 | ✓ | 43 | 1 | … | … | 5m | 0 | 48d |
| The 3.5-Hour Deadlock That Was Really an AttributeError | 323.3 /220 | Best Practice | Ephemeral | 1143 /800 | 16 | ✓ | 24 | 1 | … | … | 6m | 3 | 40d |
| Gitea as Source-of-Truth for AI Pipelines | 323.7 /220 | Best Practice | Durable | 1980 /800 | 6 | ✓ | 105 | 1 | … | … | 10m | 1 | 23d |
| I Built OpenAI's gpt-oss-120b on a Single DGX Spark. My 35B Qwen Out-Coded It. | 355.2 /250 | Infotainment | Durable | 1924 /1200 | , | ✓ | 81 | 1 | … | … | 10m | 3 | 0d |
| Hardware Wallet Integration for Self-Hosted Lightning | 400.5 /230 | Code Deep Dive | Durable | 2184 /1200 | 10 | ✓ | 26 | 1 | … | … | 11m | 2 | 22d |
| How This Blog Actually Gets Built: The Full Build, Six Months of Iteration, Two Hard Gates | 781.6 /250 | Infotainment | Durable | 4975 /1200 | 6 | ✓ | 146 | 1 | … | … | 25m | 3 | 16d |
| A Second Brain for a Local Model, and the Two Bugs That Made It Useless First | 324.2 /250 | Infotainment | Durable | 1981 /1200 | , | ✓ | 62 | … | … | … | 10m | 0 | 8d |
| MCP for Engineers Who Hate Marketing: A 6-Week Build Log | 355.2 /250 | Infotainment | Durable | 1881 /1200 | 8 | ✓ | 55 | 1 | … | … | 9m | 3 | 21d |
| Mistral Small 4 vs Qwen 3.6 vs GLM-5.1 on a Single DGX Spark | 429.6 /250 | Infotainment | Durable | 2025 /1200 | , | ✓ | 91 | 1 | … | … | 10m | 0 | 20d |
| Mistral vs Qwen3.6 on DGX Spark: the 0/30 That Was a Broken Ruler | 387.9 /250 | Infotainment | Durable | 2261 /1200 | , | ✓ 🎭 | 102 | 1 | … | … | 11m | 7 | 25d |
| I Ran NVIDIA's 120B Nemotron on a Single DGX Spark. It Is Smart, Slow, and Surprisingly Good at One Job | 488.3 /250 | Infotainment | Durable | 2220 /1200 | 4 | ✓ | 66 | 1 | … | … | 11m | 4 | 1d |
| NVFP4 Quantization Explained (For Engineers Who Skipped the Paper) | 255.7 /250 | Infotainment | Durable | 1252 /1200 | 4 | ✓ | 30 | 1 | … | … | 6m | 0 | 24d |
| NVIDIA Playbooks: Where They Help and Where They Don't | 394.4 /300 | Strategy | Durable | 1430 /1200 | , | ✓ | 78 | 1 | … | … | 7m | 2 | 21d |
| The Operator's Guide to Self-Hosted Lightning | 306.1 /230 | Code Deep Dive | Durable | 2139 /1200 | 6 | ✓ | 145 | 1 | … | … | 11m | 2 | 22d |
| Power Failure Recovery on a DGX Spark: The 30-Minute Procedure | 339.2 /250 | Infotainment | Durable | 1751 /1200 | 4 | ✓ | 62 | 1 | … | … | 9m | 2 | 23d |
| Three Quants of One 35B Qwen on a DGX Spark. The Fastest Build Was the Only One That Could Still See. | 300.2 /250 | Infotainment | Durable | 1842 /1200 | , | ✓ | 27 | 1 | … | … | 9m | 3 | 0d |
| Refusing the Subscription Trap: A Year of V4V Lessons | 276.6 /250 | Infotainment | Durable | 1613 /1200 | , | ✓ | 205 | 1 | … | … | 8m | 1 | 18d |
| Why 334 Unique IPs Was Really 5 Services in Trench Coats | 306.6 /250 | Infotainment | Durable | 1623 /1200 | 14 | ✓ 🎭 | 62 | 4 | … | … | 8m | 1 | 32d |
| Voxtral Chunk Strategy: 38 Percent Faster Render with Whole Turns | 301 /250 | Infotainment | Durable | 1520 /1200 | 4 | ✓ 🎭 | 63 | 4 | … | … | 8m | 3 | 36d |
| Self-Hosted AI vs Cloud APIs: The Real Total Cost | 664.1 /250 | Infotainment | Durable | 3334 /1200 | , | ✓ | 99 | 1 | … | … | 17m | 1 | 18d |
| Self-Hosted Observability for a One-Person AI Stack | 362.6 /220 | Best Practice | Durable | 2360 /800 | 8 | ✓ | 57 | 1 | … | … | 12m | 2 | 23d |
| Does Serena help a self-hosted coding model? I benchmarked it | 286.1 /250 | Infotainment | Durable | 1462 /1200 | , | ✓ | 13 | 1 | … | … | 7m | 7 | 2d |
| Privacy-Hardened AI Stack: OpenHands, Aider, and Gitea over Tor | 370.5 /250 | Infotainment | Durable | 1661 /1200 | 12 | ✓ | 80 | 1 | … | … | 8m | 1 | 68d |
| SOVEREIGN DEV STUDIO v2: Self-Hosted AI Coding Agents That Actually Work | 272.6 /250 | Infotainment | Durable | 1268 /1200 | 6 | ✓ | 40 | 4 | … | … | 6m | 5 | 69d |
| Sovereign Dev Stack: Gitea-as-Tor-Hidden-Service and pip-via-Tor | 286.7 /250 | Infotainment | Durable | 1253 /1200 | 22 | ✓ | 63 | 2 | … | … | 6m | 3 | 70d |
| How to Bootstrap New Sovereign AI Projects with SHARED_CORE | 262.1 /250 | Infotainment | Durable | 1386 /1200 | 10 | ✓ | 52 | 1 | … | … | 7m | 6 | 71d |
| Docker Dev Stack on DGX Spark: Compose Patterns for Sovereign AI | 328.9 /250 | Infotainment | Durable | 1488 /1200 | 26 | ✓ | 58 | 1 | … | … | 7m | 5 | 72d |
| NVIDIA Playbook Stack | 303.7 /250 | Infotainment | Durable | 1446 /1200 | 35 | ✓ | 68 | 2 | … | … | 7m | 3 | 73d |
| Sovereign Grid Dashboard: Architecture, Service Tab Overhaul, and Service Control Pattern | 282.7 /250 | Infotainment | Durable | 1353 /1200 | 10 | ✓ | 65 | 1 | … | … | 7m | 1 | 40d |
| Alby Hub on ARM64: Self-Hosted Lightning Node in Docker for DGX Spark and Other ARM Boxes | 232.9 /230 | Code Deep Dive | Ephemeral | 1582 /1200 | 10 | ✓ | 26 | 5 | … | … | 8m | 5 | 38d |
| Alby Lightning Wallet: From Zero to Sovereign AI Tipper in 30 Minutes | 250.1 /230 | Code Deep Dive | Ephemeral | 1377 /1200 | 8 | ✓ | 29 | 5 | … | … | 7m | 5 | 63d |
| Alby + Nostr: Send Lightning Zaps with Sovereign Identity | 280.2 /230 | Code Deep Dive | Ephemeral | 1330 /1200 | 14 | ✓ | 38 | 5 | … | … | 7m | 2 | 64d |
| BitBox02: The Swiss-Made Hardware Wallet for Sovereign Bitcoin | 383.2 /230 | Code Deep Dive | Ephemeral | 1340 /1200 | 20 | ✓ | 46 | 5 | … | … | 7m | 3 | 65d |
| The Sovereign AI Blog MCP Is Mostly Redundant Today, And That Will Change | 300.2 /230 | Code Deep Dive | Ephemeral | 2505 /1200 | , | ✓ | 47 | 1 | … | … | 13m | 11 | 40d |
| ComfyUI plus FLUX.1-schnell on DGX Spark: Per-Style Visual Vocabularies | 422.8 /230 | Code Deep Dive | Ephemeral | 1372 /1200 | 16 | ✓ | 30 | 1 | … | … | 7m | 2 | 55d |
| Self-Hosted AI Pipeline (Part 1): Targeted Scripts, Hardware-Crashing Flags, and Why Grep Beats LLM | 284 /230 | Code Deep Dive | Ephemeral | 1277 /1200 | 16 | ✓ | 55 | 1 | … | … | 6m | 0 | 56d |
| Self-Hosted AI Content Pipeline: What Works and What Doesn’t | 313.1 /230 | Code Deep Dive | Ephemeral | 1383 /1200 | 12 | ✓ | 35 | 1 | … | … | 7m | 2 | 57d |
| Feedbin and Lightning V4V: Tipping RSS Authors Through Alby | 316.7 /230 | Code Deep Dive | Ephemeral | 1366 /1200 | 8 | ✓ | 49 | 1 | … | … | 7m | 12 | 59d |
| Floki-VPS Setup for Sovereign AI Workloads | 377.7 /230 | Code Deep Dive | Ephemeral | 1418 /1200 | 24 | ✓ | 110 | 1 | … | … | 7m | 3 | 40d |
| Gitea ARM64 Setup: Tor Hidden Service and Sovereign Dev Workflow | 349.3 /230 | Code Deep Dive | Ephemeral | 1315 /1200 | 24 | ✓ | 73 | 2 | … | … | 7m | 6 | 60d |
| Build a Self-Hosted Knowledge Base with Plain Text and LLMs | 238.9 /230 | Code Deep Dive | Ephemeral | 1323 /1200 | 10 | ✓ | 98 | 1 | … | … | 7m | 2 | 40d |
| 100/100 on Smithery in 4 Hours, and Why That Means Almost Nothing | 534.2 /230 | Code Deep Dive | Ephemeral | 4525 /1200 | 16 | ✓ | 55 | 3 | … | … | 23m | 45 | 43d |
| Self-Host Mistral Small 4 with SGLang on NVIDIA DGX Spark (GB10): What Actually Works | 597.1 /230 | Code Deep Dive | Ephemeral | 2259 /1200 | 22 | ✓ | 36 | 1 | … | … | 11m | 5 | 54d |
| Android AI Terminal: SSH plus Termux plus tmux for the AI Stack from Your Phone | 346.3 /230 | Code Deep Dive | Ephemeral | 1344 /1200 | 20 | ✓ | 62 | 2 | … | … | 7m | 6 | 62d |
| OpenClaw Setup on DGX Spark for Sovereign AI Agents | 354.4 /230 | Code Deep Dive | Ephemeral | 1502 /1200 | 22 | ✓ | 63 | 1 | … | … | 8m | 4 | 40d |
| opencode Setup: Self-Hosted AI Coding Assistant on ARM64 | 266.5 /230 | Code Deep Dive | Ephemeral | 1778 /1200 | 14 | ✓ | 75 | 1 | … | … | 9m | 6 | 30d |
| OpenHands Setup with Mistral-via-SGLang: The Multi-Arch Container Recipe | 270.9 /230 | Code Deep Dive | Ephemeral | 1571 /1200 | 12 | ✓ | 75 | 2 | … | … | 8m | 7 | 61d |
| Automate Better Blog Posts: Self-Hosted Article Optimization That Actually Works | 322.8 /230 | Code Deep Dive | Ephemeral | 1244 /1200 | 16 | ✓ | 131 | 2 | … | … | 6m | 1 | 58d |
| Self-Hosted AI: Start Here | 479.2 /230 | Code Deep Dive | Ephemeral | 4323 /1200 | , | ✓ | 91 | 1 | … | … | 22m | 11 | 40d |
| Build a Self-Hosted AI Blog with Astro, Mistral, and ComfyUI on One Machine | 246.2 /230 | Code Deep Dive | Ephemeral | 1275 /1200 | 10 | ✓ | 65 | 2 | … | … | 6m | 0 | 52d |
| Sovereign Blog Setup: Self-Hosted AI Content Pipeline & Monetization | 246.3 /230 | Code Deep Dive | Ephemeral | 1292 /1200 | 10 | ✓ | 13 | 4 | … | … | 6m | 3 | 53d |
| Sovereign MCP Server: Local Setup, Integration, and Hard Lessons | 346.4 /230 | Code Deep Dive | Ephemeral | 1388 /1200 | 16 | ✓ | 44 | 1 | … | … | 7m | 1 | 40d |
| Sovereign AI Webshop (Part 1): No-KYC Lightning Checkout Architecture | 308.4 /230 | Code Deep Dive | Ephemeral | 1247 /1200 | 10 | ✓ | 90 | 2 | … | … | 6m | 7 | 66d |
| Sovereign Webshop Setup | 312.4 /230 | Code Deep Dive | Ephemeral | 1336 /1200 | 10 | ✓ | 133 | 2 | … | … | 7m | 5 | 67d |
| Should You Buy a DGX Spark in 2026? The Honest Decision Tree | 820.3 /250 | Infotainment | Durable | 5509 /1200 | 2 | ✓ | 44 | 1 | … | … | 28m | 5 | 20d |
| Sovereign AI for Defense Contractors | 267 /250 | Infotainment | Durable | 1822 /1200 | , | ✓ | 73 | 1 | … | … | 9m | 2 | 17d |
| Sovereign AI for Financial Services | 297.1 /250 | Infotainment | Durable | 1585 /1200 | , | ✓ | 82 | 1 | … | … | 8m | 0 | 17d |
| Sovereign AI for Journalists | 267.4 /250 | Infotainment | Durable | 1775 /1200 | , | ✓ | 96 | 1 | … | … | 9m | 2 | 17d |
| Sovereign AI for Law Firms | 256.8 /250 | Infotainment | Durable | 1768 /1200 | , | ✓ | 74 | 1 | … | … | 9m | 0 | 17d |
| Sovereign AI for Public-Sector Pilots | 269.4 /250 | Infotainment | Durable | 1659 /1200 | , | ✓ | 63 | 1 | … | … | 8m | 0 | 17d |
| Sovereign AI for SMB Manufacturing | 253 /250 | Infotainment | Durable | 1968 /1200 | , | ✓ | 66 | 1 | … | … | 10m | 0 | 17d |
| Sovereign AI for Healthcare: GDPR, HIPAA, and the DGX Spark | 280.5 /250 | Infotainment | Durable | 1820 /1200 | , | ✓ | 90 | 1 | … | … | 9m | 2 | 17d |
| The Sovereign AI Stack in 2026: A Reference Architecture | 887.6 /250 | Infotainment | Durable | 5134 /1200 | , | ✓ | 215 | 1 | … | … | 26m | 4 | 16d |
| Sovereign Friend-Setup: When You Build A Sovereign-AI Box For Someone Else | 739.2 /250 | Infotainment | Durable | 4671 /1200 | , | ✓ | 47 | 1 | … | … | 23m | 0 | 11d |
| The Leaderboard Said 239 Tokens a Second. My DGX Spark Said 71. | 373.9 /250 | Infotainment | Durable | 2364 /1200 | 4 | ✓ | 26 | … | … | … | 12m | 3 | 5d |
| A Self-Hosted AI Blog That Serves Both Humans and Machines | 409.3 /300 | Strategy | Durable | 1376 /1200 | 12 | ✓ | 190 | 2 | … | … | 7m | 4 | 46d |
| From Blog to Agent Tools: How One Knowledge Base Powers Both Humans and AI | 307.3 /300 | Strategy | Durable | 1398 /1200 | 10 | ✓ | 44 | 2 | … | … | 7m | 6 | 47d |
| Running a 119B AI Model at Home: Who Actually Does This in 2026 | 381.2 /300 | Strategy | Durable | 1595 /1200 | , | ✓ | 44 | 3 | … | … | 8m | 3 | 48d |
| How Two Sovereign AI Personas Run Your Blog and Nostr Feed | 366.1 /300 | Strategy | Durable | 1261 /1200 | , | ✓ | 14 | 1 | … | … | 6m | 0 | 40d |
| My Backup Ran for Six Weeks Without Backing Anything Up | 450.2 /300 | Strategy | Durable | 1718 /1200 | 12 | ✓ 🎭 | 97 | 2 | … | … | 9m | 2 | 36d |
| Hands-on AI Coding Tools: Why I Kept Claude Code + Vibe and Dumped Cursor and Continue.dev | 432.2 /300 | Strategy | Durable | 1456 /1200 | 20 | ✓ | 57 | 2 | … | … | 7m | 0 | 49d |
| Content Quality in the AI Age: Where Our Scoring System Is Right, Wrong, and Missing | 388.9 /300 | Strategy | Durable | 1857 /1200 | 8 | ✓ | 67 | 2 | … | … | 9m | 0 | 51d |
| Hub Articles Protocol: How Three Reading-Paths Earn Their Homepage Slot | 332.7 /300 | Strategy | Durable | 1307 /1200 | , | ✓ | 165 | 1 | … | … | 7m | 0 | 40d |
| How to Read the Insights Dashboard for a DGX-Spark Business, Not a Hobby Blog | 557.3 /300 | Strategy | Durable | 3255 /1200 | 8 | ✓ 🎭 | 130 | 4 | … | … | 16m | 1 | 32d |
| I Gave My Blog a Search Box, and It Runs Through My Own MCP Server | 310.3 /300 | Strategy | Durable | 1422 /1200 | 6 | ✓ 🎭 | 217 | 2 | … | … | 7m | 2 | 36d |
| MCP Registry Distribution: Submission Plan & Tracking | 379.1 /300 | Strategy | Durable | 1319 /1200 | , | ✓ | 69 | 1 | … | … | 7m | 1 | 40d |
| Six Weeks Running Mistral Small 4 as a Production Tool: What I Actually Learned | 315.7 /300 | Strategy | Durable | 1411 /1200 | 10 | ✓ | 41 | 2 | … | … | 7m | 1 | 50d |
| Spark Arena Rank 4 Made Me Add Qwen3.6 to My DGX Spark | 1308.6 /300 | Strategy | Durable | 5858 /1200 | 2 | ✓ 🎭 | 134 | 4 | … | … | 29m | 22 | 32d |
| How to Auto-Post on Nostr Without Reading Like a Bot | 639.6 /300 | Strategy | Durable | 2742 /1200 | , | ✓ 🎭 | 53 | 4 | … | … | 14m | 12 | 31d |
| OpenClaw: What’s Still Missing for Full Usability | 461.8 /300 | Strategy | Durable | 1915 /1200 | , | ✓ | 99 | 1 | … | … | 10m | 2 | 40d |
| I Built a Web UI for Mobile Coding. Termux Won Anyway. | 387.2 /300 | Strategy | Durable | 1913 /1200 | 4 | ✓ 🎭 | 90 | … | … | … | 10m | 6 | 23d |
| Sovereign AI Grid: What's Working and What Comes Next | 597.8 /300 | Strategy | Durable | 2708 /1200 | 8 | ✓ | 111 | 2 | … | … | 14m | 4 | 45d |
| How Much Electricity Does Self-Hosted AI Actually Use? Lightbulbs, Bitcoin Miners, and Solar Panels | 378.2 /300 | Strategy | Durable | 1896 /1200 | , | ✓ | 37 | 1 | … | … | 9m | 8 | 39d |
| Voxtral Capped at 3/10: Picking the Next Open TTS | 646 /300 | Strategy | Durable | 3610 /1200 | , | ✓ 🎭 | 79 | … | … | … | 18m | 20 | 31d |
| TTS Spike Day 1: VibeVoice Sample Matrix on DGX Spark | 867.5 /300 | Strategy | Durable | 4530 /1200 | , | ✓ 🎭 | 24 | 1 | … | … | 23m | 6 | 30d |
| Building Per-Article Zap Tracking on Nostr, and Then Getting Zero Zaps | 340.4 /300 | Strategy | Durable | 1604 /1200 | , | ✓ | 17 | 1 | … | … | 8m | 6 | 40d |
| systemd Patterns for Self-Hosted AI Services | 270.7 /250 | Infotainment | Durable | 1298 /1200 | 14 | ✓ | 39 | 1 | … | … | 6m | 2 | 23d |
| Tailscale vs Headscale for Multi-Box Sovereign Stacks | 284.9 /250 | Infotainment | Durable | 1963 /1200 | 6 | ✓ | 82 | 1 | … | … | 10m | 0 | 22d |
| The Quality Gate That Rewards Fabrication: I Had Qwen and Mistral Write This Blog | 889.2 /300 | Strategy | Durable | 5058 /1200 | 18 | ✓ 🎭 | 116 | 1 | … | … | 25m | 1 | 25d |
| The Quiet Pattern Among Sovereign Engineers | 333.9 /250 | Infotainment | Durable | 2443 /1200 | , | ✓ 🎭 | 45 | 1 | … | … | 12m | 5 | 25d |
| Three Coding Leaderboards, Three Blind Spots: What HackerNoon and WhatLLM Don't Tell Self-Hosters | 753.5 /250 | Infotainment | Durable | 5538 /1200 | , | ✓ 🎭 | 76 | 5 | … | … | 28m | 25 | 23d |
| Tor Hidden Service for Sovereign AI: When and How | 490.2 /250 | Infotainment | Durable | 2099 /1200 | 10 | ✓ | 38 | 1 | … | … | 10m | 1 | 22d |
| Two Days From Localhost to Production: Building a Hybrid Sovereign AI Site | 310 /250 | Infotainment | Durable | 1352 /1200 | 2 | ✓ | 67 | 5 | … | … | 7m | 5 | 44d |
| Two Leaderboards Nobody Reads Together: Why arena.ai Doesn't Tell You About Self-Hosted AI | 483.6 /250 | Infotainment | Durable | 2796 /1200 | 2 | ✓ | 91 | 5 | … | … | 14m | 7 | 44d |
| Two Tailnets, One Shared Node: Sovereign Privacy For Family Sysadmin | 389.2 /250 | Infotainment | Durable | 2765 /1200 | 4 | ✓ | 11 | 1 | … | … | 14m | 1 | 11d |
| The Unified-Memory Inference Mental Model | 335.1 /250 | Infotainment | Durable | 1397 /1200 | , | ✓ | 71 | 1 | … | … | 7m | 0 | 24d |
| Coding Assistants on a Sovereign Stack: Claude Code, opencode, Aider, OpenClaw (and why Vibe got retired) | 378.5 /250 | Infotainment | Durable | 2340 /1200 | , | ✓ | 46 | 1 | … | … | 12m | 0 | 21d |
| vps-healthcheck: Twelve Daily Checks, One SSH Session, One Notification | 308.7 /250 | Infotainment | Durable | 1424 /1200 | 2 | ✓ | 9 | 1 | … | … | 7m | 4 | 2d |
| watchdocker: A Bash-Native Successor To Watchtower, Honestly Compared | 645.4 /250 | Infotainment | Durable | 4533 /1200 | 2 | ✓ | 27 | 1 | … | … | 23m | 3 | 11d |
| We Were Wrong About Local 8B Tool-Use (2026 Reality Check) | 426.6 /250 | Infotainment | Durable | 2919 /1200 | 8 | ✓ | 37 | 1 | … | … | 15m | 2 | 11d |
| What I'd Buy in 2026 for €15,000: A Pro-Studio Sovereign AI Build | 693.3 /250 | Infotainment | Durable | 2697 /1200 | , | ✓ | 105 | 1 | … | … | 13m | 17 | 19d |
| What I'd Buy in 2026 for €2,000: A Beginner Sovereign AI Build | 517.5 /250 | Infotainment | Durable | 1913 /1200 | , | ✓ | 78 | 1 | … | … | 10m | 10 | 19d |
| What I'd Buy in 2026 for €4,000: A Mid-Tier Sovereign AI Build | 709.6 /250 | Infotainment | Durable | 2058 /1200 | , | ✓ | 78 | 1 | … | … | 10m | 15 | 19d |
| What I'd Buy in 2026 for €8,000: A Premium Sovereign AI Build | 609.2 /250 | Infotainment | Durable | 2199 /1200 | , | ✓ | 109 | 1 | … | … | 11m | 8 | 19d |
| What 'Sovereign' Actually Means in 2026 (And What It Doesn't) | 419.4 /250 | Infotainment | Durable | 2858 /1200 | , | ✓ | 78 | 1 | … | … | 14m | 1 | 19d |
| Why Your Agent Should Have Its Own Wallet (L402 Explained) | 330.7 /250 | Infotainment | Durable | 2050 /1200 | 4 | ✓ | 39 | 1 | … | … | 10m | 1 | 18d |