Maquettage without a backend (filesystem)
The filesystem CMS flavor lets a project design pages before its e-commerce backend exists.
In the early phase of a project, the e-commerce backend does not exist yet — but
page design, section choices and client demos need the CMS Studio. The
filesystem flavor covers that phase: it persists pages to a local JSON event
log, on the developer's machine.
// front-commerce.config.ts
import cms from "@front-commerce/cms/remix";
export default defineConfig({
extensions: [
// ...
cms("filesystem"),
],
});
No other configuration is needed:
- Media: the media library already writes to the local disk by default
(
.front-commerce/cms-fs/), whatever the flavor. - Pages and URIs: the event log is persisted to
.front-commerce/cms-events.json. It survives dev-server restarts — work is not lost between sessions. - E-commerce sections (product lists, category grids…): pickers stay empty and sections render an empty state, without errors. Catalogue data only comes with a real backend.
- Studio access: the flavor follows contribution mode. In development,
enable it with the
contributionMode.forceconfiguration — in a default application, theFRONT_COMMERCE_CONTRIBUTION_MODE_FORCEenvironment variable ofapp/config/contributionMode.ts— and page administration is open. See the contribution mode guide.
Assumed limits
This flavor is a maquettage tool, not a backend:
- No concurrency: the file is fully rewritten on each write, without a lock. Two processes writing at the same time can race. One development machine at a time.
- Not for production: no multi-shop, no scaling, no backup. Once the project's backend exists, migrate to the matching connector flavor.
- Migration: maquetted pages are not transferred automatically to the real backend — the local event log does not share its transport with the connector's. Re-enter the content through the Studio once the backend is wired.