Vulse is an Astro-native, Cloudflare-hosted headless CMS. One deploy serves your public site, the admin UI at /admin, and the REST API at /api/vulse/*. Content lives in D1, assets in R2, search uses SQLite FTS5, and delivery uses Astro's Content Layer (build/sync) plus a runtime SDK (SSR / members-only content).
Vulse is under heavy development. Expect bugs and features that are not yet working as expected.
This monorepo contains:
| Path | What it is |
|---|---|
packages/vulse/ |
The @vulsecms/core npm package |
playground/vulse-play/ |
A working reference Astro project that consumes Vulse |
docs/ |
User-facing documentation |
docs/superpowers/ |
Internal design specs and implementation plans |
pnpm install
pnpm --filter @vulsecms/core build
cd playground/vulse-play
npx vulse migrate
pnpm devOpen the URL printed in the terminal (usually http://localhost:4321). Admin: /admin/login. See docs/installation.md for full setup including creating your first admin user.
| Page | Purpose |
|---|---|
| Installation | Prerequisites, install, Cloudflare resources, first admin |
| Upgrading | Updating Vulse and running migrations |
| Configuration | wrangler.toml bindings, env vars, runtime settings |
| Control panel | Admin UI walkthrough |
| Content modeling | Blueprints, sets, replicators, globals, locales |
| Frontend | Wiring Vulse into Astro (loader, SSR SDK, blocks, auth) |
| Live preview | Live preview and saved-draft preview |
| Forms | Form builder, spam protection, queues, hooks |
| Plugins | Native Vulse plugins for forms, auth, CRM, and email workflows |
| API reference | REST endpoints |
| CLI reference | vulse migrate, seed:admin, collection:scaffold |
| Deployment | Cloudflare Workers / Pages, secrets, cron |
| Directory structure | What files and folders mean |
| Troubleshooting | FAQ and common errors |
pnpm install
pnpm --filter @vulsecms/core test # unit tests
pnpm --filter @vulsecms/core test:integration # D1/miniflare integration tests
pnpm --filter @vulsecms/core typecheck
pnpm --filter @vulsecms/core buildThe playground (playground/vulse-play) is the easiest way to exercise changes end-to-end.
See LICENSE (MIT).