Developer Preview 1.0.0-beta.76

Content you own. Upgrades you can trust.

A hybrid CMS on the Glueful framework: an admin your editors will like, a visual builder that writes clean data, and an API your developers already understand.

install
composer create-project --stability=beta glueful/thallo my-site 

The Design view. Select any block on the page itself: its words are fields, its look is settings, and the API returns both.

44

blocks in the library, every one a Twig template your theme can override

11

capability packs installed with Thallo, inactive until you switch them on

1

command to upgrade: migrations, caches, the admin bundle, the API reference

MIT

licensed. Self-hosted, no seats, no fee — and nothing phones home

The product

The page, the model, the look and the API, in one admin.

Build pages on the page itself, shape your content types, restyle the whole site, and read it all back as JSON, without leaving the admin.

Build on the real page

Select any block on the stage and set its spacing, colours, shadow, corners and motion, per breakpoint, with your theme's real CSS underneath.

  • Flex or Grid, per breakpoint

  • Save a look as a style class

  • Every change is one undo

How the Design view works →

Model your own content

Content types with typed fields — text, numbers, references, assets, blocks — and a switch per type for whether the public API serves it.

  • Required, localized, filterable

  • Public delivery per type

  • Mounted at the root or under a path

The content model →

Change the look, not the templates

Pick a theme, set its accent and neutral colours, and see the homepage before you save. Templates are plain Twig: a theme of your own starts as a copy.

  • Preview before you save

  • Accent and neutral families

  • Twig templates you own

Themes →

GET /v1/content/pages/home200
{ "data": {
  "uuid": "XviMmGth80VA",
  "fields": { "body": [
    { "type": "container",
      "data": {
        "element": "section",
        "content": [
          { "type": "shortcode", … },
          { "type": "heading",
            "data": {
              "text": "Content you own. Upgrades…",
              "level": "h1"
            } },
          { "type": "rich_text", … },
          { "type": "container", … },
          { "type": "code", … }
        ]
      } },
    { "type": "container", … }, …
  ] } } }

This page, as the API returns it

The hero above is JSON your front end can read: the blocks the Design view saved, nothing rendered. Every install also serves its OpenAPI reference at /api-docs.

  • OpenAPI 3.1

  • Delivery, admin and preview APIs

  • Keys scoped per content type

Open the API reference →

For editors

An admin your editors will actually use.

Most people who work in Thallo never open a terminal. They start from a designed section, publish when it is ready, and undo what they did not mean.

Start from a section, not a blank page

A library of designed sections and whole pages, each inserted as one change and edited in place.

Publish when it is ready

Drafts, review before publishing, and publish or unpublish on a schedule — so a launch at nine does not need someone at nine.

Nothing is final until you say so

Every change is one undo, and every published version is kept, so the page from last week is a click away.

The section library, beside the page it goes into.

Built with Thallo

thallo.dev runs on Thallo.

This page, the documentation and the admin you would install are the same product. Every block, preset and setting used on this page is written down in its build notes.

BUILT ON, WORKS WITH

Glueful

framework

PostgreSQL

database

Twig

templates

Vue 3

admin

Meilisearch

search

Payments

Stripe, Paystack

Why Thallo

Built for sites that outlive their launch.

The parts of a CMS you only notice in year three: upgrades, references, schedules, and knowing what is running.

One-command upgrades

Thallo lives in vendor/ as a Composer package. composer update, then thallo:provision, and the release is fully applied.

Capabilities you switch on

Commerce, accounts, collections, search and more ship as packs. Off means inactive, not uninstalled, so nothing drifts out of version.

44 blocks, no lock-in

Heroes, steppers, tabs, pricing, galleries, forms, code. Each is a plain Twig template your theme can override, and every page is data the API returns.

An API with its own reference

Every install generates its OpenAPI document and serves it at /api-docs, matching exactly the routes and packs that install runs.

Workflow and scheduling

Drafts, review, publish and unpublish on a schedule, with the scheduler's health shown in the admin so a missing cron line never hides.

Tells you when to upgrade

A check of Packagist shows admins when a newer Thallo exists, with the release notes and the command. The upgrade stays on your server.

Getting started

From an empty directory to a published page.

PHP 8.3 and PostgreSQL. About twenty minutes.

1

Create the project

Run composer create-project --stability=beta glueful/thallo my-site. You get the install template, with Thallo itself in vendor/

2

Set it up

./thallo setup checks your environment, writes the database settings, generates keys, migrates, and prints the link to create your first admin.

3

Design your first page

Add the scheduler cron line from the production guide, open the Design view, drop in a Container, pick a structure, and publish.

Install

composer create-project --stability=beta glueful/thallo my-site
cd my-site
php glueful thallo:provision
# environment checked · database migrated · admin link printed

Capabilities

Switch on what the site needs.

Every pack is installed with Thallo and stays inactive until you turn it on in Settings → Capabilities. No plugin marketplace, no version drift.

Products, variants, carts, checkout, orders, invoices and payment links, with the storefront rendered by the same block library as the rest of the site. Payments through Payvia, and a marketplace mode for multi-seller sites.

  • Storefront from your own blocks

  • Invoices and payment links

  • Marketplace mode

Themed registration, sign-in, password reset and account pages for your visitors, kept separate from the admin's users, with rate limits and email verification built in.

  • Visitor accounts, not admin users

  • Email verification

  • Rate limits by default

Structured data beyond pages and posts: define a schema, import rows, and query them from templates and the API. Filters and facets come with it.

  • Your own schemas

  • Row import

  • Filters and facets

Menus edited in the admin and rendered by the navigation block. Meta tags, sitemaps and redirects handled by the SEO pack, including the redirect created when a route changes.

  • Menus as content

  • Sitemaps and meta

  • Redirects on route change

Site search over published content, backed by Meilisearch, and first-party analytics with no third-party script on your pages.

  • Meilisearch-backed search

  • First-party analytics

  • No third-party scripts

Multi-tenancy for platforms: tenant-scoped content and settings, custom domains, member sign-up and per-workspace subscriptions with platform plans.

  • Tenant-scoped content

  • Custom domains

  • Per-workspace plans