Build Log

How Ambient Advantage was built, and is still being built. Architecture deep-dives, component notes, gotchas, and the conversations with Claude that got me here. Start with the architecture deep-dive below, or jump into a specific component.

Start here · The architecture

How I Built a Production AI System Without Writing the Code

I'm not an engineer, but over the last several weeks I built a production AI system in my spare time, with Claude Cowork as my code assistant. This is the story of how it came to be, and why I didn't start by sketching an architecture diagram.

Chiel Hendriks · 12 min read · May 1, 2026
#architecture #inaugural #decisions #claude #claude-cowork
Read the deep dive →

The system, by component

Each box on the architecture diagram has its own page. Click in to read everything I've written about that component: design choices, gotchas, things I'd do differently. Empty cards mean a post is on the way.

Compute

Compute

Cloud Run

The serverless compute that runs the daily pipeline. Scales to zero, costs nothing when idle.

0 posts Coming soon
Compute

Cloud Scheduler

Managed cron. Fires the morning trigger that wakes the pipeline.

0 posts Coming soon
Compute

Cloud Build

CI/CD. Watches the service repo, builds the container, deploys to Cloud Run on push.

0 posts Coming soon

State

State

Firestore

Two collections, no migrations. Tracks pipeline state and episode metadata.

0 posts Coming soon
State

Cloud Storage

Where the daily MP3 lives. Public-read URL feeds the podcast RSS enclosure.

0 posts Coming soon
State

Secret Manager

Where the API keys live. Mounted into the service at startup.

0 posts Coming soon

AI

AI

Anthropic API

Claude Sonnet for research with web_search; Claude Opus for writing, self-review, and the transcript.

0 posts Coming soon
AI

ElevenLabs

Two-voice text-to-speech that turns the transcript into a real-sounding podcast.

0 posts Coming soon
AI

Gemini

Visual generation: diagrams and banner images. Right tool for the pixel job, for now.

Distribution

Distribution

Gmail API

Drafts, sends, and labels live inside my own Gmail account. OAuth, no SMTP server.

0 posts Coming soon
Distribution

GitHub

Source of truth for the service code and all four content sites. Contents API for daily commits.

0 posts Coming soon
Distribution

Cloudflare Pages

Hosts the static sites. Watches GitHub, rebuilds within a minute of every commit.

0 posts Coming soon
Distribution

Beehiiv

Subscriber email delivery. Two publications: one for the daily briefing, one for Chiel's Take.

0 posts Coming soon