--- id: task-8 title: Reorganize app categories, standardize headers, enable cross-app spaces status: Done assignee: [@claude] priority: high created: 2026-02-25 completed: 2026-02-25 --- ## Description Major cross-repo standardization effort covering three areas: 1. **Category reorganization** — Moved rTube and rSwag from "Share" to "Create", added rSocials to "Share", created canonical `rstack-apps.json` as single source of truth for all 26 r*Apps across 9 categories. 2. **Header standardization** — Ensured all rApps use the same `bg-slate-900/85 sticky top-0 z-50 backdrop-blur-sm border-b border-slate-800` header pattern. Fixed rfunds-online bg color. Replaced rSwag's custom HeaderBar with standard Header + actions pattern. Added 🔑 Sign In / 🔐 Logged In emojis to UserMenu. 3. **Cross-app spaces** — Enabled SpaceSwitcher dropdown in all rApps to show the same spaces as rSpace. Created `/api/spaces` proxy route (forwards to rspace.online), `/api/me` auth route (verifies EncryptID token), and updated SpaceSwitcher to read EncryptID JWT from localStorage. ## Changes ### New files - `rstack-online/rstack-apps.json` — Canonical app registry (26 apps, 9 categories) - `*/api/spaces/route.ts` — Spaces proxy endpoint (17 repos) - `*/api/me/route.ts` — Auth verification endpoint (17 repos) - `rswag-online/rswag/frontend/components/SwagNavActions.tsx` — rSwag-specific nav actions ### Updated files (all 26 repos) - `AppSwitcher.tsx` — New category groupings (Creating, Sharing, Observing) - `EcosystemFooter.tsx` — Reordered footer links to match categories - `UserMenu.tsx` — Added 🔑/🔐 emojis - `SpaceSwitcher.tsx` — Reads EncryptID token from localStorage, passes as Bearer header - `Header.tsx` — Standardized bg/border/blur classes - Static HTML repos (9) — Updated inline AppSwitcher dropdowns ### Category structure (9 categories) 1. **Creating** — rSpace, rPubs, rTube, rSwag 2. **Planning** — rCal, rTrips, rMaps 3. **Communicating** — rChats, rInbox, rMail, rForum 4. **Deciding** — rVote, rChoices 5. **Funding & Commerce** — rFunds, rCart, rAuctions, rWork 6. **Sharing** — rPhotos, rNetwork, rSocials, rFiles 7. **Observing** — rData 8. **Work & Productivity** — rNotes 9. **Identity & Infrastructure** — rIdentity, rWallet, rStack ## Acceptance Criteria - [x] rTube and rSwag moved to "Creating" category - [x] rSocials added to "Sharing" category - [x] Canonical rstack-apps.json created - [x] All AppSwitcher/EcosystemFooter components updated (26 repos) - [x] Header bar standardized across all rApps - [x] rSwag using standard Header + actions pattern - [x] UserMenu shows 🔑 Sign In / 🔐 when logged in - [x] SpaceSwitcher reads EncryptID token from localStorage - [x] /api/spaces proxy created in all React rApps - [x] /api/me auth route created in all React rApps - [x] All repos committed, pushed to dev, merged to main ## Notes - rswag-online had diverged dev branch — rebased successfully - rcart-online, rfunds-online, rNetwork-online use `gitea` remote (not `origin`) - rvote-online GitHub remote was not found — pushed to gitea instead - rsocials-online has 5 pre-existing dirty files (unrelated to this task) - rphotos-online was already on main branch (no dev branch) - rnotes-online has app-specific header extensions (SearchBar, feature shortcuts) — kept as-is with standard base