Skip to content

Make room foryour next idea.

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.

Take a guided tour

Shape your content.

Build content types with text, dates, choices, Markdown, media and relationships. Your editor follows your model.

Explore the studio
Current Articles model editor with field types, required rules, editor groups and validation settings
Actual studio screens. Illustrative content. View full screen

Create. Preview. Publish.

Keep drafts private, preview saved changes on your connected website, then publish deliberately. Reviews and schedules are optional.

Explore the studio
Current article editor with a Markdown story, field discussions, publishing and scheduling controls
Actual studio screens. Illustrative content. View full screen

Deliver it anywhere.

Organize published entries, then read the same snapshots through REST, GraphQL, JSON-RPC or the client. Your frontend stays yours.

Connect your frontend
Current published Articles collection with saved views, language, search and publication filters
Actual studio. Published demo content. View full screen

A little structure. A lot of possibility.

From the first field to the latest publication, give your content a place to grow.

Your model. Your way.

Define fields and relationships. Your content model becomes an editor that fits your team.

Shape your content
ArticleContent type
Title
Text
Story
Markdown
Author
Reference

Illustrative model

Good work. In good hands.

Keep drafts private, invite a review and choose when your work goes live.

  1. Draft
  2. Review
  3. Schedule
  4. Publish

Reviews and schedules are optional.

Explore publishing

Speak their language.

Translate one entry and publish each language deliberately. Shared content stays connected.

  • English
  • Español
  • Português

A fresh perspective.EN

Una nueva perspectiva.ES

Uma nova perspectiva.PT

Write in more languages

Your frontend. Your rules.

One content source. REST, GraphQL, JSON-RPC or a typed client. Build with the tools you already love.

Connect your application
articles.ts
const articles = await cms
.content("article")
.list({ pageSize: 6 })

Illustrative query after configuration

A home for every asset.

Organize images and files in folders, add useful metadata and publish when they're ready.

Meet your media library
Brand assets
Illustrative citrus garden artwork
Garden.webp
Illustrative lemon and ice artwork
Citrus.webp
PDF
Brand guide.pdf

Illustrative library

Connect the pieces. Keep them together.

Link entries across content types. Reuse an author or category instead of copying it into every article.

Build connected content
Article A fresh perspective

Illustrative relationships

Keep moving. Keep a way back.

Compare saved revisions and restore earlier work to a new draft. Publishing stays a separate choice.

Explore entry history
  1. Current draftHeadline refined
    Draft
  2. Published revisionSaved before the latest edits
    Live
  3. Earlier draftOriginal introduction
Restore to a draftPublish separately

Illustrative entry history

A focused form. A clearer next step.

Define choices and show fields when sibling values match. Hidden values stay saved, ready when you need them.

Make the editor yours
ChannelsMultiple choice
  • Website, selected
  • Newsletter, selected
  • App, not selected
Show “Event date” whenFormat is Event
Event dateOctober 24, 2026

Illustrative field configuration

Less friction.
More flow.

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 workspace

Shape your content.

Build content types with text, dates, choices, Markdown, media and relationships. Your editor follows your model.

Explore the studio
Current Articles model editor with field types, required rules, editor groups and validation settings
Actual studio screens. Illustrative content. View full screen

Create. Preview. Publish.

Keep drafts private, preview saved changes on your connected website, then publish deliberately. Reviews and schedules are optional.

Explore the studio
Current article editor with a Markdown story, field discussions, publishing and scheduling controls
Actual studio screens. Illustrative content. View full screen

Deliver it anywhere.

Organize published entries, then read the same snapshots through REST, GraphQL, JSON-RPC or the client. Your frontend stays yours.

Connect your frontend
Current published Articles collection with saved views, language, search and publication filters
Actual studio. Published demo content. View full screen

Your frontend.
Your kind of API.

Keep the framework you love. Read the same content through REST, typed GraphQL, JSON-RPC or our JavaScript SDK.

  • Filters, sorting and pagination
  • Generated TypeScript model definitions
  • Public delivery and server-only draft previews
Prefer JSON-RPC? We've got that too.
product

JavaScript SDK example

JavaScript
// 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

REST example

HTTP · GET
// 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

GraphQL example

GraphQL · query
# 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

Your content model. Your types.

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 generation
npx --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

Built here.
Made your own.

A journal, a catalog, a home for product updates. Three Astro examples turn published demo content into three very different websites.

Example sites and artwork are demonstration content. Checkout and payments are outside the CMS.

Your frontend.
Our 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 guides
Application
Elixir + Phoenix
Database
PostgreSQL
Your frontend
Entirely up to you

A few good questions.

Lemonade 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.

Make something fresh.

Your next story, collection or app update starts here.

Open your studio