# 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*
