docs(roadmap): insert phase 11.2 ready-to-share website and newsletter plugin
Adds Phase 11.2 after 11.1: the sm-summercms-app root with a vue-summercms-app website, an sm-newsletter-plugin stub ported from Golem15.Newsletter with double opt-in signup, and the 11.1 docs served at /docs. Records the sm- repo naming convention.
This commit is contained in:
@@ -527,6 +527,28 @@ Plans:
|
|||||||
Plans:
|
Plans:
|
||||||
- [ ] TBD (run /gsd-plan-phase 11.1 to break down)
|
- [ ] TBD (run /gsd-plan-phase 11.1 to break down)
|
||||||
|
|
||||||
|
### Phase 11.2: Ready to share: summercms.io website and newsletter plugin (INSERTED)
|
||||||
|
|
||||||
|
**Goal:** summercms.io is ready to share publicly. A fresh Vue website runs on a SummerCMS backend. Visitors subscribe for updates through the initial Go version of the Golem15 Newsletter plugin, which confirms each email by double opt-in. The Phase 11.1 docs are served at `/docs` and linked from the site.
|
||||||
|
**Requirements**: TBD
|
||||||
|
**Depends on:** Phase 11.1
|
||||||
|
**Repos:** three new repos: (1) `sm-newsletter-plugin`, the Go newsletter plugin as a compiled SummerCMS plugin module; (2) `sm-summercms-app`, the root app for summercms.io, which registers the plugin, serves the website's API and serves the docs; (3) `vue-summercms-app`, the fresh Vue website, held inside `sm-summercms-app`. `summercms.go` changes only if the site needs a framework feature that is missing.
|
||||||
|
**Naming convention:** the same as OctoberCMS (`oc-`) and WinterCMS (`wn-`), with the `sm-` prefix: root app `sm-<name>-app`, Vue frontend `vue-<name>-app`, plugin `sm-<name>-plugin`, theme `sm-<name>-theme`. The Go package inside a plugin keeps its plain name (`newsletter`). The meta root `summercms.io` and the framework `summercms.go` keep their names. `fonoteka.go` becomes `sm-fonoteka-app`.
|
||||||
|
**Port source:** Golem15.Newsletter, `github.com/golem15com/wn-newsletter-plugin`, checked out at `/media/nvme/dev/golem15/horoskopia.eu/plugins/golem15/newsletter`. The PHP plugin is work in progress. Its audience comes from registered users (it requires `Golem15.User`), and its only public routes are unsubscribe. It has no public subscriber model or signup widget, so this phase adds those in Go. The PHP original is not changed.
|
||||||
|
**Success Criteria** (what must be TRUE):
|
||||||
|
|
||||||
|
1. The newsletter plugin repo exists and ships an initial stub: a public signup endpoint (validated, deduplicated, rate-limited and spam-guarded), double opt-in confirmation mail with a tokenized confirm link, unsubscribe, and a backend subscriber list in the admin SPA. Composing and sending newsletters is out of scope.
|
||||||
|
2. The Vue website repo exists and ships a simple summercms.io landing page with a signup widget. The widget calls the plugin's API on the SummerCMS backend and covers the pending, confirmed and error states.
|
||||||
|
3. The Phase 11.1 docs are served at `summercms.io/docs`, the landing page links to them, and every link resolves.
|
||||||
|
4. The site deploys with documented run steps: the SummerCMS binary plus the built Vue assets.
|
||||||
|
|
||||||
|
**Open questions:** The Vue build approach (SPA or prerendered). Whether the stub's schema should be designed so newsletter sending can be added later, with confirmed subscribers joining the existing user-based audience.
|
||||||
|
|
||||||
|
**Plans:** 0 plans
|
||||||
|
|
||||||
|
Plans:
|
||||||
|
- [ ] TBD (run /gsd-plan-phase 11.2 to break down)
|
||||||
|
|
||||||
### Phase 12: Płytarium API — Collections and Albums
|
### Phase 12: Płytarium API — Collections and Albums
|
||||||
|
|
||||||
**Goal**: Collections and Albums endpoints are ported with byte-compatible request/response shapes, including active-context switching, editor invitations, ratings, reservations, cover handling and search.
|
**Goal**: Collections and Albums endpoints are ported with byte-compatible request/response shapes, including active-context switching, editor invitations, ratings, reservations, cover handling and search.
|
||||||
@@ -615,6 +637,7 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 →
|
|||||||
| 10. Admin Vue SPA | 5/5 | Complete | 2026-09-27 |
|
| 10. Admin Vue SPA | 5/5 | Complete | 2026-09-27 |
|
||||||
| 11. Jobs, realtime and search infrastructure | 0/TBD | Not started | - |
|
| 11. Jobs, realtime and search infrastructure | 0/TBD | Not started | - |
|
||||||
| 11.1. SummerCMS documentation for humans and AI agents | 0/TBD | Not started | - |
|
| 11.1. SummerCMS documentation for humans and AI agents | 0/TBD | Not started | - |
|
||||||
|
| 11.2. Ready to share: summercms.io website and newsletter plugin | 0/TBD | Not started | - |
|
||||||
| 12. Płytarium API — Collections and Albums | 0/TBD | Not started | - |
|
| 12. Płytarium API — Collections and Albums | 0/TBD | Not started | - |
|
||||||
| 13. Płytarium API — wishlist, notifications, CSV, credentials, public routes | 0/TBD | Not started | - |
|
| 13. Płytarium API — wishlist, notifications, CSV, credentials, public routes | 0/TBD | Not started | - |
|
||||||
| 14. Domain jobs and external integrations | 0/TBD | Not started | - |
|
| 14. Domain jobs and external integrations | 0/TBD | Not started | - |
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ current_phase: "10.1"
|
|||||||
current_phase_name: Runtime admin extension point
|
current_phase_name: Runtime admin extension point
|
||||||
status: executing
|
status: executing
|
||||||
stopped_at: Completed 10.1-01-PLAN.md
|
stopped_at: Completed 10.1-01-PLAN.md
|
||||||
last_updated: "2026-09-28T21:54:19.404Z"
|
last_updated: "2026-09-29T00:03:16.308Z"
|
||||||
last_activity: 2026-09-28
|
last_activity: 2026-09-28
|
||||||
last_activity_desc: Phase 10.1 execution started
|
last_activity_desc: Phase 10.1 execution started
|
||||||
state_head: 2325d80ecb5d93e093a4388e45dd53a96fbea9d1
|
state_head: c3b76b1afb977cb3f72272f9876c65c8da7877ed
|
||||||
progress:
|
progress:
|
||||||
total_phases: 18
|
total_phases: 19
|
||||||
completed_phases: 9
|
completed_phases: 9
|
||||||
total_plans: 78
|
total_plans: 78
|
||||||
completed_plans: 75
|
completed_plans: 75
|
||||||
@@ -139,6 +139,7 @@ Progress: [██████░░░░] 60%
|
|||||||
- Phase 10.1 inserted after Phase 10: Runtime admin extension point (URGENT)
|
- Phase 10.1 inserted after Phase 10: Runtime admin extension point (URGENT)
|
||||||
- Phase 10.2 inserted after Phase 10: Nest framework packages under modules and write run docs (URGENT)
|
- Phase 10.2 inserted after Phase 10: Nest framework packages under modules and write run docs (URGENT)
|
||||||
- Phase 11.1 inserted after Phase 11: SummerCMS documentation for humans and AI agents, modelled on wintercms.com/docs; after core framework, before Płytarium API port
|
- Phase 11.1 inserted after Phase 11: SummerCMS documentation for humans and AI agents, modelled on wintercms.com/docs; after core framework, before Płytarium API port
|
||||||
|
- Phase 11.2 inserted after Phase 11.1: Ready to share: summercms.io website (sm-summercms-app + vue-summercms-app), sm-newsletter-plugin stub with double opt-in, 11.1 docs at /docs
|
||||||
|
|
||||||
### Decisions
|
### Decisions
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
|
||||||
Reference in New Issue
Block a user