In-house product · CMS

The CMS behind every site we build.

We were tired of handing clients either a developer's phone number or an admin panel that looks nothing like their site. So we built Inlay, an inline CMS for Cloudflare Workers. When you sign in, your live website becomes the editor.

Inlay logo
Type
In-house product
We built
CMS core, editor, scaffolder
Runs on
Cloudflare Workers
Product site
tryinlay.com (opens in a new tab)
Written by
Andrew Byrd, founder
The problem

Custom sites usually make clients pick between two bad options.

With a custom site, every typo fix becomes a developer invoice. With a page builder, the site looks like a template and edits happen in a back end that looks nothing like the real page.

We wanted clients to get a fully custom site and still be able to edit it themselves, on the page. Nothing on the market did both on the stack we build on, so we built it.

How it works

Six decisions that shaped it.

The page is the editor

No dashboard to learn.

Editors sign in at /login on any site and click the real page to change it. Visitors never load the editor, so it can't slow the site down.

Markup is the config

The page describes itself.

Inlay reads the live page to decide what's editable. Developers write ordinary HTML, and the editing experience follows from the page itself.

One core, thin sites

Update every site with a version bump.

A client site holds only its own config, schemas, and plugins, and none of Inlay's core code. Shipping an Inlay update to every site takes a single version bump, with no merge conflicts.

Swappable services

Every service sits behind an adapter.

Sign-in runs on Clerk, content lives in GitHub, media in R2, and email goes through Resend. Each sits behind an adapter, so any of them can be swapped out.

Drafts by default

Nothing goes live by accident.

Every edit saves as a shared draft first, attributed to whoever made it. Preview the page on desktop, tablet, or mobile, then publish.

Built to extend

Collections, schemas, and plugins.

Posts, menus, events, and listings are typed collections. Plugins add hooks and middleware for site-specific needs, like Open Pattern's whole back office.


In production

From café menus to aircraft listings.

Inlay ships on every website we build. On a café site, it runs the menu and events. On Open Pattern, it's the foundation for a full aircraft brokerage, with listings as collections and the seller platform and back office built as plugins on top.

It's also the clearest example of how we work. We build our own tools, use them every day, and bring the same engineering to client projects.

TypeScriptCloudflare WorkersR2ClerkGitHubResendnpm package
See it live

Try the real editor.

Our websites page has a live demo running the real Inlay editor. Edit text, swap photos, and open the content manager.

Let's talk

Want something like this for your business?

Tell us what you're trying to build. We'll show you how we'd approach it.