Develop
Runtime Api Quick
The public surface external plugins and themes use. All exports below come from — externalised at build time, redirected at runtime by the admin's import-map to a stub that hands back the live admin
Hooks (filters and actions)
Hooks are how plugins observe and mutate the publish pipeline. There are two kinds:
Templates and props
Each of the six template components receives a typed props object plus a carrying global state. This page documents what each template gets and how to use the props.
Types reference
The TypeScript types theme + plugin authors most often use, with the canonical definitions and what's actually in each field.
Runtime API reference
is the bridge between the admin and external plugins / themes. It exposes:
Firestore data model
The complete picture of what's stored where in Firestore.
External Tutorial
This guide walks through authoring a plugin distributed as a and loaded at runtime by Flexweg CMS — no rebuild of the admin required.
Theme blocks
Themes can contribute editor blocks — atom blocks that render at publish time as full sections of HTML (heroes, post grids, CTAs, sidebars). Theme blocks are scoped to the active theme: switching
Plugin manifest reference
Every plugin exports a single from its .
CSS pipelines (SCSS vs Tailwind)
Flexweg CMS supports two CSS workflows for themes — picked per-theme based on which files exist:
External Tutorial
This guide walks through authoring a Flexweg CMS theme distributed as a and loaded at runtime — no rebuild of the admin required.
Image variants
Each theme declares the image variants (sizes / aspect ratios / formats) it expects. The admin's upload pipeline generates every declared variant whenever a user uploads an image — so when your
Creating themes — overview
A theme controls how your public site looks: colours, typography, layout, the markup of every published page. Flexweg CMS themes are React components that get rendered to HTML at publish time — you
Hooks reference
This is the complete list of every filter and action the core fires. For practical guidance on how to subscribe see Creating plugins → Hooks.
Building an external plugin bundle
External plugins ship as a containing a pre-built ESM bundle, get uploaded into Flexweg via the Install plugin UI, and load at runtime via dynamic — no admin rebuild required.
Plugin blocks
Plugins can contribute editor blocks — paragraphs, embeds, layout primitives, complex content types. The block API is the same one theme blocks use — only the registration channel differs.
Image format catalog
The complete reference for how images flow through Flexweg CMS — from upload to public URL.
Plugin settings page
Plugins can ship a configuration page reachable at . The page lives inside the standard Settings layout — same chrome as General + Performance — so admins get a consistent surface.
Theme manifest reference
Every theme exports a single from its . This is the contract between the theme and the admin. Get this right and everything else falls into place.
Slug strategy
How URLs are built from slugs, where collision detection happens, and what changes when you edit them.
Dashboard cards
Plugins can contribute self-contained cards to the admin dashboard. The four built-in stat cards (Posts / Pages / Categories / Tags) live above; plugin-contributed cards appear in a 1 / 2 / 3-column
Building an external theme bundle
External themes ship as a containing a pre-built ESM bundle, get uploaded into Flexweg via the Install theme UI, and load at runtime via dynamic — no admin rebuild required.
Registries
The admin maintains five runtime registries that hold what plugins / themes contribute. All five share a similar lifecycle: cleared on every pass, then re-populated.
Creating plugins — overview
A plugin extends Flexweg CMS by hooking into the publish pipeline, the editor, the dashboard, or the admin UI. Plugins are JavaScript modules that register filters (mutate values), actions (side
Theme settings page
A theme can ship a settings page reachable at when the theme is active. Use it to expose customisation knobs — colours, fonts, logo, layout toggles — without forking the theme.