Skip to content

01 / Structure

Build once. Create more.

Your frontend is made of components. Your content should be too. In b10cks you model content as named, typed blocks that nest inside each other, so the shape of your CMS matches the shape of your product.

Every feature. Unlimited editors. From €0 / month.

What this replaces

A flat list of text fields.

Most content models start as one long form and stay that way. Every new page adds fields nobody reuses, and editors guess which one ends up where.

Blocks remove the guesswork. A block has a name, an icon, and a purpose, so the editor sees a hero, not field_17.

How it works

Blocks, all the way down.

Six things a block gives you, from the first model to the tenth restructure.

01 / Define

A block is a typed structure.

Give it a name, an icon, and a set of typed fields. Text, rich text, links, assets, numbers, references. That definition is the contract between your model and your frontend.

02 / Nest

Blocks inside blocks.

A block can hold other blocks, or a list of them. Build the same way you build components: small pieces composed into larger ones, as deep as the page needs.

03 / Reuse

Define once, use anywhere.

The same block works on a landing page, a blog post, and a product detail page. Change the definition and every place that uses it follows.

04 / Edit

What you model is what editors see.

Every block becomes a named form in the visual editor, with nested blocks as collapsible sections and drag to reorder. No training session required.

05 / Ship

Schemas live next to your code.

Define block schemas in your repository and push them through CI like any other change. The workspace picks them up.

06 / Evolve

Restructuring stays safe.

Add fields, rename them, or deprecate a block without breaking what is already written. Every schema change is recorded and you can go back.

The shape of the output

A structure you define. An experience you build.

Blocks come out of the API as plain, predictable JSON. The block name tells your frontend which component to render, the fields fill it in. No parsing markup, no reverse engineering a page builder.

One block / one component

{
  "component": "hero",
  "heading": "Build once. Create more.",
  "body": [
    {
      "component": "feature_card",
      "title": "Reusable by design",
      "icon": "structure"
    }
  ]
}
  • hero
  • feature_card
  • nested ↗

A few things worth knowing.

Start with the structure

Model it once, then keep building.

Set up your blocks today and every page after this one gets faster to make.