Skip to main content
Version: next

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.force configuration — in a default application, the FRONT_COMMERCE_CONTRIBUTION_MODE_FORCE environment variable of app/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.