Phase 10: Core Plugins - Implementation decisions documented - Phase boundary established
3.4 KiB
3.4 KiB
Phase 10: Core Plugins - Context
Gathered: 2026-02-04 Status: Ready for planning
## Phase BoundaryDeliver User and Blog plugins demonstrating the complete plugin system. User plugin provides frontend registration, authentication, account management, and password reset. Blog plugin provides post management with WYSIWYG editor, categories, tags, and frontend listing components.
Reference: Golem15.User and Golem15.Blog plugins in WinterCMS starter.
## Implementation DecisionsRegistration Flow
- Required fields: email + password + name + surname (match WinterCMS structure)
- No usernames — email is the sole identifier
- Redirect after signup: configurable via component property (like WinterCMS redirect property)
- Activation mode: setting with auto/user/admin options (replicate from Golem15.User Settings model)
- Registration throttling: configurable setting
- OAuth/social login: NOT included — separate feature/phase
User Account Management
- Account management only — no public profile pages (theme/extensions add those if needed)
- Avatar: included in core User plugin with upload support
- Edit UX: traditional form submission (not inline editing)
- Password change: requires current password confirmation
Blog Post Display
- Posts component: default partials included, theme can override
- Pagination: infinite scroll option (HTMX-powered load more)
- Content format: both markdown and HTML supported (content type field determines rendering)
- Reading time: auto-calculated and available to templates
- Related posts: automatic by shared categories/tags
- Featured posts: supported via featured flag
- Image loading: lazy load by default
- Social sharing: OpenGraph/Twitter meta tags + share buttons component
Content Organization
- Categories: hierarchical (parent/child relationships)
- Tags: separate from categories (categories for structure, tags for free-form labeling)
- Post URLs: configurable pattern (admin setting to choose /blog/:slug, /blog/:category/:slug, etc.)
Settings (replicate from Golem15.User)
allow_registration— enable/disable registrationrequire_activation— whether activation is requiredactivate_mode— auto/user/adminlogin_attribute— email (username option removed since no usernames)use_throttle— sign-in throttlinguse_register_throttle— registration throttlingblock_persistence— prevent concurrent sessionsremember_login— always/never/ask
Claude's Discretion
- Archive pages (by year/month) — decide during planning based on component needs
- Exact share button implementation (copy link, Twitter, Facebook, etc.)
- Lazy loading implementation details
- Reading time calculation algorithm (words per minute)
- "Configurable per-site through component config (like in WinterCMS -> redirect property)" for post-signup redirect
- "Public profile is something theme might want to do, but will require additional plugin (like Golem15.Team plugin)" — keep User plugin focused on auth
- Reference Golem15.User Settings model for activation modes and other settings
- OAuth/social login — separate feature/plugin
- Public user profiles — theme or extension plugin (like Golem15.Team)
- Comments on blog posts — separate phase/plugin
Phase: 10-core-plugins Context gathered: 2026-02-04