Files
summercms-initial-research/.planning/PROJECT.md
2026-02-05 12:18:55 +01:00

3.8 KiB

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