A lightweight, multitenant content system for publishing simple website content without dragging in a full-scale CMS. Runs as a single Cloudflare Worker with a D1 database and an R2 media bucket.
Publish web content — pages and posts with author, category, and tags —
manage images and redirects, add workspace members, publish team profiles, and
serve everything to any website through a read-only public API authenticated with
kb_pub_… keys.
| Cloud | Self-hosted | |
|---|---|---|
| Hosting | Hosted by us — you pay & go | Your Cloudflare account, free |
| Setup | Sign up at fullbleed.basilpot.com | Self-hosting guide |
| Codebase | Identical | Identical |
- Multi-tenant workspaces with owner/editor roles and owner-created member accounts
- Pages and Posts content types with SEO metadata and cover media. Services are a type of page.
- Media library on object storage with public image URLs
- Team profiles — staff shown on your website (name, role, and optional photo, profession, qualification, description, license), in an order you set by dragging
- Public JSON API — published content, taxonomy, team profiles, redirect resolution, and site config via publishable API keys
- Platform admin panel for managing users across workspaces
- Custom-domain worker and media host;
workers.devworks too
Full user + developer docs are hosted at fullbleed.basilpot.com/docs:
Create a key in API Access, then:
curl -H "Authorization: Bearer kb_pub_YOUR_KEY" \
https://fullbleed.basilpot.com/api/v1/posts?limit=5{
"data": [ { "id": "…", "type": "post", "title": "…", "bodyHtml": "…" } ],
"meta": { "page": 1, "limit": 5, "total": 12 }
}Only published content is ever returned. See the Public API docs for every endpoint.
pnpm install
pnpm exec wrangler d1 migrations apply fullbleed --local # local dev DB
pnpm dev # dev server on http://localhost:3001
pnpm build # production build
pnpm start # run the built worker locallySee the self-hosting guide for full steps (D1, R2, migrations, custom domains). In short:
pnpm run deploy # not `pnpm deploy` — that's the pnpm built-inapp/— Next.js App Router UI (dashboard, docs site, auth pages)api/— the Hono API:/api/*for the dashboard,/api/v1/*for the public APIlib/— shared server logic (auth, sessions, media helpers, email)migrations/— D1 SQL migrationsdocs/— documentation source (markdown)
Developer architecture notes: docs/ARCHITECTURE.md.
Local development, self-hosting, and production deployment are covered in the Self-hosting guide. The short version:
git clone git@github.com:Basilpot/fullbleed-cms.git
cd fullbleed-cms
pnpm install
cp .dev.vars.example .dev.vars
pnpm exec wrangler d1 migrations apply fullbleed --local
pnpm dev # http://localhost:3001For your own Cloudflare deployment (D1, R2, custom domains), follow every step in the self-hosting guide.
This project is developed by Basilpot and is not accepting external contributions. Issues and feature requests are tracked internally. You are welcome to fork and self-host under the MIT license.