Skip to main content

max / makenotwork

Move completed dashboard work to todo_done.md, slim remaining items Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Author: Max J. <87768334+MaxJMath@users.noreply.github.com> · 2026-05-05 18:04 UTC
Commit: 46bdd287131d3a26c2dc4e08c14d5937d2fbd8a7
Parent: bf66761
2 files changed, +26 insertions, -62 deletions
@@ -25,80 +25,26 @@ Split checkout.rs (792 -> 434 + 308 helpers). yara-x bumped 1.14->1.15 (intaglio
25 25 - [x] [rust-fuzz] Replace `.unwrap()` with `.expect("tier passed is_none guard")` in db/creator_tiers.rs:607
26 26 - [x] [rust-fuzz] Change `Config.host_url` from `String` to `Arc<str>` — eliminates 30+ String clones across codebase
27 27
28 - ### Dashboard Restructure (2026-05-05)
28 + ### Dashboard Usability — Remaining (2026-05-05)
29 29
30 - Redesign user dashboard around user intent rather than role. Split the monolithic Account tab into three purpose-driven tabs. Gate content by account state (fan → new creator → active creator).
30 + Dashboard restructure complete (Phases 1-6 in todo_done.md). Tab layout: Projects, Payments, Analytics, Profile, Account, Plan + overflow. Fan/creator progressive disclosure implemented. Labels removed. Jargon renamed.
31 31
32 - #### Tab Structure
32 + #### Performance
33 + - [ ] Cross-site performance pass — pre-fetch tab data on hover, optimize perceived load times
33 34
34 - New user-level tabs: **Projects, Payments, Analytics, Profile, Account, Plan** + overflow (Media, SSH Keys, Forums, Support).
35 -
36 - Fan tab bar (no creator access): **Profile, Payments, Plan, Support** — 4 tabs, no overflow.
37 -
38 - | Tab | Contents | Mental model |
39 - |-----|----------|--------------|
40 - | Projects | Project list, create project | "My work" |
41 - | Payments | Purchases (fan), + sales/tips/splits (creator) | "My money" |
42 - | Analytics | Views, revenue, fans | "My numbers" |
43 - | Profile | Display name, bio, links, custom domain, personal feed | "How the world sees me" |
44 - | Account | Email/username, password, 2FA, passkeys, sessions, notifications, data export/import, account status, pause, delete | "My account's mechanics" |
45 - | Plan | Creator tier, storage, Stripe connect, invites, broadcast; or "Become a Creator" application for fans | "My relationship with the platform" |
46 -
47 - Overflow (creator only): Media (after first project), SSH Keys (when git enabled), Forums (when MT memberships exist), Support (always).
48 -
49 - #### Progressive Disclosure by Account State
50 -
51 - **Fan (no creator access):**
52 - - Profile: display name, bio, links, personal feed. No custom domain
53 - - Payments: purchases only. No seller sections
54 - - Plan: "Become a Creator" — explanation, tier comparison, application form
55 - - Account: full security (password, 2FA, passkeys, sessions), fan notification prefs (release alerts, login alerts), data export, delete
56 - - Hidden entirely: Projects, Analytics
57 -
58 - **New creator (approved, no projects/sales yet):**
59 - - All fan content, plus:
60 - - Projects: empty state → "Create your first project"
61 - - Analytics: empty state → "Publish an item to start tracking views and revenue"
62 - - Profile: + custom domain
63 - - Account: + pause creator, + creator notification prefs (sale, follower, issue alerts)
64 - - Payments: + empty seller section ("Once you make sales, they appear here")
65 - - Plan: current tier, storage, upgrade/downgrade, invites, broadcast
66 -
67 - **Active creator:**
68 - - Full content in all tabs
69 -
70 - #### Implementation Steps
71 -
72 - - [x] **Phase 1: Split templates** — Extract `user_details.html` into `user_profile.html`, `user_account.html`, `user_plan.html`
73 - - [x] **Phase 2: Route handlers** — Add `dashboard_tab_profile`, `dashboard_tab_account`; keep `dashboard_tab_creator` (served as "Plan" tab)
74 - - [x] **Phase 3: Tab bar** — Update `dashboard-user.html` with new tab layout. Fan vs creator logic for which tabs render
75 - - [x] **Phase 4: Progressive disclosure** — Gate sections within each tab by account state. Custom domain behind creator access. Seller payments behind creator access. Creator notifications behind creator access. Analytics empty state improved
76 - - [x] **Phase 5: Move SyncKit to project dashboard** — Project-level tab alongside Code, filtered to that project's apps. DB query `get_sync_apps_by_project` added. Removed from user-level overflow
77 - - [x] **Phase 6: Simplify Stripe status** — Single intent-driven status: "Ready to receive payments" (green check) or "Action required: [task]" (warning). Replaces 3-column grid + multiple warning banners
78 - - [ ] **Phase 7: Performance pass** — Deferred to a dedicated cross-site performance push. Pre-fetch tab data on hover, optimize perceived load times, aim for A+ responsiveness across every page
79 -
80 - #### Remaining Items (from previous audit, unchanged)
81 -
82 - Discoverability:
35 + #### Discoverability
83 36 - [ ] Add Media Library access from content editors — "Insert Image" button in blog/item editors
84 37 - [ ] Add content search/filter to project Content tab — search by title, filter by status/type
85 38 - [ ] Add "Embed & Share" quick action on Item Overview
39 + - [ ] Add bulk operations hint on Content tab
40 + - [ ] Add contextual next-step suggestions after key actions
86 41
87 - Learnability:
88 - - [x] Rename jargon: Insertions → "Clips"/"Dynamic Clips", Revenue Splits → "Collaborator Payouts", SyncKit tab → "Cloud Sync"
89 - - [x] Remove Labels feature — AI disclosure covers the trust signal use case. Deleted: db module, API routes, admin panel, discover filters, project settings, item publish confirmations, 12 tests. DB tables (labels, project_labels) still exist but are unused; drop in a future migration
90 - - [x] Add empty state context to analytics (done in Phase 4)
91 -
92 - Feature Completeness:
42 + #### Feature Completeness
93 43 - [ ] Add download count analytics per item
94 44 - [ ] Add cross-project item view
95 45 - [ ] Add refund initiation from dashboard
96 46 - [ ] Add "Export as CSV" button on item sales tables
97 47
98 - Discoverability (Lower):
99 - - [ ] Add bulk operations hint on Content tab
100 - - [ ] Add contextual next-step suggestions after key actions
101 -
102 48 ### UX — Deferred (post-beta table stakes)
103 49 - [ ] Reviews/ratings system for items
104 50 - [ ] Gift purchases at checkout
@@ -4,6 +4,24 @@ Items moved from todo.md. See git history for implementation details.
4 4
5 5 ---
6 6
7 + ## Dashboard Restructure + Usability (2026-05-05)
8 +
9 + Dashboard:
10 + - [x] Split Account tab into Profile, Account, Plan (3 templates, 3 routes)
11 + - [x] Progressive disclosure: fan vs creator tab bar, gated sections
12 + - [x] Move SyncKit to project dashboard as "Cloud Sync" tab
13 + - [x] Simplify Stripe status display (single intent-driven line)
14 + - [x] Onboarding link fixed to tab-profile, creators page link to #tab-plan
15 + - [x] Legacy user_details.html removed, /tabs/details redirects to profile
16 +
17 + Jargon:
18 + - [x] Insertions → Clips/Dynamic Clips, Revenue Splits → Collaborator Payouts, SyncKit tab → Cloud Sync
19 +
20 + Labels:
21 + - [x] Removed labels feature entirely (AI disclosure covers trust signals). Migration 094 drops tables. 12 tests removed, ~1100 lines deleted net
22 +
23 + ---
24 +
7 25 ## v0.4.10 Deploy (2026-05-04)
8 26 - [x] Fix CSRF exempt path matching: `/postmark/` trailing slash → double-slash in starts_with. Changed to `/postmark`.
9 27 - [x] Add `/api/checkout/guest-free` to CSRF exempt list.