Docs

A design-system-first page-builder toolkit. Strike the right balance for your site — make it easy for editors to create engagement while staying compliant.

Why Inka?

  • Compliance and engagement, not a trade-off — you decide where the dial sits for each site, instead of choosing between locking editors down and letting the design system drift
  • Design-system-first — components declare what they tolerate, so off-system output can't be produced
  • Multi frontend, multi backend — Next.js, Nuxt.js, Astro, plus server-only stacks (PHP, Django, Rails, Laravel) via the server-render pattern; switch channels mid-edit
  • AI under the same constraints — everyone's AI can build you a page; ours can't build one that breaks your design system
  • Evidence, not just warnings — rules a machine can't decide go to the people who can, and the determination is recorded against that version of the content
  • Quick to adopt — enable visual editing with simple HTML data attributes, no React or Vue required in your frontend
  • A toolkit, not a CMS — good out of the box with zero configuration, extensible when you need more; open source and self-hostable
  • Enterprise features — versioning, i18n, workflow, and automated content rules

Try the online demo

The fastest way to feel what Inka does is to log into the hosted demo and edit a real page against a real frontend.

Open <https://hydra.pretagov.com>, log in, then:

  • Open user preferences (bottom-left).
  • Pick one of the preset frontends, or paste in your own frontend URL.
  • Edit any page — every change updates the live preview.

The default preset is a Nuxt.js frontend deployed as an SSG to demonstrate scale-to-zero editing on free hosting. An Astro example demonstrates the server-render pattern for static-first frameworks. See Build a frontend › Deployment patterns.

To run Inka locally against your own frontend, see the Run Locally section of the project README.

Grid Block

A responsive grid layout container. Each cell is a child block (teaser, slate, image, etc.) rendered inside the grid. This is the built-in Volto grid block (gridBlock).

Context Navigation Block

A vertical navigation list for grouped pages — a left sidebar on desktop and a collapsible disclosure at the top on mobile. Each row is a navItem (hand-added link) and/or a listing (auto-populated from a path query). The active link is detected from the current URL and gets aria-current="page" plus a .current class. Named after Plone's @contextnavigation endpoint, which serves the same purpose.

Hero Block

A full-width hero section with heading, subheading, image, rich text description, and a call-to-action button. Demonstrates multiple field types in a single block: string, textarea, slate, image, and object_browser.