# Phase 10: Core Plugins - Context

**Gathered:** 2026-02-04
**Status:** Ready for planning

<domain>
## Phase Boundary

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

</domain>

<decisions>
## Implementation Decisions

### Registration 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 registration
- `require_activation` — whether activation is required
- `activate_mode` — auto/user/admin
- `login_attribute` — email (username option removed since no usernames)
- `use_throttle` — sign-in throttling
- `use_register_throttle` — registration throttling
- `block_persistence` — prevent concurrent sessions
- `remember_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)

</decisions>

<specifics>
## Specific Ideas

- "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

</specifics>

<deferred>
## Deferred Ideas

- OAuth/social login — separate feature/plugin
- Public user profiles — theme or extension plugin (like Golem15.Team)
- Comments on blog posts — separate phase/plugin

</deferred>

---

*Phase: 10-core-plugins*
*Context gathered: 2026-02-04*
