A lightweight headless CMS built for developers. Let clients update content safely. No rebuilds, no broken layouts, no support tickets.
No credit card required • One site free per account • Set up in minutes

A field and a Save button. Nothing is live until it's published.
From your first fetch call to a client managing their own content.
Set up a project for your website. Define which content can be edited.
Drop one fetch() into your site. Works with React, Vue, Angular, or any framework.
Invite your client as an editor. They publish their own copy and the site picks it up on the next fetch. No redeploy, no ticket.
Not a video, not a sandbox screenshot. Two live sites and the CMS behind them: one you own, one you write for. Change a headline, watch it land, then send a rewrite to someone else's site for sign-off.
One click puts you in a workspace with two real projects: Riverside Studio, which you own, and Fieldstone Bakery, where Sam owns the site and you write the copy.
Open the hero-title asset, press Edit this content, change the words. Preview the draft on the live site, then publish. Every version is kept, so nothing can break.
Riverside Studio picks up the new copy on its next fetch. No build, no deploy, no developer. Then try the bakery: your rewrite came back with a note, and Sam decides what goes live.
No SDKs. No schemas. No GraphQL. Just fetch your content.
const res = await fetch("https://api.duggiecms.com/v1/content", {
headers: { "x-api-key": "YOUR_CLIENT_KEY" }
});
const { assets } = await res.json();{
"assets": {
"hero-title": "Welcome to Our Site",
"hero-subtitle": "Built with Duggie CMS",
"cta-button": "Get Started",
"hero-image": {
"original": "https://cdn.duggiecms.com/.../hero.jpg",
"large": "https://cdn.duggiecms.com/.../large/hero.jpg",
"meta": { "width": 2400, "height": 1600 }
}
}
}What you get out of it, and what your client gets out of it.
Published content is live on the next API response. No build step, no pipeline.
Clients publish their own copy. The 6pm "can you change one word" email stops.
A GET with an API key returns JSON. React, Vue, Angular, or vanilla Javascript.
Mark assets editable per project. Everything else stays read-only to the client.
Preview tokens render drafts on your live site. There's no second environment to maintain.
Five asset types and one Save button. No tutorial, no admin-panel tour.
They edit content, not code or layout. The design you shipped stays the design.
Drafts render on the real site behind a short-lived token. Nothing is public until they publish.
Every publish is a version. Restore a previous one without calling you.
Editors submit for review; admins approve or reject with a note the editor sees.
The dependency question every freelancer gets asked, answered in the product instead of the contract.
They can hold the account and pay for it directly. You don't have to carry their subscription on your card.
You build it; they invite you as their developer. Admin access, per project, revocable by either side.
Hand a project to any member when the engagement ends. No downtime, no key rotation. The previous owner stays on as an Admin.
No lock-in, and you can check: export your full activity log as JSON or CSV any time, and transfer ownership whenever either side wants to. What happens to your content if a client leaves, or we do
Most CMS platforms weren't built with the developer-client handoff in mind. Duggie was.
| Other CMS Tools | Duggie CMS | |
|---|---|---|
| Content Updates | Redeploy or developer edit. | Instant via Content API. |
| Ownership | Sits with whoever built it. | Transfer the website in one click. |
| User Interface | Built for developers or admins, often steep learning curve. | Simple and focused. Built for non-technical users. |
| Integration | Theme system, SDK, or GraphQL schema. | One GET returns flat JSON. |
| Content Preview | Separate staging environment required. | Short-lived token allows exclusive draft viewing on your real site. |
| Approval Workflow | Enterprise tiers, or plugins | Built in. Optional per asset. |
| Version history | Higher tiers or plugins. | Every publish is restorable. |
| API Requests | Often metered, with overages. | Unlimited on paid projects. |
| Pricing Model | Per seat, tier or usage. | Per project. No per-seat charge. |
| Developer Workload | On call for content changes. | Hands-off after handoff. |
The content you just read (features, comparisons, steps) is served live from our own API. No hardcoded copy. No redeploys to update it. Just one fetch call, exactly like the one above.
Other CMS platforms charge hundreds of dollars a month before you hit meaningful limits. Duggie is built for freelancers.
One client site, free
$0/month
As your client roster grows
$19/month first project
Founding rate, locked for as long as your subscription stays active.
Each additional project $29/month. Full pricing
No credit card required to start. Cancel or upgrade any time.
What if a client stops paying? Their site keeps serving on the free limits. What if Duggie shuts down? 90 days' notice, in the contract, and your content is one API call away. How that works
Build once, hand off, stay hands-off