A full-stack template for building decoupled, content-driven web applications with an intuitive inline CMS. Built on Symfony + API Platform (PHP) and Nuxt (Vue 3).
CWA wires together the building blocks — JWT auth, Mercure real-time updates, draft/publish workflows, file uploads, dynamic forms, and a fluent fixture builder — so you spend your time building your app rather than infrastructure. Components expose REST endpoints automatically, and the admin panel lets editors manage content inline without leaving the page.
- Draft & publish — components are privately editable until explicitly published; editors work freely without affecting live content
- Real-time updates — Mercure broadcasts changes instantly to all connected browsers
- File uploads & images — Flysystem adapters (local, S3, GCS) with automatic image variant generation
- Dynamic forms — Symfony forms serialized to JSON, rendered and validated in the Nuxt layer
- Paginated collections — proxy components handle listing, search, and pagination automatically
- Inline admin panel — content managers edit directly on the page without a separate backend UI
Full installation instructions are at cwa.rocks.
The create-cwa CLI prompts for the features you want and generates a clean project with only what you selected:
pnpm create cwa my-projectClone or fork for the full working example with every feature enabled:
gh repo create my-project \
--template="components-web-app/components-web-app" \
--private --cloneThe
packages/directory contains thecreate-cwascaffolder — not part of your application. Delete it after cloning:rm -rf packages/