NewAI writing assistant now live in all plans — drafts, translations, alt text and slug generation.Read more →
For developers

API-first. Typed by default. Affordable.

ContentGrid is built for developers who are tired of choosing between 'full-featured and expensive' or 'cheap and incomplete'. REST and GraphQL come standard. TypeScript types generate from your schema. The CLI handles migrations.

Developer tools

Everything you'd want. Nothing you wouldn't.

REST + GraphQL, generated

Publish a Content Type and both your REST and GraphQL endpoints are live immediately — no setup, no plugins. The GraphQL schema is derived from your field definitions.

TypeScript SDK

npm install @contentgrid/sdk. Typed generics, auto-pagination, response normalization, retry with backoff. ESM and CJS. Browser and Node compatible.

CLI and migrations

Push and pull schemas, manage environments, run migration scripts, import and export content, and generate TypeScript types — all from the @contentgrid/cli.

TypeScript type generation

contentgrid typegen --out ./types/cms.d.ts generates fully-typed interfaces from your live schema. Types are framework-agnostic. Use with the SDK's generics for end-to-end type safety.

Environment branching

Create environments from any existing environment. Branch your schema for a feature, test migrations against staging, then promote or tear it down. Delivery tokens never change.

Webhooks and events

Subscribe to 20+ event topics: entry publish, asset upload, schema change, scheduled action. HMAC-signed payloads. Exponential backoff retry. Replay from the dashboard.

Integrations

Works with your stack.

ContentGrid's REST and GraphQL APIs work with any framework, any deployment target, any CDN.

N
Next.js
READ
N
Nuxt
READ
A
Astro
READ
S
SvelteKit
READ
G
Gatsby
READ
R
Remix
READ
V
Vercel
BI-DIR
N
Netlify
BI-DIR
C
Cloudflare Pages
BI-DIR
G
GitHub Actions
BI-DIR
A
Algolia
WRITE
C
Cloudinary
BI-DIR
D
DeepL
BI-DIR
Slack
WRITE
See all integrations
Delivery API

REST and GraphQL, both generated from your schema

ContentGrid generates two API surfaces from a single source of truth: your Content Type definitions. The REST Delivery API is CDN-cacheable with surrogate-key headers, so you can purge individual entries on publish. The GraphQL endpoint supports generated filters, ordering, pagination, link resolution up to 10 levels deep, and persisted queries for CDN-cacheable GET requests.

  • REST filtering: [ne], [in], [lt], [gt], [exists], [match], [near], [within] operators
  • GraphQL: generated input types per Content Type, auto-linked includes
  • Persisted queries via POST — execute as GET for CDN caching
  • Preview API for draft content in front-end preview modes
REST API · BlogPost
v1
GET/entries/:idsingle entry + linked
GET/entriespaginated · filters
POST/entriescreate · returns 201
PATCH/entries/:idpartial update
DELETE/entries/:idsoft-delete
Cursor paginationField selectionLocale paramWebhook ready
FULL REST + GRAPHQL · NO PLUGINSAUTO-GENERATED
SDK and CLI

From npm install to live content in minutes

The JavaScript/TypeScript SDK wraps both APIs with typed generics, autopagination helpers, response normalisation (resolves includes into nested objects), and retry with backoff on 429/503. The CLI handles everything you'd otherwise do through the UI: push schema changes to a new environment, run migration scripts, export content for backup, and generate TypeScript types.

  • npm install @contentgrid/sdk — ESM + CJS, browser + Node
  • contentgrid typegen generates typed interfaces from your live schema
  • Migration scripts use a fluent API — createField, moveField, transformEntries
  • contentgrid environment create --from master for instant staging branches
TypeScript SDK · @contentgrid/sdkv2.4.1 · npm
npm install @contentgrid/sdk
import { ContentGrid } from '@contentgrid/sdk';
const client = ContentGrid({ space: 'my-space' });
const posts = await client
.entries<BlogPost>().getAll();
Typed genericsAuto-paginationRetry + backoffESM + CJS
npm install → LIVE IN MINUTESCLI + TYPEGEN
Developer FAQ

Technical questions.

When you publish a Content Type, ContentGrid generates and merges its GraphQL schema automatically. Each type gets a single-item query, a collection query with filter/order/pagination, and a linking collections type. Rich text fields return a JSON tree plus a links sidecar for embedded entries and assets. No manual schema writing required.

Start building in 5 minutes.

Free plan. No credit card. Your first Space is ready in seconds.

    Developers — ContentGrid