Files
summercms-initial-research/.planning/REQUIREMENTS.md
2026-02-05 12:26:43 +01:00

6.6 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
INFRA-01 Phase 1: Foundation Complete
INFRA-02 Phase 1: Foundation Complete
INFRA-03 Phase 1: Foundation Complete
INFRA-04 Phase 1: Foundation Complete
DIFF-01 Phase 1: Foundation Complete
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-05 after Phase 1 completion