VCPH OS: the AI newsroom that has published a daily Philippine tech drop for 120+ issues without me

A build log of VCPH OS, the automated pipeline behind the Vibe Coders PH Daily Drop: 50+ feeds in, five stories scored and rewritten in a Pinoy-aware voice, a generated cover, a QA pass, then Discord, Telegram and Facebook. What it costs and what broke.

By
Viron Gil Estrada
Published
Updated
Read
8 min

Every morning at 9 AM Manila time, the Vibe Coders PH community gets a Daily Drop: five AI and tech stories, rewritten in a voice that knows what a Filipino builder cares about, with a magazine cover, posted to Discord, Telegram and Facebook. I have not touched a single issue by hand. By 17 August 2026 the pipeline had shipped issue 121.

This is the build log for VCPH OS, the system behind it: what it does, what it costs, what broke, and what I would do differently.

The problem

I wanted a daily AI news roundup for the community. The options were curating it by hand every morning, paying for a newsletter service with no Filipino context, or an RSS-to-email tool with no editorial voice. None fit, so I built one.

What the pipeline does

Six stages run in sequence every morning.

  1. Collect. Fetch from more than 50 sources (the feed registry is at 53 as of August 2026): first-party labs such as OpenAI, Anthropic, Google DeepMind and Hugging Face; builder feeds such as Simon Willison and the GitHub AI blog; Philippine tech outlets such as YugaTech, BitPinas, Inquirer Tech, DOST-ASTI and PhilSA; global media; and a self-hosted RSSHub for sources without clean feeds, including arXiv cs.AI and cs.CL, Techmeme and Hacker News.
  2. Score and select. Each story gets a priority score. A model launch is worth plus 60, a frontier-lab mention plus 15, pure business news minus 20, with source and recency adjustments. Selection enforces diversity: two international AI stories, two Philippine tech stories, one workforce story, at most one story per source, and no repeats against a 21-day history in SQLite at a 0.86 similarity threshold. On a thin day it relaxes source diversity rather than ship a short issue.
  3. Rewrite. The five stories are rewritten into the VCPH voice by DeepSeek V4 Flash, which also produces the cover subject, the cover line, pull quotes and an editorial brief. A "Take ko" opinion line was added later so every issue carries one stated point of view.
  4. Cover. One magazine-style cover, generated in a single shot by gpt-image-2 at 1536 by 2304, from a prompt with brand constraints (cream palette, one magenta accent, no neon, no fake UI) and a rotating library of more than 20 art styles.
  5. QA. A vision model checks the cover for wrong masthead colours, gibberish text, illegible headlines and broken anatomy. A hard gate on the text content remains.
  6. Deliver. A rich embed to Discord, a photo post to Telegram, and a Facebook post with a source-links comment. The X slot was retired when the API cost stopped making sense.

The orchestrator is Hermes Agent, running on a small VPS around the clock. Data lives in Python and SQLite. End to end, an issue takes about five minutes.

What it costs

The text stages are close to free: the voice rewrite runs between a fraction of a cent and about half a cent per issue. The cover is the dominant cost at roughly USD 0.19 per issue, and it used to be three times that when failed covers were regenerated. QA on Gemini 2.5 Flash costs pennies. If I had built the rewrite on a frontier model the run would cost dollars, not cents, and a free community drop would not survive that.

What broke

The QA judge hallucinated. For eight days the poster was withheld because the vision judge, then gpt-4.1-nano, reported failures such as wrong masthead colours and unrecognisable stories on covers that were fine. Pixel sampling and an independent vision review confirmed the covers were good. The fix was structural: visual QA is now advisory. Its verdicts are logged and archived, but the poster ships. The judge was swapped to Gemini 2.5 Flash, and the QA parser was fixed to handle its list-shaped error responses. The lesson is that a gate you cannot audit is a gate that will eventually block good work.

The archive came too late. Deduplication against history arrived after the first week. Design for history from day one.

Scoring and selection are one function. They should be two, so the ranking can be tuned without touching the diversity rules.

What I would tell someone building one

  • Define the editorial rules yourself: the scoring, the diversity constraints, the voice. The model executes; it does not decide what matters.
  • Put the expensive step last and make it optional. The cover is the only stage that costs real money and the only one that should be allowed to fail softly.
  • Log every verdict, every delivery receipt, every cost. When something is wrong at 9 AM you need to know which stage lied.