# SummerCMS ## What This Is A Scala-based Content Management Framework (CMF), rewriting WinterCMS/OctoberCMS for better performance, scalability, and a cleaner developer experience. Targets the same audience as WinterCMS — agencies, freelancers, and developers who need to rapidly build anything from simple landing pages to complex portals. ## 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. ## Requirements ### Validated (None yet — ship to validate) ### Active - [ ] Model / Controller / Components system similar to WinterCMS - [ ] Modern frontend-backend communication (research needed — not plain AJAX, scalable) - [ ] Admin backend with YAML/JSON-driven form generation - [ ] CLI scaffolding commands for initial setup - [ ] Plugin system with interdependencies (plugins can extend each other) - [ ] Theme system with Vue compatibility - [ ] HTMX integration for data-attributes style interactions - [ ] Themes can declare rendering mode (SPA / hybrid / static) - [ ] Full WinterCMS feature parity (CMS pages, media manager, users, etc.) ### Out of Scope - Multi-database support from start — PostgreSQL primary, others can come later - Snowboard/Alpine.js patterns — clean break from WinterCMS frontend mess - PHP compatibility layer — this is a rewrite, not a port ## Context **Why this exists:** - OctoberCMS went paid license, development stalled despite thousands in yearly fees - WinterCMS has active development but messy frontend (Snowboard + Alpine.js + API mode + theme mode all mixed) - PHP performance and scaling limitations for high-traffic sites - Desire for cleaner, more maintainable codebase **Reference implementation:** - `golem15-wintercms-starter/` submodule contains WinterCMS reference - Patterns to replicate: plugin structure, YAML-driven forms, component system, event-driven model extensions - Apparatus framework concepts: scenario-based workflows, automatic DI, backend CSS/JS injection **Team:** - Principal Scala developer from major Scala company on board - Sufficient funding for AI agents and human developers **What made OctoberCMS great:** - Data attributes API for frontend interactions (HTMX captures this spirit) - Flexibility to build anything from landing pages to complex portals - Themes as first-class citizens ## Constraints - **Language**: Scala with ZIO ecosystem — chosen for performance, type safety, and freedom-respecting community - **Database**: PostgreSQL primary — focus on one DB done well - **Frontend**: Vue-compatible themes + HTMX for interactions — clean break from Snowboard/Alpine mess - **Deployment**: Pulumi-first (IaC), Docker and JVM also supported - **Template engine**: TBD — needs research for Scala options - **Backend communication**: TBD — needs research (websockets scale poorly, explore alternatives) ## Key Decisions | Decision | Rationale | Outcome | |----------|-----------|---------| | Scala over other languages | Principal dev expertise, performance, type safety | — Pending | | ZIO ecosystem over Typelevel | Community values alignment, opinionated framework fits CMF needs | — Pending | | PostgreSQL only for v1 | Focus beats breadth, can add others later | — Pending | | HTMX + Vue frontend | Cleaner than Snowboard/Alpine, captures OctoberCMS data-attributes spirit | — Pending | | Pulumi-first deployment | Modern IaC approach, cloud-native from start | — Pending | | Full WinterCMS parity as goal | Proven feature set, clear target | — Pending | | Incremental milestones | Validate architecture before building everything on it | — Pending | ## Note This project has CONTEXT.md generated for each of the initial 10 phases. --- *Last updated: 2025-02-04 after initialization*