CMS

Write it once. Use it everywhere.

Structured content that lives independently from the pages that use it.

Most website tools make content part of the page it appears on. SnowBlock separates the two — a testimonial, article, location or staff profile exists as its own document, referenced by any page that needs it.

  • Nothing is live until you publish
  • Version history built in
  • Structured content by default

Content

Manage content
in one place.

Every piece of content is a document of its own — a person, a testimonial, a location — with the same fields every time. Write it once, and every page showing it is correct.

Decide what a staff profile needs — name, role, photo, biography — and that becomes the form everyone sees. Text, dates, numbers, images, files, links, lists, and groups of fields that repeat. Add fixed sets of choices so people pick rather than type, and help text they read while writing.

Staff profilestaffProfilePublished+ Add a field

5 fields · 96 documents · version 4

⠿1TNamenameStringRequired
Name…
⠿2TRoleroleStringRequired
Role…
⠿3▣PhotophotoImageOptional
Photo…
⠿4≡BiographybioTextOptional
Biography…

Drag from the palette, or drop between fields to choose a position.

Components

Decide how it looks
once.

A component is a piece of the page — a hero, a card, a quote, a list of people. Say which field feeds the headline, the image, the button, and every page using it follows.

Choose what a component draws on, then say which field becomes the headline, which the image, which the link. From then on it fills itself from whatever document a page points it at, and you never paste the same text into two places.

Staff profilestaffProfileMapped

1 section bound · 4 mappable nodes

◱Person cardThis component
Tname→HeadingBound
Trole→SubheadingBound
▣photo→ImageBound
≡bio→BodyBound

Pages

Build the page
without waiting.

A page is components in an order, drawing on your content. Add a section, move it, swap it, and see the result against the real site before anyone else does.

Build a page by adding sections from the library and putting them in the order you want. What you can place, and what you can type into it, is already settled by the content behind it — so a page cannot end up in a state the site cannot render.

Home/homePublished

Landing page · 4 sections

SECTIONS

⠿1Hero section
⠿2Feature grid
⠿3Person card list
⠿4Contact section

ADD A SECTION

Card gallery+
Quote+
Metric row+

Content types

A content type is a reusable shape.

Define it once, and every author who writes one gets the same form. Consistency stops being something you police in review and becomes something the system provides.

  • fields

    Build the fields your content needs

    Text, long text, numbers, dates, yes/no, images, files, links, lists, and groups of fields that repeat.

  • rules

    Make the rules explicit

    Fixed sets of choices so authors pick rather than type. Required fields, and the help text they see while writing.

  • folders · search

    Keep blueprints organised

    File them in folders, search them, and duplicate one as the start of another.

  • UI mapping

    Say how it looks

    Which on-screen section renders this type, and which field feeds the headline, the image, the button.

  • own document

    Your content has a home outside the page

    Every testimonial, staff profile, article or location exists in its own right. Pages use those documents; they do not own them.

  • TypeScript · JSON

    One definition, code and content

    The same content model is readable as TypeScript and as schema JSON, so the content model and the application code work from one definition.

Working in it

Built for confident publishing.

The Studio behaves the same way across content types, documents and pages. Drafts stay drafts, changes stay traceable, and previews use real content.

  1. Every language

    Translate without losing the source.

    Work on two languages side by side. Each translatable field stays next to its source, so translators do not move between screens or guess what they are translating.

    • Every translatable field appears twice, one under the other
    • Each language has its own drafts, its own review and its own publish
    • French can go live a week after English
    enEnglishdefault214 pages
    cyCymraegstatutory214 pages
    urاردوRTL38 pages

    Cymraeg is at full parity — the same 214 pages, not a translated subset.

  2. Before it is live

    Preview with real content.

    Pages, documents and the theme preview against your real site as you work, not against a mock-up. The live preview shows the rendered section beside the fields that produced it.

    • The real on-screen section, not an approximation
    • Beside the fields that produced it
    • Nothing you save is live until you publish it
    Testimonialdraft

    Fields

    quoteTwo weeks, not two…
    nameJ. Okafor
    roleHead of Digital

    On the page

    “Two weeks, not two…”

    J. Okafor
    Head of Digital

    The real section, rendered from what you typed — not an approximation of it.

  3. Over time

    Everything has history.

    Content types, documents and pages all retain their versions. Compare a version against what is live, and restore it — into a draft, never straight onto the site.

    • A version log per content type, document and page
    • Compare any version against what is published
    • Restoring lands in a draft for review
    Fee schedule3 versions
    Today, 09:14m.halelive
    12 Marj.okafor
    4 Marj.okafor

    Restoring an old version lands in a draft for review — never straight onto the live site.

The same behaviour
on every screen.

These are not separate features. They are how every screen behaves, which is why the Studio can be handed to someone new without a training day.

Draft, then publish
Nothing you save goes live until you publish it.
History everywhere
Content types, documents and pages retain version history. Restore changes into a draft before publishing.
Preview with real content
See how content will render while you work, not after publishing.
Validate before publishing
Missing fields, duplicate addresses and conflicting URLs are caught before changes go live.
Confirm destructive actions
Anything that would take live URLs offline says what it will affect — with counts — and waits for a clear yes.
Errors name the thing
Not “4 of 5 published”. Which document, which field, which page already has that address.

Your content goes where you need it.

Content is stored as structured information rather than as a finished page. The same document can power the website, an app, or another system — without rebuilding the content from rendered HTML.

What that gets you

  • Open standard

    The model is readable without us

    Content types are defined in an open standard. A developer can read the structure of every record without a licence, and without us in the room.

  • Structured export

    Exports carry the structure

    Content exports as structured data — fields, versions and publish dates. Not a crawl of rendered pages that loses everything except the current text.

  • TypeScript · JSON

    One definition, code and content

    The same content model is available as TypeScript and as schema JSON, so the content model and the application code work from one definition.

Where your content can go

  1. This website

    Pages reference documents

    A page points at a document rather than holding a copy of it. Correct the source once and every page showing it is correct.

  2. Another channel

    An app, or a screen we do not render

    Because content is information rather than a finished page, the same document can feed something we have nothing to do with.

  3. Somewhere else entirely

    Out, with its history

    Fields, versions and publish dates leave together. What you take with you is the content model, not a scrape of the site.

Content is independent of presentation. That is the whole idea, and everything above is a consequence of it.

Build the experience
around your content.

The Studio is where your team does the work. Languages publish each locale independently. The theme sets how all of it looks.

  • Nothing is live until you publish
  • Version history built in
  • Structured content by default