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.
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.
Works with your stack.
ContentGrid's REST and GraphQL APIs work with any framework, any deployment target, any CDN.
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
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