Skip to main content

Sigil

One deployment, many client sites — the platform the rest of this portfolio is built on

Built for the agency problem

An agency running twenty client sites on twenty WordPress installs maintains twenty of everything: twenty update cycles, twenty plugin sets, twenty security surfaces. Sigil inverts that. One deployment serves every tenant, and every request for a tenant's content is checked against the tenant on the caller's token before it reaches a route.

Content, sites, commerce, campaigns, bookings, membership and CRM all arrive as plugins on the same runtime, so adding a capability for one client does not mean standing up another system.

Where it stands: Sigil runs this website and several real client sites today. It has no paying customers yet and is not yet distributed as a package you can install yourself — we are running it on our own work and our clients' first.

What ships in the platform

45 plugins on one runtime

Content, commerce, email campaigns, booking, community, CRM, documents and developer tooling — all loading into a single API process with a shared event bus.

Isolation the database enforces

PostgreSQL row-level security on 92 of 94 tables, forced so it binds the application's own database role and not just other users — a query that forgets its tenant filter returns nothing rather than someone else's rows. Two tables used to sign you in are exempt by design. A request-scoped guard sits in front as a second layer.

32 content blocks

Hero, gallery, pricing, FAQ, feature grid, testimonial, product grid, booking calendar, timeline and more. The same React components render the admin preview, the public page and the email.

66 theme presets

Plus a token-based design system, so a client site is a theme and a content tree rather than a bespoke codebase to maintain forever.

Server-rendered public pages

The renderer returns real HTML with no hydration bundle — pages work with JavaScript off, and a crawler sees what a reader sees.

Email built from the same blocks

The campaigns plugin renders marketing email through the same block components as the website, with CSS inlining, tracking and a state-machine automation runner.

Running sites for other people?

Sigil is the platform we deliver client work on. If you maintain more websites than you would like to, get in touch.