The Problem — 11 Nav Groups, 94 Routes, 17 Languages, 1 User
The current sidebar nav has 11 groups with 94 routes. A new user lands on the dashboard and sees a wall of icons. Even after they "complete setup", the sidebar doesn't change shape to match their progress — it's static.
Compare to industry leaders:
- Duolingo: 1 main nav (Home, Practice, Leaderboard, Profile) + 1 settings. Total ~6 top-level routes.
- Khan Academy: 4 nav items (Watch, Learn, Practice, Coach) + a Search.
- Coursera: 3 nav items (Home, My Learning, Discover) + a search.
- Codecademy: 4 nav items (Catalog, Learn, Pro, Profile).
Maahir is at 11 nav groups — 3-4x more than any peer.
This isn't a feature gap. Maahir has 3-4x more features than peers, but the IA doesn't have to be 3-4x wider. Modern UX principle: wide product, narrow nav, deep search.
The Proposed 4-Tier IA
Replace 11 sidebar groups with 4 + 1 utility cluster. Total visible items in the sidebar: ~15 (vs 94 today). Everything else is reachable via Search or Settings.
Tier 1: PRIMARY NAV (4 items — always visible)
| Icon | Name | Replaces | Routes |
|---|---|---|---|
| 🏠 | Home | Dashboard + Onboarding checklist + Job-Ready checklist + Journey Map | /student/dashboard, /student/onboarding/checklist, /student/job-ready, /student/journey |
| 📚 | Learn | Entire 📚 Learn group + 🤖 Practice group + 🧰 Tools group (consolidated) | /student/guide, /student/modules, /student/assignments, /student/assessments, /student/certificates, /student/scenarios, /student/roleplay, /student/roleplay/series, /student/roleplay/replays, /student/roleplay/reverse, /student/roleplay/multiplayer, /student/branching, /student/timed, /student/chains, /student/mock-interview, /student/playground, /student/coach, /student/micro, /student/daily-challenge, /student/srs, /student/voice-assistant, /student/toolbox, /student/project-wizard, /student/business-studio |
| 🎓 | Mastery | 🎓 Mastery group + 🏆 Achieve group + 🧰 specific mastery routes | /tracks, /student/mastery, /student/professions, /student/capstone, /student/credentials, /student/career-hub, /student/career-journey, /transition, /student/skill-tree |
| 💰 | Earn | 💰 Earn group + 🏆 credentialing routes that lead to jobs | /student/earn, /student/works, /jobs, /talent, /student/client-projects, /student/freelance-playbook, /student/portfolio |
Tier 2: SECONDARY NAV (4 items — collapsible "More")
| Icon | Name | Replaces |
|---|---|---|
| ⚔️ | Compete | ⚔️ Compete group (9 items → 1 sub-page with all competitions) |
| 👥 | Community | 👥 Community group (7 items → 1 sub-page) |
| 🔍 | Discover | 🔍 Discover group (10 items → 1 sub-page with search + industries + library + opportunity finder) |
| 🏠 | My Space | 🏠 My Space group (11 items → 1 sub-page with profile, analytics, goals, recordings, support) |
Tier 3: UTILITY (always at bottom of sidebar)
| Icon | Name | Purpose |
|---|---|---|
| 🔍 | Search | Global /student/search |
| 👤 | Profile / Logout | Compact — link to /student/profile, logout |
| 🩺 | Status | Live system status indicator |
Tier 4: SETTINGS (modal/page)
Reachable from Profile. Single page with: language, accessibility, theme, notifications, privacy, connected accounts.
Specific UX Findings (Ordered by Severity)
🔴 Critical (Visible Bugs)
1. Top header shows marketing nav when logged in
Where: Every authenticated page (/student/*)
What: The top header shows 15+ marketing links (Why Maahir, Tracks, Curriculum, How We Teach, etc.) that take the user OUT of the app to marketing pages. Also "Login" and "Apply Free" still appear.
Fix:
// Pseudocode
if (user.isAuthenticated()) {
showStudentHeader(); // Dashboard, Learn, Mastery, Earn, Profile
} else {
showMarketingHeader(); // Current
}
2. "Login" link in top header when logged in
Where: All /student/* pages, post-login
What: "Login" appears in the top header even when the user is logged in. Clicking it logs you out (or sends you to /login).
Fix: Hide "Login" and "Apply Free" when authenticated. Replace with "Logout" and "My Profile".
3. Dashboard shows "61 unread notifications"
Where: /student/dashboard, header
What: Persistent count of 61 unread notifications. Likely a mix of system messages, streak warnings, classmate activity. Either:
- Auto-archive after 7 days (best)
- Show "60+" with amber color, not red
- Bucket: New (urgent) vs. Updates (non-urgent) vs. Activity (info)
🟠 High Priority (UX Friction)
4. Maahir Score 67 is opaque
Where: /student/dashboard, mid-page
What: "67 overall engagement" with 6 sub-metrics. No definition, no percentile, no trend arrow, no "how to improve" link.
Fix: Tooltip explaining the formula. Add: "↑ 12 this week" (trend), "Top 32% of batch" (percentile), "→ View your report" (action).
5. #72 rank has no context
Where: /student/dashboard, leaderboard section
What: "You're #72 on the board" — of how many?
Fix: "You're #72 of 460 learners · Top 16% this week"
6. Streak system gives wrong impression
Where: /student/dashboard, prominent warning
What: "Your 1-day streak is at risk! Complete an exercise or survey today to keep it alive!" for a user since June 2026.
Fix: Investigate the streak logic. Either it's broken (rebuild it) or it's accurate and the platform has a retention problem (in which case the /ngo claim about "auto-nudge engine reduces dropout" is unsupportable).
7. "Today" appears 5+ times on dashboard
Where: /student/dashboard
What: "Today's 5-minute skill", "Today's goal", "Daily Challenge", "Daily Check-in", "Today's skill · Communication"
Fix: Pick ONE primary "Today" widget. Make it the "Today's goal" (3 tasks). The others are reachable via Learn → 5-Minute Skills / Daily Challenge / Daily Check-in.
8. Two menus with different IAs
Where: Sidebar (11 groups) + Top header (15 marketing links)
What: Two competing nav systems. The sidebar is for the app, the top header is for the marketing site. After login, the top header still shows marketing links.
Fix: When logged in, top header should be: Logo, Search, Notifications, Profile, Logout. Marketing IA only on /, /why-maahir, /tracks, etc.
9. "Dashboard" link in sidebar + "M" avatar in header
Where: Sidebar + top-right
What: Two paths to the same place (Dashboard). Confusing for new users.
Fix: Remove "Dashboard" from sidebar (avatar replaces it). Sidebar starts with Learn.
10. Sidebar search box is decorative
Where: /student/dashboard, sidebar top
What: "Search navigation…" search box. Typing doesn't filter the sidebar items in real time.
Fix: Either make it actually filter, or remove it. If it filters, it should show matching routes from ALL groups, not just visible ones.
🟡 Medium Priority (Polish)
11. Daily Check-in modal is intrusive
Where: First visit each day
What: Modal blocks the page with a 5-question survey. Uses Roman Urdu. User says "Maybe later" but it returns daily.
Fix: Move to a non-modal widget. Persistent banner: "Daily check-in (+50 pts) — Take it →". Dismissible for the day.
12. Notifications dropdown has Channels/DMs/Online tabs
Where: Header, notifications button
What: The chat overlay shows 3 tabs (Channels, DMs, Online) but no obvious entry point from a non-chat action. Mixed concerns: notifications vs chat.
Fix: Separate the bell (notifications, system + activity) from the chat button (in-app messaging).
13. "Combo Chain x1.0" doesn't explain what triggers growth
Where: /student/dashboard, stats card
What: "⚡ Combo Chain x1.0 — Complete actions in a row to build your combo!"
Fix: Tooltip: "3 actions in a row = x1.5, 5 in a row = x2, 10 in a row = x5". Or: "3 more actions to boost your combo."
14. Resume exercise "last active: never"
Where: /student/dashboard, "Resume" card
What: "Imposter Syndrome — Module 1: Professional Confidence · last active: never · Resume →"
Fix: Wording is wrong. Should be "Not started yet" or remove the last-active field if it doesn't apply.
15. "Today's 5-minute skill" says 3 min
Where: /student/dashboard
What: "Today's 5-minute skill · Communication · Ask Questions That Open Up Conversations · ⏱ 3 min"
Fix: Rename to "Today's Quick Skill" (3 min) OR ensure all are 5 min.
16. Hakeem mascot has no profile
Where: /student/dashboard, level card
What: "💎 Hakeem · Level 6 · 1,726 pts to level up · 42% · 3,274 XP"
Fix: Tooltip: who is Hakeem? (Character, AI tutor, what?). Or link to a Hakeem profile page.
17. Setup progress hides what step is missing
Where: /student/dashboard, top strip
What: "Complete your setup (4/5)" — what is step 5?
Fix: Click → /student/onboarding/checklist → show 5 specific steps with checkmarks.
🟢 Low Priority (Visual Polish)
- Theme toggle (🌙) — does it have a sun icon for light mode? Should match state.
- Avatar circles for classmates show initial only (e.g. "M" for Munaf). Consider emoji avatars for fun.
- Sidebar version pill "v11.65.0 Learn AI · Build Anything 🔍" is informative but takes vertical space. Move to footer or settings.
- Class Activity feed has emojis (🚀, 🌍, 🎯) per item — could be standardized.
- "Join Group" CTA appears every dashboard visit. If user has joined, hide.
- Notifications button at 61 is a red badge. Should be amber or just the number without the alarming red.
Information Architecture: Before vs After
Before (11 groups, 94 routes)
Sidebar:
├── Dashboard
├── 📚 Learn (8)
│ ├── Learning Guide
│ ├── Exercises
│ ├── Assignments
│ ├── Assessments
│ ├── Certificates
│ ├── Wisdom Hub
│ ├── Saheli Toolkit
│ └── Women Empowerment
├── 🤖 Practice (16)
│ ├── Role-Play Conversations
│ ├── Decision Scenarios
│ ├── Series (Story Arcs)
│ ├── English Tutor
│ ├── Mock Interview
│ ├── AI Coach
│ ├── 5-Minute Skills
│ ├── Daily Challenge
│ ├── Spaced Review
│ ├── Playground
│ ├── Voice Assistant
│ ├── Replays
│ ├── Branching Stories
│ ├── Timed Challenges
│ ├── Reverse Roleplay
│ └── Story Chains
├── 🔍 Discover (10)
│ ├── Search
│ ├── Industries
│ ├── Partners
│ ├── Pakistan AI Economy
│ ├── Free Learning Library
│ ├── AI Guide
│ ├── Opportunity Finder
│ ├── Idea Library
│ ├── Skill Tree
│ └── Career Journey
├── 🧰 Tools (3)
├── 💰 Earn (6)
├── 🎓 Mastery (13)
├── 🏆 Achieve (7)
├── ⚔️ Compete (9)
├── 👥 Community (7)
├── 🏠 My Space (11)
└── ℹ️ Platform (4)
After (4 primary + 4 secondary + utility)
Sidebar:
├── 🏠 Home
├── 📚 Learn
│ ├── Browse all 9,259 role-plays
│ ├── Today's quick skill
│ ├── Daily challenge
│ ├── Daily check-in
│ ├── My assignments
│ ├── My assessments
│ ├── Tools
│ ├── Voice assistant
│ └── ... (search or filter to find more)
├── 🎓 Mastery
│ ├── My track
│ ├── 73 profession packs
│ ├── Job-ready checklist
│ ├── Credentials
│ ├── Capstone
│ └── Career hub
├── 💰 Earn
│ ├── Maahir Works (5 open gigs)
│ ├── Talent Portal
│ ├── Job board
│ ├── Client projects
│ ├── Freelance playbook
│ └── Portfolio
├── [More ▾]
│ ├── ⚔️ Compete
│ ├── 👥 Community
│ ├── 🔍 Discover
│ └── 🏠 My Space
├── ─────
├── 🔍 Search
├── 🩺 Status
└── 👤 Profile / Logout
Visible items: ~15 (vs 94). Everything else is searchable or in sub-pages.
Mobile UX (Bonus)
I didn't fully test mobile, but the sidebar nav will not work on mobile. Likely currently shows a hamburger that opens a long list. Fix: Bottom tab bar on mobile with 4 items (Home, Learn, Mastery, Earn) + a "More" button for the rest.
Quick Wins (Less than 1 Day Each)
- Replace top header when authenticated (2 hours)
- Hide "Login" link when authenticated (30 min)
- Auto-archive notifications after 7 days (1 day)
- Add tooltip to Maahir Score with formula (1 hour)
- Add context to #72 rank (1 hour)
- Remove the persistent 4-month streak warning (or fix the streak) (1-3 days)
- Add "Today's primary action" widget — pick ONE thing (2 hours)
- Standardize "min" labels (3 min vs 5 min) (30 min)
- Add Hakeem profile link (1 hour)
- Fix "last active: never" wording (15 min)
Big Wins (1-2 Weeks Each)
- Rebuild the sidebar nav to 4+4+utility (3-5 days, including QA)
- Build mobile bottom-tab nav (3-5 days)
- Build "Today's primary action" logic — what should the user do right now? (3-5 days)
- Investigate and fix the streak/engagement decay (could be 1-2 weeks of product work)
- Build a unified Settings page (currently scattered across profile + nav) (3-5 days)