38 requirements across 7 categories: - Core Framework (9) - Admin Backend (7) - User & Auth (4) - Content Management (9) - Core Plugins (8) - Differentiators (2) - Infrastructure (4) Deferred to v2: API/headless, additional plugins, advanced features
4.5 KiB
4.5 KiB
Requirements: SummerCMS
Defined: 2025-02-04 Core Value: A CMF that enables rapid application development with the flexibility to support any use case, delivered with the performance and horizontal scaling that PHP cannot provide.
v1 Requirements
Requirements for initial release. Each maps to roadmap phases.
Core Framework
- CORE-01: Plugin system with discovery, lifecycle management, and dependency resolution
- CORE-02: Plugin extension API allowing plugins to extend each other (type-safe)
- CORE-03: Component system with reusable UI components
- CORE-04: Component HTMX handlers for data-attributes style interactions
- CORE-05: Theme engine with layouts, partials, and asset management
- CORE-06: Theme Vue integration (themes can declare SPA/hybrid/static mode)
- CORE-07: CLI scaffolding command to create new plugins
- CORE-08: CLI scaffolding command to create new themes
- CORE-09: CLI scaffolding command to create components
Admin Backend
- ADMIN-01: YAML-driven form generation (fields.yaml)
- ADMIN-02: Form field widgets (text, textarea, dropdown, checkbox, etc.)
- ADMIN-03: YAML-driven list/table views (columns.yaml)
- ADMIN-04: List column types and filters
- ADMIN-05: Customizable admin dashboard
- ADMIN-06: Dashboard widgets system
- ADMIN-07: Plugin settings pages
User & Authentication
- AUTH-01: Backend user accounts with login/logout
- AUTH-02: Backend user password reset
- AUTH-03: RBAC permissions system (roles and permissions)
- AUTH-04: Permission checking in controllers and views
Content Management
- CONT-01: CMS pages with URL routing
- CONT-02: CMS page layouts with placeholders
- CONT-03: Component embedding in CMS pages
- CONT-04: Media library file uploads
- CONT-05: Media library image management (resize, crop)
- CONT-06: Content draft/published states
- CONT-07: Content revision history
- CONT-08: Navigation menu management
- CONT-09: Menu item types (URL, page, plugin)
Core Plugins
- PLUG-01: User plugin - frontend user registration
- PLUG-02: User plugin - frontend user login/logout
- PLUG-03: User plugin - user profiles
- PLUG-04: User plugin - password reset
- PLUG-05: Blog plugin - posts with WYSIWYG editor
- PLUG-06: Blog plugin - categories
- PLUG-07: Blog plugin - tags
- PLUG-08: Blog plugin - post listing components
Differentiators
- DIFF-01: Type-safe plugin API with compile-time error detection
- DIFF-02: Hot reload development mode (fast iteration without JVM restart)
Database & Infrastructure
- INFRA-01: PostgreSQL database integration with Quill
- INFRA-02: Database migrations system
- INFRA-03: Model/Repository pattern for data access
- INFRA-04: Pulumi deployment configuration
v2 Requirements
Deferred to future release. Tracked but not in current roadmap.
API & Headless
- API-01: REST API for content access
- API-02: GraphQL API endpoint
- API-03: JWT token authentication for API
- API-04: API documentation generation
Additional Plugins
- PLUG-09: Pages plugin for static content pages
- PLUG-10: Translation plugin for multilingual content
Advanced Features
- ADV-01: Multisite support
- ADV-02: Content workflows (approval chains)
- ADV-03: Scheduled publishing
- ADV-04: Content import/export
Out of Scope
Explicitly excluded. Documented to prevent scope creep.
| Feature | Reason |
|---|---|
| Multi-database support | PostgreSQL primary focus, others can come post-v1 |
| Snowboard/Alpine.js patterns | Clean break from WinterCMS frontend mess |
| PHP compatibility layer | This is a rewrite, not a port |
| Visual page builders | Anti-feature - leads to unmaintainable sites |
| Database-stored code | Anti-feature - code belongs in files |
| WordPress-style hooks everywhere | Anti-feature - type-safe events instead |
| Kitchen-sink core | Keep core minimal, features in plugins |
Traceability
Which phases cover which requirements. Updated during roadmap creation.
| Requirement | Phase | Status |
|---|---|---|
| (To be filled by roadmap) |
Coverage:
- v1 requirements: 38 total
- Mapped to phases: 0
- Unmapped: 38 ⚠️
Requirements defined: 2025-02-04 Last updated: 2025-02-04 after initial definition