Case study · platform engineering
The platform behind McCluster Corp
2025 to present · designed and operated by Matthew McCluster · public source
Since 2025 Matthew McCluster has designed and operated the platform that runs McCluster Corp: this website, accounts, payments, the music catalogue, first-party analytics, the Equity Uprise and the sites the studio builds for clients. It is a PostgreSQL database on Supabase with row-level security, an API on Cloudflare Workers, Linux services on a dedicated server, Stripe for payments, and a GitHub Actions pipeline that ships each piece, checks that the right version is live, and restores the previous one when a check fails. The source is public at github.com/mcclusterishere/mccluster.
- Role
- Founder; sets the architecture and operates production
- When
- 2025 to present
- Stack
- PostgreSQL (Supabase), Deno Edge Functions, Cloudflare Workers and Durable Objects, GitHub Pages, GitHub Actions, Linux (systemd), Stripe
- Evidence
- Public repository · live health endpoint, which reports the commit it is running
How it is put together
| Layer | What it does | Source |
|---|---|---|
| Public site | Static HTML, CSS and JavaScript on GitHub Pages at matthew.mccluster.org | deploy-pages.yml |
| API | A Cloudflare Worker at api.mccluster.org with Durable Objects and a five-minute cron | workers/mccluster |
| Database | PostgreSQL on Supabase: more than 200 SQL migrations and more than 100 row-level security policies | supabase/migrations |
| Server-side functions | More than 50 Deno Edge Functions for the jobs that hold a secret: checkout, payouts, the analytics collector, integrations | supabase/functions |
| Persistent execution | A Linux server running the Core job runner, a tool broker and scheduled jobs as systemd services and timers | core |
| CI/CD | More than twenty GitHub Actions workflows and more than 100 test files | .github/workflows |
Data and access control
The database is the API for most reads, so the access rules live in the database rather than in application code: row-level security policies decide what each signed-in user, and the anonymous public, can read or write, on every query. Schema changes are numbered SQL migrations, and the money and rate-limit paths have SQL regression tests that CI runs against a throwaway PostgreSQL instance on pull requests (supabase/tests).
Releases that check themselves
The API deploy (deploy-mccluster-worker.yml) runs in stages:
- Record the traffic allocation currently serving, so it can be put back exactly.
- Upload the new version without giving it traffic, tagged with the commit it was built from, using a version-pinned toolchain.
- Refuse to continue if somebody else deployed in the meantime.
- Promote the new version, then verify that the public health endpoint reports that exact commit, and run the post-deploy contract checks.
- Restore the recorded allocation automatically if any check fails. The rollback step runs last, after every verification, so a failure in the final check is still caught.
The static site has its own guard: before publishing, the Pages workflow strips internal folders out of the published tree and fails the publish if a supplier's name or a cost figure appears in a public file. A Playwright smoke suite walks the key pages at phone and desktop widths (390 and 1280 pixels) and fails on any page error (scripts/smoke.mjs).
Linux operations
The Core server runs its work as systemd services and timers (core/systemd). Its jobs come from a queue in the database; the runner claims only job types it knows how to execute, heartbeats while working, retries with backoff, and writes results back to the same row. Privilege is split between Unix identities: the service that edits code in disposable working copies holds no production credentials, is limited to loopback networking, and sees the repository read-only, while a separate identity inspects the diff and can only open a draft pull request. Nothing on that path merges or deploys (core/README.md).
Analytics without a third party
The site's analytics are its own: an Edge Function collector that writes to the platform's own table in place of Google Analytics. It honours Global Privacy Control and Do Not Track by dropping anything that could identify the visitor before the row is built, marks crawlers rather than counting them as people, and records nothing at all until a visitor has acknowledged the privacy notice (collect/index.ts).
Payments and client accounts
Payments run through Stripe Checkout and Stripe Connect from server-side functions, so card handling and secret keys never touch the browser. The same platform carries a multi-tenant vehicle-rental operator console for Whip Equipped: operators sign in, add vehicles to their inventory and connect their own Stripe account (workers/mccluster/src/whip).
A deterministic 3D build
The Equity Uprise building model is generated, not hand-drawn: Python build scripts produce the glTF models and a machine-checked report for each level, and the Pages workflow refuses to publish if the verification contract does not pass. The model is schematic and not for construction.
How it is built
Much of the code is written with AI coding agents (Claude, Codex and others) working under rules Matthew wrote for them, in AGENTS.md, and checked by the CI contracts above. He sets the architecture, decides what ships, and runs production. The rules are specific: one canonical API, one database, no second backend in a product repository, named infrastructure only, and continuous integration that never pushes onto an open pull request.
Skills this demonstrates
- Databases: PostgreSQL schema design, row-level security, SQL migrations and regression tests.
- APIs and serverless: Cloudflare Workers and Durable Objects, Supabase Edge Functions, REST.
- Linux: systemd services and timers, least-privilege service identities, loopback-only services.
- Release engineering: GitHub Actions, staged deploys with commit verification and automatic rollback, version-pinned tooling, Playwright smoke tests.
- Payments: Stripe Checkout and Connect.
- Privacy engineering: first-party analytics that honour GPC and Do Not Track.
- Working with AI agents: written architecture rules and CI contracts that keep agent-written code inside them.
Role fit
The titles this work is evidence for: Platform and Backend Engineer, Backend Developer, PostgreSQL Developer, REST API Developer, Systems Operations Specialist and Technical Operations Specialist. These are role-fit terms for search and applicant tracking, not job titles he has held. The role and evidence map lists every title with the evidence behind it.
Related
- IT, infrastructure & platform engineering: roles and skills, with sources.
- Data-center buildout at IPC Systems, 2021 to 2023.
- Services: websites and hosting built on this platform.
Published October 2, 2026 by Matthew McCluster ·
IT & engineering ·
Newsroom
© 2026 Matthew McCluster · McCluster Corp.