One server. Infinite leverage.
A mostly-autonomous AI newsletter pipeline, running on efficient, self-hosted infrastructure. Video (Shorts, long-form, Reels) is in development, not live yet. Here's every layer of the stack.
The pipeline, end to end.
Every issue goes through eight deterministic stages. Human touches: one review gate via Telegram.
Overfitted
Mon / Wed / Fri · 1:30pm ISTThe Long Game
Sundays (currently paused); essays so far published by handRight model. Right stage. Right cost.
Model selection is a deliberate engineering decision at every stage, not just "use the best model for everything."
DeepSeek V3 (deepseek-chat)
Via OpenRouter. Primary writing model for the Overfitted newsletter, pinned as a deliberate cost-performance decision and gated through hallucination-scan, fact-validation, and consensus-check stages before publish.
OpenRouter fallback chain
If the primary writing call is unavailable, the pipeline falls back to secondary OpenRouter models so a run degrades gracefully instead of failing outright.
Independent judge model (OpenRouter)
A second, different model family reviews the draft independently before it's allowed to publish, deliberately not the same model as the writer, for a genuine second opinion.
sentence-transformers
all-MiniLM-L6-v2 generates embeddings for every article ingested, stored in Qdrant, to reject near-duplicate topics across pipeline runs.
Scheduled via Hermes cron. All active.
Both newsletter pipelines run on Hermes's own cron scheduler, plus an always-on personal-assistant agent.
Hostinger KVM2. Ubuntu. Nginx. That's it.
No Kubernetes. No multi-region. No managed services. A single VPS running lean.
Design decisions
- Shared Python venv for both newsletter pipelines: single dependency surface
- All API credentials in one file, symlinked across profiles: one edit on renewal
- Qdrant runs as a native binary under a user systemd service: no container overhead
- Hermes cron drives both pipelines: no external orchestration needed
- Telegram as the human interface: no dashboard logins, no email checks, one chat handles everything
A handful of external APIs. Mostly automated.
The pipeline runs unattended end to end; a human reviews the draft before it publishes to Substack.
Static. Fast. Intentionally cinematic.
Astro generates static HTML at build time. React only hydrates where interactivity is needed. Zero unnecessary JavaScript in the critical path.
Not live yet.
YouTube Shorts, Instagram Reels, and an automated thumbnail generator are being built (rendering tooling, TTS, and asset pipeline exist), but there's no live upload integration yet. Nothing below is currently shipping.
Efficient, self-hosted infrastructure.
Media empire included.
This is not a demo. This is a live production system. Every newsletter in your inbox was written, fact-checked, and delivered by this stack.