The headless CMS that lives on the edge
Venda pairs a Nuxt admin with a Workers API, D1 for content, R2 for media, and KV for cache โ global by default, with nothing to run and nearly nothing to pay.
Flexible collections
Define collections and give each one a JSON schema. Entries store JSON, so your model can evolve without a migration every time.
Edge-fast delivery
Published content is served from public API routes and cached in KV, close to every reader on Cloudflare's network.
Media on R2
Upload images and files straight to R2 with no egress fees, served back through the API with the right content type.
Signed sessions
Admin access uses HMAC-signed, KV-backed cookie sessions โ and slots cleanly behind Cloudflare Access when you want SSO.
Clean content API
A small, predictable REST surface for collections, entries, and media. Drafts stay private; only published entries go public.
Workers AI ready
An optional Workers AI binding drops in for summaries, tags, or alt text โ without changing the content model.
From zero to published in four steps
The whole loop runs on the same edge platform.
Sign in
Log in to the admin with a signed session cookie.
Create a collection
Name it, give it a slug, and describe its shape.
Write entries
Author, edit, and publish JSON entries with live status.
Deliver
Read published content from the cached public API.
Nothing to provision. Nothing idling.
Venda is a Nuxt app and a Worker, backed by D1, R2, and KV. Deploy it to your own Cloudflare account and it scales to zero when no one is looking.
Launch the admin โ