Blog archive
All 100 posts, newest first.
July 2026
June 2026
- The State of Self-Hosting in 2026Jun 30, 2026
- Benchmarking Local LLMs Without Fooling YourselfJun 27, 2026
- Updating Containers Without Starting FiresJun 24, 2026
- Getting 50,000 Pages Crawled: Crawl Budget in PracticeJun 21, 2026
- A Realistic AI Pair-Programming WorkflowJun 19, 2026
- Postgres for Everything: One Database to Back Your HomelabJun 16, 2026
- DNS for Self-Hosters: Records, TTLs, and Split-HorizonJun 13, 2026
- Local AI and Privacy: What Actually Stays on Your MachineJun 10, 2026
- Self-Hosted Status Pages That Calm People DownJun 7, 2026
- SEO Split-Testing on a Static SiteJun 5, 2026
- Open-Weight Models in 2026: What's Actually UsableJun 2, 2026
May 2026
- SSO for Your Homelab: Authentik vs AutheliaMay 30, 2026
- IPv6 in the Homelab: Finally Worth It?May 27, 2026
- Batch vs Real-Time Inference: Two Different SystemsMay 25, 2026
- Duplicate Content: Diagnosis Before MedicineMay 22, 2026
- Choosing a Vector Database: pgvector Until It HurtsMay 19, 2026
- A Complete Self-Hosted AI Stack: Ollama, Open WebUI, WhisperMay 16, 2026
- Nextcloud vs Syncthing: Different Tools, Same AnxietyMay 13, 2026
- Link Building for Developer Tools: What Works in 2026May 11, 2026
- Shipping AI Features Behind FlagsMay 8, 2026
- Off-Lease Enterprise Hardware: A Buyer's Field GuideMay 5, 2026
- Distillation: 80% of the Quality at 5% of the CostMay 2, 2026
April 2026
- Immich vs PhotoPrism: The 2026 VerdictApr 30, 2026
- Measuring SEO With Self-Hosted AnalyticsApr 27, 2026
- Synthetic Data That Doesn't Collapse Your ModelApr 24, 2026
- Ditching Google Analytics: Plausible, Umami, or MatomoApr 21, 2026
- Self-Hosted vs SaaS: Honest Total-Cost-of-Ownership MathApr 18, 2026
- LLM Cost Engineering: Treat Tokens Like a Budget LineApr 16, 2026
- Proxmox, Docker, or Both? Picking Your Virtualisation LayerApr 13, 2026
- Meta Descriptions in the AI-Snippet EraApr 10, 2026
- Prompt Injection: Threat Model and Practical MitigationsApr 7, 2026
- Raspberry Pi vs Used Mini PC: Where to Run Your HomelabApr 5, 2026
- Cloud Repatriation: When Moving Back On-Prem PaysApr 2, 2026
March 2026
- Latency Budgets for AI UX: Streaming, Prefetch, FallbacksMar 30, 2026
- Site Migrations Without Losing Rankings: A Field ChecklistMar 27, 2026
- Multimodal Pipelines: OCR, Vision, and Audio in One StackMar 24, 2026
- Your Own Spotify: Navidrome and the Subsonic EcosystemMar 22, 2026
- RSS Isn't Dead: FreshRSS, Miniflux, and Reclaiming Your FeedMar 19, 2026
- Canonical URLs: Eight Edge Cases That BiteMar 16, 2026
- AI Code Review: Where It Helps, Where It LiesMar 13, 2026
- Own Your Data: The Export-Everything HabitMar 11, 2026
- VRAM Math: What Actually Fits on Your GPUMar 8, 2026
- The *arr Stack Explained Like You're New HereMar 5, 2026
- Content Freshness: What dateModified Actually DoesMar 2, 2026
February 2026
- Building an MCP Server: Field NotesFeb 27, 2026
- Notes You Own: Joplin, Trilium, and Obsidian Sync AlternativesFeb 25, 2026
- Who Pays for Open Source? Sustainability Behind Your StackFeb 22, 2026
- Model Routing: Send Small Models FirstFeb 19, 2026
- Going Paperless With Paperless-ngxFeb 16, 2026
- Anatomy of a Comparison Page That RanksFeb 14, 2026
- Local-First AI Apps: Patterns and PitfallsFeb 11, 2026
- Self-Hosted Git: Gitea, Forgejo, or GitLab?Feb 8, 2026
- AGPL, MIT, BSL: Licences Explained for Self-HostersFeb 5, 2026
- LoRA Fine-Tuning on a Consumer GPUFeb 2, 2026
January 2026
- Long-Tail Keyword Research With Zero BudgetJan 31, 2026
- Tracing and Observability for LLM AppsJan 28, 2026
- Remote Access Three Ways: WireGuard, Tailscale, Cloudflare TunnelJan 25, 2026
- Network-Wide Ad Blocking: Pi-hole vs AdGuard HomeJan 22, 2026
- Robots.txt for AI Crawlers: Block, Allow, or Negotiate?Jan 20, 2026
- Context Window Management: Budgeting, Caching, CompactionJan 17, 2026
- TLS Everywhere: Let's Encrypt Done RightJan 14, 2026
- Prompt Caching: The Cheapest Optimisation You're Not UsingJan 11, 2026
- Monitoring Your Homelab: From Uptime Kuma to Full ObservabilityJan 8, 2026
- GEO: How to Get Cited by ChatGPT, Perplexity, and AI OverviewsJan 6, 2026
- Embeddings Search: From Cosine Demo to ProductionJan 3, 2026
December 2025
- The 3-2-1 Backup Strategy for Self-HostersDec 31, 2025
- Fail2ban vs CrowdSec: Modern Brute-Force DefenceDec 28, 2025
- vLLM vs llama.cpp: Pick by Workload, Not by HypeDec 26, 2025
- Self-Hosted Email: An Honest AssessmentDec 23, 2025
- Core Web Vitals on Static Sites: Winning the Last 10%Dec 20, 2025
- Structured Output From LLMs: Schemas, Grammars, RetriesDec 17, 2025
- Home Assistant: Your First Month, MappedDec 14, 2025
- Container Security: The 20% That Stops 80% of AttacksDec 12, 2025
- Ollama Beyond the Laptop: Serving Models ProperlyDec 9, 2025
- XML Sitemaps Past 50,000 URLs: Sharding Without TearsDec 6, 2025
- Agent Architectures in 2026: Loops, Graphs, and HandoffsDec 3, 2025
- Self-Hosting Your Passwords With VaultwardenDec 1, 2025
November 2025
- Making Nextcloud Fast: A Performance Tuning GuideNov 28, 2025
- JSON-LD That Actually Moves the Needle (and the Schema That Doesn't)Nov 25, 2025
- Evals Before Vibes: Testing LLM Apps ProperlyNov 22, 2025
- Threat Modelling for Normal PeopleNov 19, 2025
- Hardware for Self-Hosted LLMs: From 8GB Laptops to 80GB RigsNov 17, 2025
- Jellyfin: The Complete Setup GuideNov 14, 2025
- Internal Linking at Scale: An Architecture That CompoundsNov 11, 2025
- Prompt Engineering Is Just EngineeringNov 8, 2025
- Leaving Google Photos: Immich in PracticeNov 6, 2025
- De-Googling in 2026: A Practical Migration MapNov 3, 2025
October 2025
- Quantisation Explained: GGUF, AWQ, and What You Actually LoseOct 31, 2025
- Caddy vs Nginx vs Traefik: Choosing Your Reverse ProxyOct 28, 2025
- Thin Content at Scale: Why Google Ignores 40,000 of Your PagesOct 25, 2025
- Tool Calling Patterns That Don't Fall Apart in ProductionOct 23, 2025
- Docker Compose Patterns for a Sane HomelabOct 20, 2025
- What Your Homelab Really Costs in ElectricityOct 17, 2025
- LLM Inference Optimisation: Batching, KV Cache, Speculative DecodingOct 14, 2025
- Programmatic SEO in 2026: The Complete PlaybookOct 12, 2025
- RAG vs Fine-Tuning: When Each Actually WinsOct 9, 2025
- Self-Hosting 101: Your First Server, Start to FinishOct 6, 2025