About StormyCMS
StormyCMS is an API-first, headless content management system for developers who want flexibility and control over their content infrastructure — including the editing experience itself.
The Problem We Solve
Traditional headless CMS platforms give you an API, but the management panel stays on their servers, behind their login, with their schema editor. That creates three recurring pain points:
- You can't extend the editor. If the hosted panel doesn't support your use case, you're stuck.
- You define everything twice. Your site has React components; the CMS has a separate schema you maintain in a web portal. They drift.
- Automation is hard. AI agents and scripts need special API access to a third-party system just to change a content model.
StormyCMS closes that gap by putting the management panel in your repository:
- Own your editor code — the admin app is scaffolded into your project. Customize and extend it like any other code you own.
- Define components once — the same React components (wrapped with
withCMS) power both the public site and the editor preview. One schema, one place. - Agent-ready by design — because the entire configuration lives in local files, AI coding agents can build and manage Stormy-based websites without credentials to an external editor system.
Architecture
A Stormy project has two halves:
The hosted API — a GraphQL service that stores and serves your content: sites, pages, layouts, components, media, users, and API keys.
Your codebase — scaffolded by stormy init:
apps/site— the public, CMS-rendered websiteapps/admin— your own editing application (pages, layouts, media)packages/components— shared React components and their CMS field definitions
Core Content Concepts
- Pages — content containers with a slug, metadata (title, description, keywords), and a component tree
- Layouts — reusable page chrome (headers, footers, navigation) that can nest via parent/child chains, with an Outlet marking where page content renders
- Components — the building blocks of pages and layouts; each has typed props, attributes, and child components
- Media — uploaded assets tracked by the API and stored in your own S3-compatible bucket
Supporting Concepts
- Sites — the top-level container; each site has a client ID and client secret for API access
- Users & Roles — owner, admins, and contributors per site, with email invites
- Auth — OAuth sign-in (GitHub/Google) issues a session; short-lived JWTs authorize editing operations
The Package Ecosystem
| Package | Purpose |
|---|---|
@stormycms/cli | stormy init scaffolding and stormy generate schema generation |
@stormycms/core | Framework-agnostic client (StormyCMSClient), types, S3 storage helpers |
@stormycms/react | withCMS, rendering trees (ComponentTree, LayoutTree), session context |
@stormycms/next | Next.js auth route handlers, server provider, server actions |
Use Cases
- Marketing & corporate sites — editors work in a panel that matches the live site exactly
- Blogs & content sites — component-driven pages with SEO metadata
- Agencies — ship each client a customized editor without building one from scratch
- AI-managed sites — let coding agents create components, register fields, and publish pages
What's Next
StormyCMS ships today with a hosted GraphQL API, OAuth-based team access with roles and invites, an S3-backed media library, and the React/Next.js editor toolchain. Two directions are already visible in the codebase:
- More frontend frameworks — the CLI's plugin system and framework detection (Vue, Svelte, Solid) lay the groundwork for editor toolchains beyond React.
- Team plans — every account includes one free site with one seat; multi-seat team collaboration is rolling out next (see stormycms.com for current plan details).
Contact
- Website: stormycms.com
- Account portal: account.stormycms.com
- Documentation: you're reading it — see the FAQ for common questions
Thank you for choosing StormyCMS. We're excited to see what you'll build!
Last updated: 7/9/26, 6:42 AM