From 8cc7b8155978ce90d105513d224bdbdde15eab08 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Fri, 2 Oct 2026 00:49:47 +0200 Subject: [PATCH] docs: defer phase 11.3 newsletter to backlog as 999.1 --- .planning/ROADMAP.md | 47 ++++++++++--------- .planning/STATE.md | 1 + .../.gitkeep | 0 3 files changed, 25 insertions(+), 23 deletions(-) rename .planning/phases/{11.3-newsletter-plugin-and-signup-on-summercms-io => 999.1-newsletter-plugin-and-signup-on-summercms-io}/.gitkeep (100%) diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index e23fba0..77c7ead 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -570,7 +570,7 @@ Plans: ### Phase 11.2: summercms.io Alpha 0.1 landing page on SummerCMS (INSERTED) -**Goal:** summercms.io replaces its "Under construction" page with the Alpha 0.1 landing page from the claude.ai/design handoff. The page is a Nuxt 4 static site, English only and i18n-ready, embedded in and served by a SummerCMS binary that also serves the Phase 11.1 docs at `/docs`. It deploys behind nginx with supervisor using documented steps. This is a quick phase of 2-3 plans; newsletter signup moved to Phase 11.3. +**Goal:** summercms.io replaces its "Under construction" page with the Alpha 0.1 landing page from the claude.ai/design handoff. The page is a Nuxt 4 static site, English only and i18n-ready, embedded in and served by a SummerCMS binary that also serves the Phase 11.1 docs at `/docs`. It deploys behind nginx with supervisor using documented steps. This is a quick phase of 2-3 plans; newsletter signup moved to the backlog (Phase 999.1). **Requirements**: TBD **Depends on:** Phase 11.1 **Repos:** three new repos under `git.golem15.com/golem15/`: (1) `sm-summercmsio-app`, the root app that builds the binary and wires the plugins; (2) `vue-summercmsio-app`, the Nuxt 4 site, held inside the root app; (3) `sm-summercmsio-plugin`, the site plugin that serves the embedded site at `/`, the docs at `/docs` and any site-specific data, the WinterCMS site-plugin pattern. `summercms.go` changes only if the site needs a framework feature that is missing. @@ -598,27 +598,6 @@ Plans: **Wave 3** *(blocked on Wave 2 completion)* - [x] 11.2-03-PLAN.md — Unit tests last: plugin rule table at 90%+ coverage, site_url/site_label branches, terminal-check helpers, check-phase11.2.sh gate, validated VALIDATION.md -### Phase 11.3: Newsletter plugin and signup on summercms.io (INSERTED) - -**Goal:** Visitors to summercms.io subscribe for updates through the initial Go version of the Golem15 Newsletter plugin, which confirms each email by double opt-in. The signup widget is added to the Phase 11.2 landing page, and the site gains Polish alongside English. -**Requirements**: TBD -**Depends on:** Phase 11.2 -**Repos:** `sm-newsletter-plugin` (new, under `git.golem15.com/golem15/`, Go package `newsletter`), plus changes to the Phase 11.2 repos (`vue-summercmsio-app` for the widget and Polish locale, `sm-summercmsio-app` to wire the plugin). `summercms.go` changes only if a framework feature is missing. -**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, honeypot and rate-limited, with required consent), double opt-in confirmation mail with a tokenized confirm link, a welcome mail, unsubscribe, and subscriber add, edit and delete in the admin SPA. Composing and sending newsletters is out of scope. - 2. The landing page has a signup widget that calls the plugin's API on the same origin and covers the pending, confirmed and error states, with localized result pages. - 3. The site is prerendered in English and Polish, and the confirmation and welcome mails follow the subscriber's locale. - 4. The new code has unit tests, delivered in the phase's last plan. - -**Context:** decisions D-13 to D-22 in `.planning/phases/11.2-ready-to-share-summercms-io-website-and-newsletter-plugin/11.2-CONTEXT.md` (carried over from the original 11.2 discussion). - -**Plans:** 0 plans - -Plans: -- [ ] TBD (run /gsd-plan-phase 11.3 to break down) - ### 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. @@ -708,8 +687,30 @@ Phases execute in numeric order: 1 → 2 → 3 → 4 → 5 → 6 → 7 → 8 → | 11. Jobs, realtime and search infrastructure | 8/8 | In Progress| | | 11.1. SummerCMS documentation for humans and AI agents | 7/7 | In Progress| | | 11.2. summercms.io Alpha 0.1 landing page on SummerCMS | 3/3 | In Progress| | -| 11.3. Newsletter plugin and signup on summercms.io | 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 | - | | 14. Domain jobs and external integrations | 0/TBD | Not started | - | | 15. Cutover | 0/TBD | Not started | - | + +## Backlog + +### Phase 999.1: Newsletter plugin and signup on summercms.io (BACKLOG) + +**Goal:** Visitors to summercms.io subscribe for updates through the initial Go version of the Golem15 Newsletter plugin, which confirms each email by double opt-in. The signup widget is added to the Phase 11.2 landing page, and the site gains Polish alongside English. +**Requirements**: TBD +**Deferred:** 2026-10-02, formerly Phase 11.3. It is one more Golem15 plugin port; the Journal plugin and delivering Płytarium come first. Before planning, re-check what 11.2 shipped since: the landing-page design has no signup slot, nginx on rome blocks `/backend` and non-GET methods, and rome has no mail relay configured. +**Repos:** `sm-newsletter-plugin` (new, under `git.golem15.com/golem15/`, Go package `newsletter`), plus changes to the Phase 11.2 repos (`vue-summercmsio-app` for the widget and Polish locale, `sm-summercmsio-app` to wire the plugin). `summercms.go` changes only if a framework feature is missing. +**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, honeypot and rate-limited, with required consent), double opt-in confirmation mail with a tokenized confirm link, a welcome mail, unsubscribe, and subscriber add, edit and delete in the admin SPA. Composing and sending newsletters is out of scope. + 2. The landing page has a signup widget that calls the plugin's API on the same origin and covers the pending, confirmed and error states, with localized result pages. + 3. The site is prerendered in English and Polish, and the confirmation and welcome mails follow the subscriber's locale. + 4. The new code has unit tests, delivered in the phase's last plan. + +**Context:** decisions D-13 to D-22 in `.planning/phases/11.2-ready-to-share-summercms-io-website-and-newsletter-plugin/11.2-CONTEXT.md` (carried over from the original 11.2 discussion). + +**Plans:** 0 plans + +Plans: +- [ ] TBD (promote with /gsd-review-backlog when ready) diff --git a/.planning/STATE.md b/.planning/STATE.md index 104ba85..4502c9e 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -163,6 +163,7 @@ Progress: [██████░░░░] 60% - Phase 11.2 inserted after Phase 11.1: Ready to share: summercms.io website (sm-summercmsio-app + vue-summercmsio-app), sm-newsletter-plugin stub with double opt-in, 11.1 docs at /docs - Phase 11.2 edited: edited fields: title, goal, repos, design source, success_criteria — reshaped into the Alpha 0.1 landing page (Nuxt 4 on SummerCMS, nginx + supervisor deploy); newsletter moved to 11.3 - Phase 11.3 inserted after Phase 11.2: Newsletter plugin and signup on summercms.io (split out of the original 11.2) +- Phase 11.3 deferred to the backlog as Phase 999.1 (2026-10-02): the Journal plugin and delivering Płytarium take priority ### Decisions diff --git a/.planning/phases/11.3-newsletter-plugin-and-signup-on-summercms-io/.gitkeep b/.planning/phases/999.1-newsletter-plugin-and-signup-on-summercms-io/.gitkeep similarity index 100% rename from .planning/phases/11.3-newsletter-plugin-and-signup-on-summercms-io/.gitkeep rename to .planning/phases/999.1-newsletter-plugin-and-signup-on-summercms-io/.gitkeep