Files
summercms/.planning/phases/11.2-ready-to-share-summercms-io-website-and-newsletter-plugin/11.2-DISCUSSION-LOG.md
Jakub Zych 9d23ac5832 docs(11.2): capture phase context
Four repos (sm-summercms-app, vue-summercms-app, sm-summercms-plugin,
sm-newsletter-plugin), Nuxt 4 static site in EN and PL embedded in the
binary, double opt-in signup with honeypot, consent and neutral
responses, and a standalone sending-ready subscribers table.
2026-09-29 02:24:10 +02:00

4.1 KiB

Phase 11.2: Ready to share: summercms.io website and newsletter plugin - Discussion Log

Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

Date: 2026-09-29 Phase: 11.2-ready-to-share-summercms-io-website-and-newsletter-plugin Areas discussed: Website build & hosting, Landing page content, Signup & opt-in flow, Plugin shape & future


Website build & hosting

Option Description Selected
Prerendered (vite-ssg) Vite + Vue with build-time prerendering
Nuxt 4 (static generate) Same stack as vue-fonoteka-app, nuxt generate ✓
Plain Vue SPA Empty HTML shell until JS runs
Option Description Selected
Embedded in the Go binary go:embed site + docs, one binary ✓
Served from disk by the binary dist/ next to the binary
Static host/CDN + API binary Separate hosting, needs CORS
Option Description Selected
English only Docs are English
English + Polish vue-i18n + phrasebook for site and mail ✓
Option Description Selected
New framework module Reusable public static handler in summercms.go
In sm-summercms-app only App-local handler
You decide Research picks

User's choice: Nuxt 4 static generate, embedded in the binary, EN + PL. Serving: "we do as we did in wintercms - sm-summercms-plugin that does all the stuff around serving data. this is proven approach, used in figs.org.pl, golem15.com etc". Notes: The user first asked what "serving code" meant. After the explanation they chose a site plugin, which added a fourth repo.


Landing page content

Option Description Selected
Hero + signup Pitch with signup in the hero ✓
What it is / features Feature list ✓
Coming from WinterCMS Side-by-side, links to the 11.1 concept map ✓
Status & roadmap Honest pre-release block ✓

User's choice: All four. Notes on the WinterCMS section: "nice if it would have some cool way that it started in October (OctoberCMS) went trough WinterCMS but now it's time for Summer". Other answers: status tone was clear pre-release (the recommended option); no repo link yet (recommended); "Built by Golem15" credit (recommended).


Signup & opt-in flow

Question Options Selected
Spam guard Honeypot + rate limit / Cloudflare Turnstile Honeypot + rate limit
Consent Required checkbox / Notice text only Required checkbox
Re-signup Same neutral response / Tell the user their status Same neutral response
After confirm Thank-you page + welcome mail / Thank-you page only Thank-you page + welcome mail

Plugin shape & future

Question Options Selected
Users Standalone subscribers / Optional link to users Standalone
Schema Subscribers only, sending-ready / Port all PHP tables now Subscribers only, sending-ready
Admin List+filter+delete / Also CSV export / Also manual add/edit Free text: "add/edit/delete are must be, csv export - i don't think we have that ready within framework so it waits."
Module path git.golem15.com / github.com/golem15com git.golem15.com
Admin add status Pending + confirmation mail / Admin chooses Pending + confirmation mail

Notes: The first question batch in this area failed in the UI and was asked again.


Claude's Discretion

  • How long tokens stay valid, the resend throttle, the token format and the URL scheme.
  • Visual design within the Direction C v2 brand, and the copy.
  • Whether the plugin or the root app embeds the Nuxt build, and how the docs are mounted.

Deferred Ideas

  • CSV export of subscribers, which needs framework support.
  • Sending newsletters and merging audiences, in a later phase.
  • Renaming fonoteka.go to sm-fonoteka-app.
  • A source repo link on the landing page.
  • Polish docs.