Warning
Work in Progress (Alpha): ZeroCMS is an experimental project. Many features are partially implemented, and you may encounter bugs. We are currently building the core engine—expect breaking changes.
A production-ready, zero-config CMS that runs a development environment (Astro, Vite, etc.) entirely in your browser using WebContainers and isomorphic-git.
None. It's Zero-Config.
ZeroCMS is designed to be completely zero-setup. You don't need to configure .env files, databases, or local development environments.
- Install the GitHub App: Install 0CMS on your repositories.
- Authorize: Approve the App to grant access to the projects you want to manage.
- Edit: Select a repository. Our engine boots your site directly in the browser—start visually editing instantly!
- In-Browser Dev Server: Runs Node.js directly in the browser via WebContainers.
- Zero-Config: No backend required; uses isomorphic-git for Git operations.
- Visual Editing: Directly modify your site's content in an iframe.
- Persistent Storage: Uses
lightning-fsto keep your repository in IndexedDB. - Seamless Publishing: Commits and pushes changes directly to GitHub.
- Responsive Preview: Test website across Mobile, Tablet, and Desktop directly in the dashboard. (Current Focus)
- Content Creation: Generate new pages or list items (e.g., from Markdown templates).
- SEO & Assets: Meta-editor for OpenGraph tags and a central Media Library.
- One-Click Deploy: Automated deployments via Vercel/Cloudflare integration.
index.html: The modern dashboard for managing your repositories.WebContainerGitService.js: The core logic for Git and WebContainer orchestration.cms.js: The visual editor bridge that runs inside the preview iframe.serve.js: A simple Node.js server providing COOP/COEP headers..env: (Ignored) Contains your GitHub credentials.
ZeroCMS uses a unique high-performance architecture:
- Quantum Boot: Background pre-warming of WebContainers before the user even opens the dashboard.
- Visual Bridge: A zero-config postMessage bridge that allows the host to edit the iframe content in-place.
- Binary Snapshots: Uses
tarblobs in IndexedDB to skipnpm installfor previously loaded repositories.
ZeroCMS is designed with a Zero-Trust security model. Running untrusted code (like npm run dev) from a third-party repository is safer here than on your local machine:
- Browser Sandbox: The entire Node.js runtime (WebContainer) executes inside the browser's security sandbox.
- Total Isolation: Malicious scripts cannot "break out" of the browser tab. They have no access to your local files, system registry, passwords, or local network.
- Disposable Environments: Every session is isolated. If a repository contains harmful code, it only affects its own virtual filesystem within that specific tab. Closing the tab wipes the environment completely.
ZeroCMS uses a Declarative Driver system. While the engine is designed to be universal, specific support is being built out one-by-one.
- Stable: Astro, Hexo, Generic Vite (Static).
- Experimental: Next.js (Static Export), Eleventy.
- Planned / Stubs: Nuxt, SvelteKit, Remix, Hugo (Go-WASM required).
We strive for what we call "Architectural Gold"—patterns that are clean, modular, and highly performant. However, we are still refining these implementations:
- Deterministic Traceability: Using invisible Unicode breadcrumbs to map rendered DOM elements back to their exact source file and line number with 100% accuracy.
- Hybrid WASM Core: A pluggable engine that uses JavaScript for instant starts on small projects and switches to Rust (WASM) for massive monorepos. (Note: Rust binary is currently in development).
- Quantum Pre-warming: The WebContainer engine starts booting the second you hit the landing page, ensuring the dashboard is ready before you even finish logging in.
- Zero-Copy Memory: Using
SharedArrayBufferandTypedArraysto share project data between the UI and the WASM engine without slow serialization.
- Mocked WASM: The high-performance Rust tagger is currently mocked via a JavaScript fallback.
- Parsing Fidelity: Complex template logic (nested Nunjucks/Liquid) may still struggle with edge cases during tagging.
- Static Only: We currently focus on SSG (Static Site Generation). SSR (Server Side Rendering) support within the preview is limited.
- Git Conflicts: Automated conflict resolution during "Publish" is still manual.
ZeroCMS is an open-source project. If you wish to self-host or contribute to the core:
- Install Bun: Bun.sh is required for development and building.
- Fork & Clone the repository.
- Setup a
.envfile with your ownGITHUB_CLIENT_IDandGITHUB_CLIENT_SECRETfrom a custom GitHub OAuth App. - Run
bun install&&bun start. The dev environment runs onlocalhost:3000. - Build for production via
bun run build. The output will be in the/distdirectory. - Develop your feature or fix and submit a PR!
Please ensure your code follows the existing minimalist aesthetic and uses vanilla JS/CSS where possible.
ZeroCMS is an open-source project. If you find it useful, please consider supporting its development:
- GitHub Sponsors: Support our work
- Open Collective: Join our community
WebContainers require specific HTTP headers to function correctly:
Cross-Origin-Embedder-Policy: require-corpCross-Origin-Opener-Policy: same-origin
The included serve.js automatically provides these headers. If you deploy this to a production environment (e.g., Vercel, Netlify), you must configure these headers in your platform's settings.
MIT