Files
q-blog/docs/features/FEATURE_MULTIBLOG_OVERVIEW.md
greenflame089 0b100af686 Release v0.2.2
2025-08-22 07:28:42 -04:00

38 lines
1.7 KiB
Markdown

# Multiple Blogs per Name — Overview (Plan A: Smart Redirect)
_Generated 2025-08-21_
## Goal
Allow a single **Name** to own **multiple Blogs**, while preserving existing blog-scoped routes and minimizing churn. Replace the single “My Blog” button with a **“My Blogs” dropdown** and introduce a new **User → Blogs** list page. When a Name has exactly one blog, visiting `/{name}` **auto-redirects** to that blog.
## Scope
- **In**: Header/Nav blog access, Name landing behavior, simple blog list page, light routing changes, a11y behavior.
- **Out**: Post editor behavior, post list virtualization, roles/permissions model changes, server protocol changes (unless list-by-name is missing).
## High-level UX
- Header/Nav:
- 0 blogs → Button shows **Create Blog** (primary action). Dropdown disabled/hidden.
- ≥1 blog → Button shows **My Blogs**. Dropdown lists each blog (title + id). Bottom row = **Create new blog**.
- Name route:
- `/{name}`:
- If blog count === 1 → redirect to `/{name}/{blog}/posts` (existing default route).
- If blog count !== 1 → show **User Blogs** page (`/{name}/blogs`).
- User Blogs page:
- Public, lists all blogs for the Name. If viewer is same user, show **Edit** per blog and **Create Blog** CTA.
- A11y:
- Dropdown uses proper menu roles, keyboard navigation, and focus return.
- User Blogs page has a single **H1**, semantic list, clear button labels.
## Benefits
- Aligns with entity contract (**Name 1..N Blog**).
- Minimizes refactors; relies on existing blog-scoped routing and components.
- Backward-compatible for deep links.
## Notes
- The **Header Blog Switcher** dropdown is **out of scope for v0.2.2** (list + redirect are implemented).