A&C Meridian is the design studio I founded. This site is its public face plus the internal admin panel that powers it. Type-driven design, a bespoke hero animation, and a custom-built CMS — built from zero, held to the same standard I'd ship for any client.
A&C Meridian launched from zero. No template to start from, no leftover scaffolding to lean on. The studio's own site had to land at the same standard I'd hold a client build to, day one.
And because I'd be publishing case studies and shipping copy changes weekly, the project split naturally into two parts: the public marketing site, and the internal admin panel that powers it.
The site is designed in the studio's visual language: large serif italic display type, generous whitespace, a quiet grid, and a single hero motion piece that reveals the studio mark as a kinetic composition. Restrained on the outside, custom everything underneath.
Most agencies hand themselves a WordPress login and call it done. I wanted an admin that fit how I actually work and looked like part of the brand, not a tacked-on plugin. The marketing site's editorial type system carries straight into the admin: Fraunces italic display, mono labels, paper background, restrained motion. Logging in feels like the same studio.
Magic-link sign-in, dashboard of plain-English tiles ("edit the now-booking stamp, the slot-count text, and the studio tagline"), changes ship without touching source files or the deploy pipeline.
A studio site lives or dies on first-load impression. Hand-coded HTML loads instantly, ranks well, ships zero framework runtime. Only the journal post detail and the dynamic OG image generator run as Pages Functions. The admin gets vanilla HTML with per-page inline JS calling JSON endpoints. Total runtime dependencies in package.json: one.
Considered: Next.js app router everywhere, Astro, a React admin SPA
The audit pipeline opens a headless Chromium session and renders client sites. Pages Functions cap at 50ms CPU per request and can't bind the BROWSER service. A second Worker handles that workload on a daily cron and shares the same D1 + R2 by account-level binding. Two runtimes, one data layer, each tuned to its actual constraint.
Considered: One Pages Functions deploy doing everything, a third-party uptime/perf SaaS
Studio admin is a two-person allow-list. Magic-link gives 32-byte random tokens, SHA-256 hashed in D1, 15-minute expiry, single-use, then a __Host- prefixed cookie. A database leak does not expose live sessions. No password reset flow to build. No "which OAuth provider did I use last time?" tax.
Considered: Password auth + bcrypt, OAuth (Google / Apple), Clerk
A&C Meridian now has a marketing site that reads like work the studio would ship for any client, and an admin that lets me publish without leaving the brand. No developer in the loop on my own studio's website, no third-party CMS bill, no template fighting the brand.
The studio site is no longer the orphan. It's the first piece of work prospects see, and it stands up next to everything else in the portfolio.