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

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).
  • 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).