forked from Qortal/q-blog
1.7 KiB
1.7 KiB
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).
- If blog count === 1 → redirect to
- 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).