CONTENT PLATFORM

The headless CMS behind every surface you ship.

Eleven capabilities your content team actually needs, served from the same edge that renders your pages — so personalization arrives before the first paint, not after it.

omnichannel diagram · 1440×880
Placeholder — replace with the real delivery diagram.

Eleven critical features

Expand any feature to see how it works and what the API looks like.

01 Omnichannel by designOne content graph served to web, mobile, email, social, IoT and AR/VR via typed APIs.
  • Channel-agnostic blocks, rendered per surface
  • GraphQL and REST over the same schema
  • Field-level projections so mobile ships fewer bytes
GET /content/v1/landing_page
{
  "id": "lp_812",
  "model": "landing_page",
  "locale": "en",
  "blocks": [
    { "type": "hero", "title": "…" },
    { "type": "code_sample", "langs": ["curl","ts"] }
  ],
  "channels": ["web","email","app"]
}
02 Localization supportPer-locale variants, fallback chains and translation memory built into every field.
  • Source locale plus unlimited targets
  • Fallback chains resolved server-side
  • Translation memory reused across models
locale fallback chain
pt-BR → pt → en   (resolved at edge)

GET /content/v1/landing_page/lp_812
  ?locale=pt-BR&fallback=true

{
  "locale": "pt-BR",
  "resolved_from": "en",
  "fields_missing": ["dek", "body"]
}
03 Fast CDN deliveryContent cached at the edge with tag-based purge — fast, flicker-free personalization.
  • Stale-while-revalidate by default
  • Tag purge propagates in well under a second
  • Personalized fragments cached per segment
cache headers
cache-control: public, s-maxage=31536000
surrogate-key: entry:lp_812 locale:en
x-an-cache: HIT

POST /content/v1/purge
{ "tags": ["entry:lp_812"] }
04 Powerful publishing and editingTemplates, a block library and live preview so writers ship without filing tickets.
  • Live preview against any environment
  • Block library bound to real components
  • Scheduled publishing with timezone awareness
editor capabilities
preview.MY_DOMAINNAME/lp_812
  ?env=staging&locale=de&device=mobile

signed preview token · expires 15m
no deploy required
05 Intuitive developer toolsTest and stage across unlimited environments without touching live website data.
  • Unlimited environments, seeded on branch create
  • Schema migrations reviewed in pull requests
  • Typed SDK regenerated on every model change
migrations as code
npx agentnorth env create pr-812 --from staging
npx agentnorth migrate --dry-run
npx agentnorth types --out ./src/content.d.ts

✓ 3 models changed, 0 breaking
06 Roles and approval workflowsGranular roles plus multi-stage review gates that block accidental publishes.
  • Role scoped per model, locale and environment
  • Required approvals before promote
  • Full audit trail per field change
workflow definition
stages:
  - draft
  - in_review:  requires [reviewer]
  - approved:   requires [reviewer, legal]
  - published:  requires [release_manager]

block_publish_if: missing_locales
07 Data-driven analyticsEngagement, conversion and revenue attribution per entry, locale and channel.
  • Per-entry engagement and conversion
  • Locale and channel breakdowns
  • Warehouse export for your own models
GET /content/v1/insights
{
  "entry": "lp_812",
  "views_7d": 412340,
  "conv_rate": 0.061,
  "by_locale": { "en": 0.064, "de": 0.041 },
  "by_channel": { "web": 0.067, "email": 0.038 }
}
08 Real-time personalizationVisitor signals captured and resolved at the edge, with no client-side flash.
  • Segments resolved before first byte
  • Signals from CRM, product events or the request itself
  • Deterministic variants, cached per segment
rule evaluation
rule: agent_traffic
when:
  request.user_agent matches "*bot*"
  or visitor.segment == "developer"
then:
  variant: "docs_first"
09 Intelligent integrationsTurnkey connectors for commerce, CRM, DAM, search and warehouse destinations.
  • Bidirectional sync with conflict rules
  • Signed webhooks with replay
  • Field mapping without custom glue code
connector events
on entry.published → search.reindex(locale-aware)
on entry.published → warehouse.append(event)
on asset.created   → dam.mirror(svg, webp)
10 Automations that connect and optimizeReusable, multi-step automations that cut manual and repetitive work.
  • Triggers on any content event
  • Branching, retries and human-in-the-loop steps
  • Runs visible with per-step timings
flow: localize & gate
trigger: entry.status → in_review

01 translate → de, ja, pt-BR
02 generate missing alt text
03 request review from Legal
04 purge CDN tags on publish
11 AI to work smarter, not harderPractical assistance in the editor: real-time translation, summaries and idea generation.
  • Translation with a brand glossary
  • Summaries for OG cards and digests
  • Alt text for every asset, reviewed before apply
POST /content/v1/assist
{
  "task": "translate",
  "entry": "lp_812",
  "targets": ["de", "ja", "pt-BR"],
  "glossary": "brand_v3",
  "apply": false
}

Delivered to every channel from one graph

Website

static build + edge cache

Mobile apps

typed SDK, field projections

Email

render + /v1/screenshot

Social

OG cards from SVG templates

IoT displays

minimal JSON payloads

AR / VR

scene-scoped content sets

Agents

/content/v1 + x402 metering