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

94 lines
4.1 KiB
Markdown

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