A working inventory of what's actually under the hood across these projects, grouped by role. The through-line: almost all of it is free-tier or near-zero cost — which is the whole point.
Static hosting with clean URLs; redeploys automatically on every GitHub commit — and runs Berkley's one Pages Function alongside the static files.
Serverless compute — the Bookshelf build bridge, the Poker app, and the Daily Brief engine all run as Workers.
Berkley's single deliberate exception to a static site — the /api/stock endpoint that reads, writes, and password-checks the stock map server-side.
The real-time WebSocket layer behind Poker's live chat, DMs, and notifications.
Shared key-value state — caches Poker's access-list off Airtable, and holds Berkley's per-sauce stock map so every visitor sees the same badges.
Holds Poker's ephemeral data — sessions, comments, DMs, notifications — never reservations.
Domain registrar for berkleypepperco.com, with nameservers pointed at Cloudflare so DNS, routing, and deploys all live in one place.
The editing surface: Bookshelf's library + enrichment + private notes, and the Daily Brief's task data + config-as-data settings table.
Poker's reservation system of record — players, games, RSVPs, capacity, and waitlist order.
System of record for deployed artifacts and assets — Bookshelf's books.json and cover images, the Berkley repo, and source for the apps.
Gives an AI agent direct read and write access to Notion — the difference between an AI that can talk about my notes and one that can file them.
Delegated, read-only, device-code access to a single mailbox — how seven years of sent mail was exported for measurement.
Recorder and speaker-labelled transcripts — plus the segment total that turns “the agent read the whole transcript” into arithmetic.
Transactional / branded email — Poker's magic links and notifications, the Daily Brief's report delivery, and Berkley's branded send from its own domain.
Email handoff for the Business of Accounting email gate, Berkley's “Get a bottle” lead capture, and this site's contact form.
Berkley's newsletter list for the footer signup — kept separate from the transactional sender so bulk blasts don't burn its quota.
Routes inbound mail at berkleypepperco.com straight to a personal inbox — no mail server to run.
Poker's app framework, adapted to run on Cloudflare Workers via the OpenNext adapter.
The scheduling heartbeat — drives the Daily Brief hourly, and does a minor cache refresh on Poker.
The Business of Accounting ships as one self-contained file — content, logic, and state in a single document.
Plain client-side JavaScript for interactivity — no framework where one isn't earned.
Data work rather than serving requests — corpus cleaning, statistical measurement and batch pipelines, re-run rather than rebuilt.
The pair behind all of it — schema design, code, content, and the build itself. The wink, made literal.
Where the program lives for things that are a prompt rather than a codebase — a persistent instruction set every conversation starts from.
Scheduled tasks that run a prompt unattended. It replaced a serverless worker I was about to write — and there was nothing to deploy.
One small toolbox. Eight real projects. About $0 a month in infrastructure to keep them all running.