BoringForms
Headless CMS for agencies

Ship clients.
Not backend code.

BoringForms handles the API, the database, the admin dashboard, and the forms — so you can focus on the work your clients actually pay for. Everything for €15 per month.

api.js
// One line to fetch any tenant's data
const response = await fetch(
  "https://api.boringforms.com/public/entries",
  {
    headers: {
      "X-Tenant-ID": "acme-corp"
    }
  }
);

const { entries } = await response.json();

// → Your client's data. Isolated. Instant.
// → entries[0] = { id: 'e_7xk2m', entity: 'products', data: {...} }
200 OK  ·  38ms  ·  Cloudflare Edge
9+
Active tenants
100%
Data isolation
<50ms
p99 latency
€15
Per month, all in
Everything included

The boring stuff, handled

Every feature you need to ship production-ready client sites — none of the infrastructure you have to maintain.

Database-level isolation

Every tenant gets their own Turso database. No shared tables, no row-level policies, no leakage. Complete isolation guaranteed — even from us.

acme-corp
isolated db
beta-llc
isolated db
gamma-co
isolated db

Schema-less by default

Store any JSON structure without predefined migrations. Add fields any time without downtime. Define optional schemas when you need validation.

Admin dashboard included

Full CRUD interface out of the box. Your clients manage their own content without calling you. Role-based access — super admin, admin, viewer.

Edge-native API

Built on Cloudflare Workers. Sub-50ms globally. No cold starts, no containers, no ops. Your API is live in every region automatically.

FRA
IAD
SIN
SYD
GRU

Asset management

Cloudflare R2 object storage included. Upload images, PDFs, documents. Serve directly from the CDN. No additional storage bill.

Contact forms, done

reCAPTCHA-protected forms with email delivery included. Drop in the endpoint and ship. No third-party form service needed.

POST/mail/contact200 OK
name: "Jane Smith"
email: "jane@example.com"
recaptcha: ✓ verified
Three steps

Up and running in minutes

No DevOps, no infrastructure setup, no surprises. Just create, connect, and ship.

1

Create a tenant

Add your new client through the admin panel. BoringForms provisions an isolated Turso database, assigns a subdomain, and configures access control — all in seconds.

POST /tenants → { id: 'acme-corp', status: 'active' }
2

Connect your frontend

Point your Next.js (or any framework) site at the public API. Pass the tenant ID in the header. Public reads require no auth — your pages are fast and cacheable at the edge.

X-Tenant-ID: acme-corp → entries returned in <50ms
3

Deploy and ship

Export your static site and deploy to Cloudflare Pages. Zero cold starts, global CDN, custom domains. Your client gets a link and logs into their admin dashboard.

npx wrangler pages deploy ./out → live in 30s
Simple pricing

The most boring decision
you'll make all year

One plan. Everything included. No usage limits, no hidden fees, no infrastructure to manage.

Per tenant · Monthly
€15
+ VAT
per month

Everything included

  • Dedicated Turso database per tenant
  • Unlimited entries & entity types
  • Built-in admin dashboard
  • Contact forms with reCAPTCHA
  • Asset management via Cloudflare R2
  • Public & protected REST API
  • Edge deployment on Cloudflare Workers
  • Role-based access (admin, viewer)
  • Supabase auth integration
  • Schema definitions & validation
Get started

Cancel any time · No setup fee · VAT applies to EU customers

Is pricing per tenant or per seat?
Per tenant. Each of your clients is one tenant and costs €15/month. Add as many team members as you need.
What happens to my data if I cancel?
You can export everything before cancelling. We'll hold the data for 30 days after cancellation before deletion.
Do I need to manage any infrastructure?
No. Databases, the API, and the admin dashboard are all managed by us. You focus on the frontend.
Can I white-label it for clients?
Yes. The API, admin dashboard, and tenant apps support custom domains. Your branding, our infrastructure.

Ready to stop reinventing
the backend?

Your next client deserves a proper backend. Not a weekend of setting up databases, admin panels, and form endpoints.

No commitment · Setup takes minutes · Cancel any time