80 lines
3.7 KiB
Markdown
80 lines
3.7 KiB
Markdown
# 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 |
|
|
|
|
---
|
|
*Last updated: 2025-02-04 after initialization*
|