What is Flexweg CMS
Flexweg CMS is a content management system designed for Flexweg's static hosting service. It looks and feels like a modern admin panel — block editor, media library, plugins, themes, menus — but the site it publishes is 100% static HTML/CSS/JS, served directly from Flexweg's CDN with no server runtime.
The pieces
There are three independent components, and each does one job:
| Component | Role | Where it runs |
|---|---|---|
| Admin SPA | The interface you log into to manage content | Flexweg, served from /admin/ |
| Firebase | Stores posts, settings, media metadata, user accounts | Google's Firebase (Auth + Firestore) |
| Public site | The actual website your visitors see | Flexweg, served from / |
When you click Publish on a post, the admin SPA does three things, in order:
- Reads the post's content + metadata from Firebase
- Renders the active theme's React components into a static HTML string (in your browser, via
react-dom/server) - Uploads that HTML to Flexweg as a regular file —
category/post-slug.html
There is no PHP, no Node.js, no database query happening when a visitor opens a page. They just download an HTML file.
Why this model
Static sites are fast (no server processing per request), cheap (any CDN can serve them), and secure (no executable runtime to exploit). The trade-off is that publishing is an explicit step — you click Publish, the admin generates files, and the new content appears.
For most use cases — blogs, vitrine sites, documentation, portfolios — that trade-off is excellent. Flexweg CMS handles the publish workflow so you don't have to think about it: write content, click Publish, the site updates.
What it includes out of the box
- Block-based editor for posts and pages (Tiptap with a Gutenberg-like UI)
- Three themes:
default(versatile),magazine(long-form editorial),corporate(vitrine/SaaS) - Built-in plugins: SEO meta, sitemaps, RSS feeds, archives, full-text search
- Must-use plugins (always-on): favicon generator, custom HTML/CSS/JS injection, rich embeds (YouTube/Vimeo/Twitter/Spotify), columns + custom HTML blocks, dashboard metrics, content import
- Media library with automatic resizing into multiple variants
- Dynamic menus that update without re-publishing every page
- 7-language admin (English, French, German, Spanish, Dutch, Portuguese, Korean)
- Plugin/theme marketplace-style installs via ZIP upload from the admin
What it doesn't do
- No comments — Flexweg CMS doesn't render comments because the public site is static. Add a third-party service (Disqus, Giscus, …) by injecting their script via the
flexweg-custom-codeplugin. - No real-time multi-user editing — content edits are last-writer-wins. There's no draft locking or collaborative cursors.
- No native search backend — search is provided by the
flexweg-searchplugin which indexes posts client-side. Works great for sites under ~5000 posts; bigger sites should integrate Algolia or similar via custom code. - No e-commerce — out of scope. Embed Stripe / Snipcart / Gumroad checkouts via custom HTML blocks.
What you need
To run Flexweg CMS you need:
- A Flexweg account with static hosting enabled
- A Firebase project (free Spark plan is enough for the typical site) with Authentication and Firestore enabled
- A modern browser (Chrome 89+, Firefox 108+, Safari 16.4+) for the admin
You do NOT need:
- A server or VPS
- Node.js (unless you want to build the admin yourself or develop plugins/themes)
- A database server (Firebase handles it)
- A build pipeline (the admin renders pages in your browser)
Continue reading
- How it works — what publishing actually does under the hood
- Quick start — deploy a working CMS in ~15 minutes
- Differences from WordPress — if you're coming from WP, what changes