Phases: 1. Foundation: Database, migrations, repository, deployment 2. Plugin System: Discovery, lifecycle, dependencies, extension API 3. Component System: Reusable UI with HTMX 4. Theme Engine: Layouts, partials, Vue integration 5. CLI Scaffolding: Plugin/theme/component commands 6. Backend Authentication: Users, login, RBAC 7. Admin Forms & Lists: YAML-driven generation 8. Admin Dashboard: Widgets and settings 9. Content Management: Pages, media, menus 10. Core Plugins: User and Blog plugins All 43 v1 requirements mapped to phases.
169 lines
6.6 KiB
Markdown
169 lines
6.6 KiB
Markdown
# 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 |
|
|
|-------------|-------|--------|
|
|
| INFRA-01 | Phase 1: Foundation | Pending |
|
|
| INFRA-02 | Phase 1: Foundation | Pending |
|
|
| INFRA-03 | Phase 1: Foundation | Pending |
|
|
| INFRA-04 | Phase 1: Foundation | Pending |
|
|
| DIFF-01 | Phase 1: Foundation | Pending |
|
|
| CORE-01 | Phase 2: Plugin System | Pending |
|
|
| CORE-02 | Phase 2: Plugin System | Pending |
|
|
| CORE-03 | Phase 3: Component System | Pending |
|
|
| CORE-04 | Phase 3: Component System | Pending |
|
|
| CORE-05 | Phase 4: Theme Engine | Pending |
|
|
| CORE-06 | Phase 4: Theme Engine | Pending |
|
|
| CORE-07 | Phase 5: CLI Scaffolding | Pending |
|
|
| CORE-08 | Phase 5: CLI Scaffolding | Pending |
|
|
| CORE-09 | Phase 5: CLI Scaffolding | Pending |
|
|
| AUTH-01 | Phase 6: Backend Authentication | Pending |
|
|
| AUTH-02 | Phase 6: Backend Authentication | Pending |
|
|
| AUTH-03 | Phase 6: Backend Authentication | Pending |
|
|
| AUTH-04 | Phase 6: Backend Authentication | Pending |
|
|
| ADMIN-01 | Phase 7: Admin Forms & Lists | Pending |
|
|
| ADMIN-02 | Phase 7: Admin Forms & Lists | Pending |
|
|
| ADMIN-03 | Phase 7: Admin Forms & Lists | Pending |
|
|
| ADMIN-04 | Phase 7: Admin Forms & Lists | Pending |
|
|
| ADMIN-05 | Phase 8: Admin Dashboard | Pending |
|
|
| ADMIN-06 | Phase 8: Admin Dashboard | Pending |
|
|
| ADMIN-07 | Phase 8: Admin Dashboard | Pending |
|
|
| CONT-01 | Phase 9: Content Management | Pending |
|
|
| CONT-02 | Phase 9: Content Management | Pending |
|
|
| CONT-03 | Phase 9: Content Management | Pending |
|
|
| CONT-04 | Phase 9: Content Management | Pending |
|
|
| CONT-05 | Phase 9: Content Management | Pending |
|
|
| CONT-06 | Phase 9: Content Management | Pending |
|
|
| CONT-07 | Phase 9: Content Management | Pending |
|
|
| CONT-08 | Phase 9: Content Management | Pending |
|
|
| CONT-09 | Phase 9: Content Management | Pending |
|
|
| DIFF-02 | Phase 9: Content Management | Pending |
|
|
| PLUG-01 | Phase 10: Core Plugins | Pending |
|
|
| PLUG-02 | Phase 10: Core Plugins | Pending |
|
|
| PLUG-03 | Phase 10: Core Plugins | Pending |
|
|
| PLUG-04 | Phase 10: Core Plugins | Pending |
|
|
| PLUG-05 | Phase 10: Core Plugins | Pending |
|
|
| PLUG-06 | Phase 10: Core Plugins | Pending |
|
|
| PLUG-07 | Phase 10: Core Plugins | Pending |
|
|
| PLUG-08 | Phase 10: Core Plugins | Pending |
|
|
|
|
**Coverage:**
|
|
- v1 requirements: 43 total
|
|
- Mapped to phases: 43
|
|
- Unmapped: 0
|
|
|
|
---
|
|
*Requirements defined: 2025-02-04*
|
|
*Last updated: 2026-02-04 after roadmap creation*
|