Your model. Your way.
Define fields and relationships. Your content model becomes an editor that fits your team.
Shape your content- Title
- Text
- Story
- Markdown
- Author
- Reference
Illustrative model
A hosted content studio for creators and developers. Shape your content, bring your team, and build with the frontend you love.
REST GraphQL JSON-RPC One source. Any frontend.
Build content types with text, dates, choices, Markdown, media and relationships. Your editor follows your model.
Explore the studio
Keep drafts private, preview saved changes on your connected website, then publish deliberately. Reviews and schedules are optional.
Explore the studio
Organize published entries, then read the same snapshots through REST, GraphQL, JSON-RPC or the client. Your frontend stays yours.
Connect your frontend
From the first field to the latest publication, give your content a place to grow.
Define fields and relationships. Your content model becomes an editor that fits your team.
Shape your contentIllustrative model
Keep drafts private, invite a review and choose when your work goes live.
Reviews and schedules are optional.
Explore publishingTranslate one entry and publish each language deliberately. Shared content stays connected.
A fresh perspective.EN
Una nueva perspectiva.ES
Uma nova perspectiva.PT
One content source. REST, GraphQL, JSON-RPC or a typed client. Build with the tools you already love.
Connect your applicationconst articles = await cms
.content("article")
.list({ pageSize: 6 })
Illustrative query after configuration
Organize images and files in folders, add useful metadata and publish when they're ready.
Meet your media library
Illustrative library
Link entries across content types. Reuse an author or category instead of copying it into every article.
Build connected contentIllustrative relationships
Compare saved revisions and restore earlier work to a new draft. Publishing stays a separate choice.
Explore entry historyIllustrative entry history
Define choices and show fields when sibling values match. Hidden values stay saved, ready when you need them.
Make the editor yoursIllustrative field configuration
A good structure gives your ideas somewhere to go. Lemonade keeps the moving parts together, so your team can focus on the content.
Meet your workspaceBuild content types with text, dates, choices, Markdown, media and relationships. Your editor follows your model.
Explore the studio
Keep drafts private, preview saved changes on your connected website, then publish deliberately. Reviews and schedules are optional.
Explore the studio
Organize published entries, then read the same snapshots through REST, GraphQL, JSON-RPC or the client. Your frontend stays yours.
Connect your frontend
Keep the framework you love. Read the same content through REST, typed GraphQL, JSON-RPC or our JavaScript SDK.
// Your models. A familiar way to fetch them.
import { createCMSClient } from "@lemonadecms/client"
const cms = createCMSClient({
projectId: "your-project-id",
publicKey: "your-public-delivery-key",
})
const products = await cms.content("product").list({
select: ["name", "price"],
page: 1,
pageSize: 6,
})
The SDK currently ships from this repository. Setup guide
// Standard HTTP. No client library required.
const url = new URL(
"/api/v1/projects/your-project-id/content/product",
"https://api.lemonadecms.com",
)
url.search = new URLSearchParams({
page: "1", pageSize: "6", select: "name,price",
})
const response = await fetch(url, {
headers: { Authorization: "Bearer your-public-delivery-key" },
})
const products = await response.json()
Readable URLs and published snapshots. REST guide
# Queries follow your workspace's models.
query Products {
productCollection(page: 1, pageSize: 6) {
items {
id
fields {
name
price
}
}
hasNextPage
}
}
Send your project key in the Authorization header. GraphQL guide
Generate TypeScript definitions from a workspace schema. Use them with the SDK, regenerate when your models change, and check for drift in CI.
Learn about type generationnpx --no-install lemonade types generate \
--url https://api.lemonadecms.com \
--workspace "$CMS_PROJECT_ID" \
--environment production \
--credential-env CMS_PUBLIC_KEY \
--out src/cms-models.ts
A journal, a catalog, a home for product updates. Three Astro examples turn published demo content into three very different websites.
Stories, authors and a reason to keep reading.
Explore REST integration
Products and categories, ready for discovery.
Explore GraphQL integration
Give every new release a place to be heard.
Explore SDK integrationExample sites and artwork are demonstration content. Checkout and payments are outside the CMS.
Lemonade hosts the content studio and delivery APIs. Your website uses the framework you choose; the SDK connects to api.lemonadecms.com with your workspace and delivery key.
Read the integration guidesLemonade manages content. Your website decides how it looks. Connect through REST, GraphQL, JSON-RPC or the JavaScript SDK, using the frontend you already know.
Yes. See saved drafts in a connected website using a server-side preview session. Draft credentials stay on your server, and public delivery continues serving published content.
Lemonade is an actively developed hosted CMS. Deployment qualification and real-team pilot validation are still in progress. Read the docs before choosing it for a production project.
Your next story, collection or app update starts here.
Connection to the Studio lost
Reconnecting. Wait for the connection to return before continuing.
The Studio connection was interrupted
Reconnecting. If this keeps happening, reload the page or contact the instance operator.