|
| 1 | +# BetterCodeWiki - UX Research Findings & Implementation Guide |
| 2 | + |
| 3 | +## Executive Summary |
| 4 | + |
| 5 | +A comprehensive UX audit of BetterCodeWiki has identified **15 issues** preventing new users from finding the app intuitive. The good news: **the platform is well-architected**—the issues are UX-related (discoverability, progressive disclosure), not fundamental design flaws. |
| 6 | + |
| 7 | +**Root Cause**: Features and content presented all at once without guidance or progressive disclosure. |
| 8 | + |
| 9 | +**Solution**: Add onboarding, make features discoverable, implement progressive disclosure. |
| 10 | + |
| 11 | +**Estimated Implementation Time**: 13 hours across 3 phases |
| 12 | + |
| 13 | +--- |
| 14 | + |
| 15 | +## Quick Reference: Issues by Severity |
| 16 | + |
| 17 | +### 🔴 Critical Issues (Block User Adoption) - 5 Issues |
| 18 | + |
| 19 | +| # | Issue | Impact | Effort | File | |
| 20 | +|---|-------|--------|--------|------| |
| 21 | +| 1 | Diagram complexity without simplify toggle | Users overwhelmed on first diagrams | 1hr | `src/components/Mermaid.tsx` | |
| 22 | +| 2 | Blank wiki page on first load | Users confused, don't know where to start | 1hr | `src/app/[owner]/[repo]/page.tsx` | |
| 23 | +| 3 | Navigation features hidden (Search, Graph, TOC) | Users miss powerful features | 1.5hrs | Multiple files | |
| 24 | +| 4 | Configuration modal overwhelming | Too many options at once | 2hrs | `src/components/ConfigurationModal.tsx` | |
| 25 | +| 5 | Diagram click-to-explain undiscovered | Feature exists but users don't know | 0.5hr | `src/components/Mermaid.tsx` | |
| 26 | + |
| 27 | +### 🟠 Major Issues (Hurt Usability) - 5 Issues |
| 28 | +- Issue #6: Search completely hidden |
| 29 | +- Issue #7: Table of Contents missing on small screens |
| 30 | +- Issue #8: Sidebar text truncation without tooltips |
| 31 | +- Issue #9: No visual hierarchy between features |
| 32 | +- Issue #10: Mobile layout cramped |
| 33 | + |
| 34 | +### 🟡 Moderate Issues (Polish) - 5 Issues |
| 35 | +- Issue #11: Freshness indicator too subtle |
| 36 | +- Issue #12: Error messages lack guidance |
| 37 | +- Issue #13: Loading states generic |
| 38 | +- Issue #14: No first-time user onboarding |
| 39 | +- Issue #15: No diagram color legend |
| 40 | + |
| 41 | +--- |
| 42 | + |
| 43 | +## Detailed Issue Breakdown |
| 44 | + |
| 45 | +### Issue #1: Diagram Complexity Without Progressive Disclosure |
| 46 | + |
| 47 | +**The Problem**: |
| 48 | +Users see overwhelming 20+ node diagrams with 4-color palette and no way to simplify. |
| 49 | + |
| 50 | +**Why It Happens**: |
| 51 | +- Mermaid.tsx renders all nodes with full detail by default |
| 52 | +- No UI toggle for simplified vs detailed view |
| 53 | +- AI generation prompt creates comprehensive diagrams |
| 54 | + |
| 55 | +**The Fix**: |
| 56 | +1. Add `[Simplify/Details]` toggle button next to expand button |
| 57 | +2. When simplified: hide non-critical nodes, use single color |
| 58 | +3. When detailed: show everything with color palette |
| 59 | + |
| 60 | +**File & Lines**: `src/components/Mermaid.tsx` lines 1228-1238 |
| 61 | + |
| 62 | +**Code Example**: |
| 63 | +```tsx |
| 64 | +<button |
| 65 | + onClick={() => setSimplifyMode(!simplifyMode)} |
| 66 | + className="..." |
| 67 | + title={simplifyMode ? "Show details" : "Simplify"} |
| 68 | +> |
| 69 | + {simplifyMode ? "Details" : "Simple"} |
| 70 | +</button> |
| 71 | +``` |
| 72 | + |
| 73 | +**User Impact**: Immediate relief when seeing first diagram |
| 74 | + |
| 75 | +--- |
| 76 | + |
| 77 | +### Issue #2: Blank Wiki Page on First Load |
| 78 | + |
| 79 | +**The Problem**: |
| 80 | +New user arrives at wiki → sees "Select a page" placeholder → has no idea what to do |
| 81 | + |
| 82 | +**Current Code**: |
| 83 | +```tsx |
| 84 | +<div className="flex flex-col items-center justify-center h-full text-muted-foreground"> |
| 85 | + <div className="p-4 bg-muted/30 rounded-full mb-4"> |
| 86 | + <BookOpen size={30} className="opacity-50" /> |
| 87 | + </div> |
| 88 | + <p className="text-lg font-medium text-foreground">Select a page</p> |
| 89 | + <p className="text-sm">Choose a page from the sidebar to view its content</p> |
| 90 | +</div> |
| 91 | +``` |
| 92 | + |
| 93 | +**The Fix**: |
| 94 | +1. Auto-select first "introduction" or "overview" page on load |
| 95 | +2. Show onboarding cards suggesting next reading |
| 96 | +3. Display "pro tip" about search feature |
| 97 | + |
| 98 | +**File & Lines**: `src/app/[owner]/[repo]/page.tsx` lines 322-332 (handlePageSelect) |
| 99 | + |
| 100 | +**User Impact**: Page immediately displays content with guidance |
| 101 | + |
| 102 | +--- |
| 103 | + |
| 104 | +### Issue #3: Navigation Features Are Hidden |
| 105 | + |
| 106 | +**The Problem**: |
| 107 | +- Search only discoverable via Cmd+K (no visible button) |
| 108 | +- Graph button is tiny and easy to miss |
| 109 | +- Table of Contents only visible on XL screens (1280px+) |
| 110 | + |
| 111 | +**The Fix**: |
| 112 | +``` |
| 113 | +Toolbar Changes: |
| 114 | +- Add visible [🔍 Search] button with ⌘K hint |
| 115 | +- Make [Graph] button more prominent |
| 116 | +- Add [≡ On Page] TOC toggle for smaller screens |
| 117 | +``` |
| 118 | + |
| 119 | +**Files**: |
| 120 | +- `src/app/[owner]/[repo]/page.tsx` lines 364-396 |
| 121 | +- `src/components/TableOfContents.tsx` line 716 |
| 122 | + |
| 123 | +**User Impact**: Users discover features naturally without memorizing shortcuts |
| 124 | + |
| 125 | +--- |
| 126 | + |
| 127 | +### Issue #4: Configuration Modal Overwhelming |
| 128 | + |
| 129 | +**The Problem**: |
| 130 | +User sees 15+ options at once: language, template, provider, model, auth code, file filters, etc. |
| 131 | + |
| 132 | +**The Fix**: |
| 133 | +Split into two tabs: |
| 134 | +- **Basic**: Language, Template, Recommended Model |
| 135 | +- **Advanced**: File filters, Custom model, Auth code |
| 136 | + |
| 137 | +**File**: `src/components/ConfigurationModal.tsx` (entire 26KB component) |
| 138 | + |
| 139 | +**User Impact**: Beginners see only essential options; advanced users find what they need |
| 140 | + |
| 141 | +--- |
| 142 | + |
| 143 | +### Issue #5: Diagram Click-to-Explain Feature Undiscovered |
| 144 | + |
| 145 | +**The Problem**: |
| 146 | +Clicking diagram nodes opens an AI explanation panel, but users don't know it's possible. No tooltip. No visual indicator. |
| 147 | + |
| 148 | +**The Fix**: |
| 149 | +1. Add tooltip on first diagram load: "💡 Click any node for explanation" |
| 150 | +2. Add pulsing border animation to first node |
| 151 | +3. Show sample explanation inline |
| 152 | + |
| 153 | +**File**: `src/components/Mermaid.tsx` lines 1171-1206 |
| 154 | + |
| 155 | +**Code Example**: |
| 156 | +```tsx |
| 157 | +{showNodeHint && !hintDismissed && ( |
| 158 | + <div className="absolute inset-0 flex items-center justify-center bg-black/30 pointer-events-none"> |
| 159 | + <div className="bg-card border border-border rounded-lg p-4 pointer-events-auto"> |
| 160 | + <p className="text-sm font-semibold">💡 Tip: Click any node for more details</p> |
| 161 | + <button onClick={() => setHintDismissed(true)}>Got it</button> |
| 162 | + </div> |
| 163 | + </div> |
| 164 | +)} |
| 165 | +``` |
| 166 | + |
| 167 | +**User Impact**: Users discover and use the explanation feature naturally |
| 168 | + |
| 169 | +--- |
| 170 | + |
| 171 | +## Implementation Phases |
| 172 | + |
| 173 | +### Phase 1: Quick Wins (3 hours) - Highest Impact |
| 174 | +✅ Auto-select first page |
| 175 | +✅ Add visible search button |
| 176 | +✅ Add diagram simplify toggle |
| 177 | +✅ Add node click tooltip |
| 178 | +✅ Fix sidebar text truncation |
| 179 | + |
| 180 | +**When to do**: Start here immediately |
| 181 | + |
| 182 | +### Phase 2: Medium Effort (6 hours) |
| 183 | +✅ Restructure ConfigurationModal (Basic/Advanced tabs) |
| 184 | +✅ Make Table of Contents responsive (collapsible on MD screens) |
| 185 | +✅ Add first-time user onboarding |
| 186 | +✅ Improve error messages |
| 187 | + |
| 188 | +**When to do**: After Phase 1 is validated |
| 189 | + |
| 190 | +### Phase 3: Polish & Performance (4 hours) |
| 191 | +✅ Mobile Ask AI drawer (bottom-sheet instead of side) |
| 192 | +✅ Diagram color legend |
| 193 | +✅ Loading states with progress |
| 194 | +✅ Wiki freshness indicator prominence |
| 195 | + |
| 196 | +**When to do**: Final refinements |
| 197 | + |
| 198 | +--- |
| 199 | + |
| 200 | +## Key Files to Modify |
| 201 | + |
| 202 | +| File | Lines | Purpose | Phase | |
| 203 | +|------|-------|---------|-------| |
| 204 | +| `src/app/[owner]/[repo]/page.tsx` | 322-732 | Auto-select, toolbar, layout | 1-2 | |
| 205 | +| `src/components/Mermaid.tsx` | 1171-1240 | Simplify toggle, tooltip | 1 | |
| 206 | +| `src/components/ConfigurationModal.tsx` | 1-800 | Tab interface | 2 | |
| 207 | +| `src/components/WikiTreeView.tsx` | 200-360 | Search visibility | 1 | |
| 208 | +| `src/components/TableOfContents.tsx` | 716 | Responsive breakpoints | 2 | |
| 209 | + |
| 210 | +## Components to Create |
| 211 | + |
| 212 | +1. `OnboardingTour.tsx` - First-time user guide (1.5hrs) |
| 213 | +2. `DiagramLegend.tsx` - Color/shape legend (0.5hr) |
| 214 | +3. Responsive Ask drawer (mobile bottom-sheet) (2hrs) |
| 215 | + |
| 216 | +--- |
| 217 | + |
| 218 | +## Testing Checklist |
| 219 | + |
| 220 | +After each implementation: |
| 221 | +- [ ] Works on mobile (375px), tablet (768px), desktop (1280px+) |
| 222 | +- [ ] Keyboard navigation still works (Cmd+K, Alt+R, etc.) |
| 223 | +- [ ] No console errors |
| 224 | +- [ ] Theme toggle works (light/dark mode) |
| 225 | +- [ ] ARIA labels present (accessibility) |
| 226 | +- [ ] LocalStorage state persists |
| 227 | +- [ ] Smooth animations (60fps) |
| 228 | +- [ ] Responsive images/diagrams |
| 229 | + |
| 230 | +--- |
| 231 | + |
| 232 | +## Success Metrics |
| 233 | + |
| 234 | +**Before Implementation**: |
| 235 | +- New users report: "I don't know where to start" |
| 236 | +- Diagram feature reports: "Too complex" |
| 237 | +- Feature discovery: "How do I search?" |
| 238 | + |
| 239 | +**After Implementation**: |
| 240 | +- New users: Auto-selected page provides immediate context |
| 241 | +- Diagrams: Toggle between simple/detailed based on needs |
| 242 | +- Features: Visible buttons + helpful tooltips guide exploration |
| 243 | + |
| 244 | +--- |
| 245 | + |
| 246 | +## Additional Resources |
| 247 | + |
| 248 | +### In This Repository: |
| 249 | +- `/UX_RESEARCH_FINDINGS.md` (this file) |
| 250 | +- `/.claude/memory/README.md` - Research documentation index |
| 251 | +- `/.claude/memory/ux-improvements-detailed.md` - Code examples & snippets |
| 252 | +- `/.claude/memory/ux-mockup-descriptions.md` - Visual specifications |
| 253 | + |
| 254 | +### Implementation Checklist: |
| 255 | +Use this file as your checklist. Check off each issue as you implement: |
| 256 | +- [ ] Issue #1: Diagram simplify toggle |
| 257 | +- [ ] Issue #2: Auto-select first page |
| 258 | +- [ ] Issue #3: Visible search + graph + TOC |
| 259 | +- [ ] Issue #4: ConfigModal tabs |
| 260 | +- [ ] Issue #5: Node click tooltip |
| 261 | +- [ ] Issues #6-10: Major UX fixes |
| 262 | +- [ ] Issues #11-15: Polish improvements |
| 263 | + |
| 264 | +--- |
| 265 | + |
| 266 | +## Questions or Issues? |
| 267 | + |
| 268 | +Refer to the detailed implementation guides in `/.claude/memory/` for: |
| 269 | +- Exact line numbers and code locations |
| 270 | +- Complete code examples |
| 271 | +- Visual mockups and specifications |
| 272 | +- Performance optimization suggestions |
| 273 | + |
| 274 | +--- |
| 275 | + |
| 276 | +**Generated**: February 24, 2026 |
| 277 | +**Research Team**: ux-researcher, diagram-researcher, perf-researcher |
| 278 | +**Status**: Ready for implementation phase |
0 commit comments