powered by

Headless CMS

Anythink works as a headless CMS — store your content as entities, manage it in the dashboard, and serve it via API to any frontend, app, or channel.

What is a headless CMS?

A traditional CMS (like WordPress) couples the content management interface with the delivery layer — it both stores content and renders web pages.

A headless CMS separates the two. Content is stored and managed in one place, and delivered via API to whatever front-end needs it — a website, a mobile app, a smart TV, a voice assistant, anything. Your frontend fetches content as JSON and renders it however it wants.

Anythink makes this trivial. Create entities to model your content, manage it in the dashboard, and serve it via auto-generated REST API.


Modelling content with entities

Any content type can be represented as an entity. Examples:

Blog / editorial site:

text
articles
  title           varchar    required
  slug            varchar    unique
  body            text       rich-text
  published_at    timestamp
  status          varchar    (draft / published)
  author          → users
  hero_image      file
  tags            varchar[]  multi-select

Product catalogue:

text
products
  name            varchar    required
  description     text
  price           float
  sku             varchar    unique
  category        → categories
  images          file       (multiple)
  in_stock        boolean    default true

Navigation / menus:

Manage nav structures in the dashboard and serve them via API — no hardcoded links in your frontend. See Menu Configuration.


Managing content in the dashboard

The Anythink dashboard is your editorial interface. Non-technical team members can:

  • Create and edit records for any entity
  • Upload images and files
  • Filter and search content
  • Use rich-text editing for long-form content
  • Manage relationships between content types (e.g. attach an author to an article)

Roles and permissions control who can see and edit what — a content editor role can be given access only to specific entities.


Fetching content via API

Your content is available via the standard entity API:

javascript
// Fetch published articles
const res = await fetch(
  'https://api.my.anythink.cloud/org/{orgId}/entities/articles/items?filter[status]=published',
  { headers: { 'Authorization': 'Bearer ' + token } }
);
const { items } = await res.json();

For fully public content that requires no authentication, use the public search endpoint:

javascript
// Public content — no auth required
const res = await fetch(
  'https://api.my.anythink.cloud/org/{orgId}/search/public?e=articles&q=*'
);
const { items } = await res.json();

Multi-channel delivery

The same API powers every channel. One Anythink project can serve content to:

  • A Next.js or Nuxt website (server-side rendering or static generation)
  • A React Native mobile app
  • A Webflow site via custom code
  • An email newsletter tool
  • Any other system that can make an HTTP request

Real-time content updates

Because Anythink's API always returns the current state of your database, content changes made in the dashboard appear in your frontend immediately — no rebuild, no re-deploy.

For static site generators (like Next.js with ISR), use webhooks or workflow triggers to signal a revalidation when content is updated.

Workflows

Using Anythink as your marketing site CMS

The Anythink marketing site itself is powered by Anythink — articles, product pages, and all structured content are stored as entities and served via API to a Next.js frontend. The same approach works for any content-driven site.

Understanding my APIs