Files
summercms-initial-research/.planning/REQUIREMENTS.md
Jakub Zych 318bdf84ac docs: define v1 requirements
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
2026-02-04 13:04:19 +01:00

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