Skip to content

16 — Menu Architecture, ContactID & Platform Design

Reference/Archive — superseded by 00-ROADMAP.md on any conflict. Written for a web-first + Capacitor strategy that is superseded (iOS is native SwiftUI; one dashboard per 20-UI-SIMPLIFICATION.md). Update 2026-07-03: ContactID is now a Release headline feature — the release-era spec is 53-CONTACTID-RELEASE.md, which supersedes this doc's framing (web placement, React/qrcode.react implementation plan, effort table). The card-design exploration below (three visual concepts, "Vinyl Card" recommended) remains valid reference.

Purpose: Design exploration for navigation/menu system, ContactID feature, and iOS/iPadOS considerations. Date: March 2026 Context: Web-first deployment with strong iOS/iPadOS ambition. ContactID elevated to Phase 0-1 priority.


Table of Contents

  1. ContactID — Feature Design
  2. Menu & Navigation Architecture
  3. Menu Component Options — Desktop vs Mobile
  4. iOS/iPadOS Considerations
  5. Design Decision Matrix

1. ContactID — Feature Design

Why Phase 0-1 (Not Phase 4)

ContactID is not a gimmick — it's the social currency of the platform. In 2026+, every professional creative needs a shareable digital identity that works at events, studios, networking sessions, and online. It's the first thing you share when you meet someone in the industry.

Without ContactIDWith ContactID
"What's your Instagram?" → fragmented"Scan my Sonnance card" → entire portfolio
Email a Google Drive linkOne tap → public portfolio + tracks + CV
Business card with LinktreeLiving, verified professional identity
No proof of creditsVerifiable credit history + collaborations

ContactID v1 Scope (Phase 0-1)

FeatureDescriptionComplexity
QR CodeDynamic QR linking to public profileLow
Share LinkCopyable URL (sonnance.com/@username)Low
Card PreviewVisual card design with avatar, name, role, key statsMedium
Download as ImageSave card as PNG for social mediaLow
Add to Apple Wallet.pkpass generation for iOS WalletMedium
NFC Write (future v2)Write URL to NFC tag from mobile appPhase 3

ContactID v1 — Where It Lives

Primary Access: Profile Dropdown

┌─────────────────────────────────┐
│  ┌──────┐                       │
│  │Avatar│  Facundo Ferreyra     │
│  └──────┘  facundo@sonnance.com │
├─────────────────────────────────┤
│  ★ My ContactID        [→]     │  ← NEW: Opens ContactID modal/page
│  ─────────────────────────────  │
│  ⚙ Account Settings            │
│  🔄 Replay Onboarding          │
│  🎨 Appearance  [dark ▾]       │
│  ─────────────────────────────  │
│  ↪ Sign Out                    │
└─────────────────────────────────┘

Secondary Access Points:

  • Profile page → "Share My Profile" button → opens ContactID card
  • Account Settings → new "ContactID" tab
  • Share modal → "Share as ContactID" option

ContactID Card — 3 Design Options

Fits the Sonnance brand identity. The card looks like a vinyl record sleeve.

┌─────────────────────────────────────────────┐
│                                             │
│     DESKTOP / TABLET                        │
│                                             │
│  ┌────────────────────────────────────┐     │
│  │  ╭─────────╮                      │     │
│  │  │         │   FACUNDO FERREYRA   │     │
│  │  │  Avatar │   @facundo           │     │
│  │  │   (CD   │   Producer · Madrid  │     │
│  │  │  style) │                      │     │
│  │  ╰─────────╯   ♪ 42 tracks       │     │
│  │                 ★ 12 projects     │     │
│  │                 👥 8 collabs      │     │
│  │                                   │     │
│  │  ┌─────────┐  [Copy Link]        │     │
│  │  │  QR     │  [Download Card]     │     │
│  │  │  Code   │  [Add to Wallet]     │     │
│  │  │         │  [Share...]          │     │
│  │  └─────────┘                      │     │
│  │                                   │     │
│  │  sonnance.com/@facundo            │     │
│  └────────────────────────────────────┘     │
│                                             │
└─────────────────────────────────────────────┘

┌─────────────────────────┐
│                         │
│   MOBILE                │
│                         │
│  ╭──────────────────╮   │
│  │                  │   │
│  │     ┌──────┐     │   │
│  │     │Avatar│     │   │
│  │     │ (CD) │     │   │
│  │     └──────┘     │   │
│  │                  │   │
│  │ FACUNDO FERREYRA │   │
│  │    @facundo      │   │
│  │ Producer · Madrid│   │
│  │                  │   │
│  │  ♪42  ★12  👥8  │   │
│  │                  │   │
│  │   ┌─────────┐   │   │
│  │   │ QR Code │   │   │
│  │   └─────────┘   │   │
│  │                  │   │
│  ╰──────────────────╯   │
│                         │
│  [Copy Link]            │
│  [Download Card]        │
│  [Add to  Wallet]      │
│  [Share...]             │
│                         │
└─────────────────────────┘

Option B: "Studio Pass" (Badge Style)

Inspired by backstage passes / VIP badges. Vertical format, lanyard aesthetic.

DESKTOP                          MOBILE
┌───────────────────────┐       ┌──────────────────┐
│    ·  SONNANCE  ·     │       │  · SONNANCE ·    │
│   ╭──────────────╮    │       │  ╭────────────╮  │
│   │              │    │       │  │            │  │
│   │   [Avatar]   │    │       │  │  [Avatar]  │  │
│   │              │    │       │  │            │  │
│   ╰──────────────╯    │       │  ╰────────────╯  │
│                       │       │                  │
│  FACUNDO FERREYRA     │       │ FACUNDO FERREYRA │
│  ─────────────────    │       │ ──────────────── │
│  Producer · Musician  │       │ Producer         │
│  Madrid, Spain        │       │ Madrid           │
│                       │       │                  │
│  ♪ 42 tracks          │       │ ♪42 ★12 👥8     │
│  ★ 12 projects        │       │                  │
│  👥 8 collaborations  │       │  ┌────────────┐  │
│                       │       │  │  QR Code   │  │
│  ┌────────┐ [Actions] │       │  └────────────┘  │
│  │QR Code │ Copy Link │       │                  │
│  │        │ Download  │       │  [Actions...]    │
│  │        │ Wallet    │       └──────────────────┘
│  └────────┘ Share     │
│                       │
│  ═══════════════════  │
│  sonnance.com/@user   │
└───────────────────────┘

Option C: "Minimal Card" (Modern/Clean)

Borderless, floating, Apple-inspired. Relies on backdrop blur and subtle shadows.

DESKTOP                                 MOBILE

  ╭──────────────────────────────╮     ╭───────────────────╮
  │                              │     │                   │
  │  [Avatar]  FACUNDO FERREYRA  │     │    [Avatar]       │
  │            @facundo          │     │                   │
  │            Producer · Madrid │     │ Facundo Ferreyra  │
  │                              │     │ @facundo          │
  │  ♪ 42    ★ 12    👥 8       │     │ Producer · Madrid │
  │                              │     │                   │
  │  ┌──────┐                    │     │ ♪42  ★12  👥8    │
  │  │  QR  │  sonnance/@facundo │     │                   │
  │  └──────┘                    │     │    ┌──────┐       │
  │                              │     │    │  QR  │       │
  │  [Copy] [Download] [Wallet]  │     │    └──────┘       │
  ╰──────────────────────────────╯     │                   │
                                       │ [Copy] [↓] [W]   │
                                       ╰───────────────────╯

Option A (Vinyl Card) aligns best with Sonnance's brand (CD/vinyl metaphors, music industry aesthetic). The card becomes a shareable brand asset — users will screenshot and share it on social media, which is organic marketing.

Implementation path:

  1. Create ContactIdCard component (React + Tailwind)
  2. Add QR generation (library: qrcode.react)
  3. Add "Download as PNG" (library: html-to-image)
  4. Add to Profile Dropdown menu
  5. Add Apple Wallet pass generation (backend: .pkpass via passkit-generator)
  6. Create public profile route: /u/[username] or /@[username]

2. Menu & Navigation Architecture

Current State Analysis

ElementDesktop (Beryllium)MobileIssues
Left sidebarIcon rail (Home, Library, Usage)Hidden → hamburger drawerOnly 3 items — underutilizes the space
HeaderSearch + Notifications + ProfileSame but compactNo messages, no quick actions
Profile dropdownSettings, Appearance, Sign OutSameMissing: ContactID, Profile, Team
Bottom barContextual player/actionsSameNot a true mobile nav — no persistent tabs
Account SettingsMy Details, Subscription, Usage tabsSame5 tabs commented out (Profile, Password, Team, Notifications, Integrations)

Proposed Menu Architecture — 3 Options

Why: Users already understand this pattern. Left sidebar for navigation, right panel for context.

DESKTOP / TABLET (landscape)
┌────┬──────────────────────────────────────────────────────┐
│    │  ┌─ Search ─────────────────┐  🔔  💬  [Avatar ▾]  │
│    │  └──────────────────────────┘                        │
│ ┌──┤──────────────────────────────────────────────────────┤
│ │🏠│                                                      │
│ │  │              MAIN CONTENT AREA                       │
│ │📚│                                                      │
│ │  │  (Dashboard / Artist / Project / Track / Wave)       │
│ │🎵│                                                      │
│ │  │                                                      │
│ │📊│                                                      │
│ │  │                                                      │
│ │──│                                                      │
│ │📁│                                                      │
│ │  │                                                      │
│ │🗑│                                                      │
│ └──┘                                                      │
├───────────────────────────────────────────────────────────┤
│  ◀ ▶  │  ♪ Track Name  ─────●─────── 2:34/4:12  │ 🔊─── │
└───────────────────────────────────────────────────────────┘

SIDEBAR ITEMS (expanded on hover or click):
──────────────────────
  🏠  Home (Dashboard)
  📚  Library
  🎵  Projects
  📊  Insights
──────────────────────
  📁  Transfers
  🗑  Trash
  ☁️  Storage
──────────────────────
  +  New Space
──────────────────────
MOBILE (iPhone / iPad portrait)
┌──────────────────────────────────┐
│  [☰]  SONNANCE     🔔  [Avatar] │
├──────────────────────────────────┤
│                                  │
│        MAIN CONTENT AREA         │
│                                  │
│  (scrollable, full-width)        │
│                                  │
│                                  │
├──────────────────────────────────┤
│  ♪ Track ──●── 2:34  ▶  │  🔊  │  ← Mini player (if playing)
├──────────────────────────────────┤
│  🏠    📚    +    🔔    👤     │  ← Bottom tab bar (persistent)
│ Home  Lib  Create Alerts  Me    │
└──────────────────────────────────┘

Option 2: "Notion-Style" (Sidebar Focus)

Why: Power users love it. Emphasizes workspace hierarchy.

DESKTOP / TABLET
┌─────────────────┬──────────────────────────────────────┐
│  SONNANCE       │  🔍 Search          🔔  💬  [👤 ▾]  │
│                 ├──────────────────────────────────────┤
│  ★ Quick Access │                                      │
│    Recent Tracks│         MAIN CONTENT AREA            │
│    Favorites    │                                      │
│                 │                                      │
│  ─────────────  │                                      │
│  📂 My Spaces   │                                      │
│    ├ Studio X   │                                      │
│    ├ Band Y     │                                      │
│    └ Solo...    │                                      │
│                 │                                      │
│  📁 Transfers   │                                      │
│  📚 Library     │                                      │
│  📊 Insights    │                                      │
│                 │                                      │
│  ─────────────  │                                      │
│  🗑 Trash       │                                      │
│  ☁️ Storage     │                                      │
│  ⚙ Settings     │                                      │
│                 │                                      │
│  ─────────────  │                                      │
│  + New Space   │                                      │
├─────────────────┴──────────────────────────────────────┤
│  ◀ ▶  │  ♪ Track ──────●─────── 2:34/4:12  │  🔊───  │
└────────────────────────────────────────────────────────┘

MOBILE: Same bottom tab bar as Option 1

Option 3: "Apple Music / Pro" (Top Nav + Sidebar Hybrid)

Why: Familiar for Apple ecosystem users (iPad/iOS target). Great for tablet landscape.

DESKTOP / TABLET (landscape)
┌──────────────────────────────────────────────────────────┐
│  SONNANCE   [Home] [Library] [Projects] [Insights]       │
│                              🔍    🔔    💬    [👤 ▾]    │
├──────────────────────────────────────────────────────────┤
│                                                          │
│              MAIN CONTENT AREA                           │
│                                                          │
│  (Full width. Secondary nav via tabs within pages)       │
│                                                          │
│                                                          │
├──────────────────────────────────────────────────────────┤
│  ◀ ▶  │  ♪ Track ──────●─────── 2:34/4:12  │  🔊───    │
└──────────────────────────────────────────────────────────┘

iPAD PORTRAIT: Compact top tabs, hamburger for overflow items

MOBILE: Bottom tab bar (same as Option 1)
CriteriaOption 1 (Spotify)Option 2 (Notion)Option 3 (Apple)
Familiarity★★★★★★★★★☆★★★★★
Scalability (add more items)★★★★☆★★★★★★★★☆☆
Mobile adaptation★★★★★★★★★☆★★★★☆
Complexity to buildLow (close to current)Medium (tree nav)Medium (top tabs new)
Fits music aesthetic★★★★★★★★☆☆★★★★☆
iPad landscape★★★★☆★★★★★★★★★★
WOW factor★★★★☆★★★☆☆★★★★☆
Progressive disclosure★★★★☆★★★★★★★★☆☆

Recommendation: Option 1 (Spotify-Style) for Phase 0-1. It's closest to the current Beryllium layout (just expand the icon rail), universally understood, and scales well. Migrate toward Option 2 patterns as the feature set grows (Phase 2+).


3. Menu Component Options — Desktop vs Mobile

Organized by frequency of use and user flow:

SIDEBAR (left rail, expandable)
────────────────────────────────
MAIN
  🏠  Home / Dashboard
  📚  Library
  🎵  Projects          ← dedicaed projects view (all projects across spaces)
  📊  Insights           ← AI-powered analytics

COLLABORATE
  💬  Messages           ← Phase 1 (DMs + group)
  📁  Transfers          ← already exists (uncomment)
  👥  Network            ← Phase 2 (discovery/maps)

MANAGE
  📋  Kanban             ← Phase 1-2
  📅  Calendar           ← Phase 2
  📄  Contracts          ← Phase 2

SYSTEM
  🗑  Trash              ← already exists (uncomment)
  ☁️  Storage
  +  New Space          ← primary CTA
────────────────────────────────

Mobile Bottom Tab Bar (5 items max — iOS HIG)

TabIconLabelNotes
Home🏠HomeDashboard with recent, insights, notifications
Library📚LibraryAll content browse/search
Create(center fab)New Space / New Project / Upload — action sheet
Activity🔔ActivityNotifications + mentions + messages combined
Profile👤MeProfile, ContactID, Settings, Subscription

Why 5: iOS Human Interface Guidelines recommend max 5 tabs. The center "Create" button is a floating action — most engaging pattern for creator tools.

Profile/Me Tab Content (Mobile)

When tapping "Me" on mobile, shows a full profile page:

┌──────────────────────────────┐
│  ╭──────╮                    │
│  │Avatar│  Facundo Ferreyra  │
│  ╰──────╯  @facundo          │
│             Producer · Madrid│
│                              │
│  [★ My ContactID]            │  ← Primary action
│  [✏️ Edit Profile]           │
│                              │
│  ─── STATS ──────────────    │
│  ♪ 42 tracks  ★ 12 projects │
│  👥 8 collabs  ☁️ 12GB used  │
│                              │
│  ─── MENU ───────────────    │
│  📁  Transfers               │
│  📋  Kanban                  │
│  📄  Contracts               │
│  📅  Calendar                │
│  ☁️  Storage                 │
│  🗑  Trash                   │
│  ─────────────────────────   │
│  ⚙  Settings                │
│  💳  Subscription            │
│  📊  Usage                   │
│  ─────────────────────────   │
│  ↪  Sign Out                │
└──────────────────────────────┘
┌────────────────────────────────────────────────────────────┐
│  [☰/◀]  ┌─ 🔍 Search artists, projects, tracks ──────┐   │
│          └─────────────────────────────────────────────┘   │
│                                                            │
│                              🔔(3)   💬(2)    [Avatar ▾]  │
│                           notif.   messages   profile menu │
└────────────────────────────────────────────────────────────┘

New additions vs current:

  • Messages icon (💬) — currently commented out. Uncomment + connect to messaging feature (Phase 1)
  • Notification count badge — already exists, enhance with smart grouping
Current → Proposed additions marked with [NEW]

┌─────────────────────────────────┐
│  ┌──────┐                       │
│  │Avatar│  Facundo Ferreyra     │
│  └──────┘  facundo@sonnance.com │
├─────────────────────────────────┤
│  ★ My ContactID          [NEW] │  ← Opens ContactID modal
│  👤 My Profile            [NEW] │  ← Goes to /profile (uncomment)
│  ─────────────────────────────  │
│  ⚙ Account Settings            │  ← existing
│  💳 Subscription          [NEW] │  ← direct link
│  📊 Usage                 [NEW] │  ← direct link
│  ─────────────────────────────  │
│  🔄 Replay Onboarding          │  ← existing
│  🎨 Appearance  [dark ▾]       │  ← existing
│  ─────────────────────────────  │
│  ↪ Sign Out                    │  ← existing
└─────────────────────────────────┘

4. iOS/iPadOS Considerations

Deployment Strategy

PhasePlatformTechnologyNotes
Now (Phase 0)Web (all devices)Next.js + PWAAdd PWA manifest, icons, splash screens
Phase 1iOS/iPadOS (PWA)Safari Add to Home ScreenInstant "app" feel with no App Store
Phase 2iOS/iPadOS (native wrapper)Capacitor.js or React Native WebViewApp Store presence, push notifications
Phase 3Native iOS appReact Native or Swift UIFull native experience, NFC, Apple Wallet deep integration

A Progressive Web App gives 80% of native feel with 20% of the effort:

FeaturePWA Support (2026 Safari)Native Required?
Offline mode✅ Service WorkersNo
Home screen icon✅ Web App ManifestNo
Push notifications✅ (Safari 16.4+)No
Full-screen mode✅ standalone displayNo
Audio playback (background)⚠️ LimitedFor background play: yes
NFC reading/writingYes
Apple Wallet passes✅ (via .pkpass download)No
QR code scanning✅ (camera API)No
Haptic feedbackYes

iPad Layout Adaptations

iPAD LANDSCAPE (1024px+)
─────────────────────────────────────────────────
Same as desktop — sidebar + content + player bar.
Consider: wider content area, side-by-side panels
(e.g., track list + waveform player simultaneously).

iPAD PORTRAIT (768-1024px)
─────────────────────────────────────────────────
Collapsible sidebar (icon-only rail like Beryllium).
Tap icon → slide-out panel with full labels.
Content takes most of the width.
Bottom player bar remains.

iPAD SPLIT VIEW / SLIDE OVER
─────────────────────────────────────────────────
Graceful degradation to mobile layout when window
is narrow (multitasking). Already handled by
responsive breakpoints.

iOS-Specific Design Tokens

ElementiOS HIG RecommendationSonnance Adaptation
Tab barBottom, max 5 items, filled icons✅ Match exactly for mobile bottom tabs
NavigationLarge title collapses on scrollApply to page headers (Dashboard, Library)
ModalsSheet presentation (drag to dismiss)Already using RizzUI drawers — add drag handle
HapticsLight tap on button pressAdd via Capacitor when native wrapper ships
Safe areasRespect notch + home indicatorTailwind safe-area-inset-* classes
Dynamic IslandLive Activity for now-playingPhase 3 (native only)

5. Design Decision Matrix

Summary of Recommendations

DecisionRecommended OptionRationale
ContactID designOption A (Vinyl Card)Brand alignment, shareable aesthetic, WOW factor
ContactID accessProfile dropdown (primary) + Profile page buttonLow friction, discoverable, doesn't clutter main nav
Desktop navOption 1 (Spotify-style sidebar)Closest to current code, universally understood, music-native
Mobile nav5-tab bottom bar (Home, Library, Create, Activity, Me)iOS HIG standard, covers all key flows
iPad navDesktop layout with collapsible sidebarMaximizes screen real estate
iOS deploymentPWA first → Capacitor wrapper → Native (phased)Fastest to market, progressive investment
Menu items to add nowProjects, Insights, Transfers (uncomment), Trash (uncomment)Quick wins — most already exist in code
Profile dropdown additionsContactID, My Profile, Subscription, UsageNo new pages needed — just links + ContactID modal

Implementation Priority

StepWhatEffortImpact
1Uncomment Messages icon in header5 minVisual placeholder ready
2Uncomment Transfers + Trash in sidebar5 min2 more nav items instantly
3Add ContactID to profile dropdown1 dayNew menu item + placeholder modal
4Uncomment Profile/Password/Team/Notifications in Account Settings nav10 minFull settings visible
5Build ContactID card component (QR + share link)3-5 daysShareable identity — first differentiator
6Add "Projects" sidebar item (aggregate view)2-3 daysQuick access across all spaces
7Add mobile bottom tab bar3-5 daysMobile UX transformation
8Add PWA manifest + icons + splash1-2 daysiOS home screen installable
9Build Messages feature (DMs)4-6 weeksSocial layer foundation
10Build Insights/Analytics page3-4 weeksAI agent surface area

Appendix: Component Library Recommendations

For new features, leverage the existing stack:

NeedRecommendedAlready in project?
QR Code generationqrcode.reactNo — add
Card export to PNGhtml-to-imageNo — add
Apple Wallet passespasskit-generator (backend)No — add
Bottom tab barCustom with Tailwind + Framer MotionBuild (small component)
Kanban board@hello-pangea/dnd (already have DnD)Evaluate — may already have dnd lib
Calendarreact-day-picker or RizzUI datepickerCheck RizzUI
Chat/MessagesSocket.io (already configured) + custom UISocket exists — build UI
Mapsreact-map-gl (Mapbox) or Google MapsNo — add
Rich text (posts)tiptap editorNo — add

Ctrl-Audio Platform Documentation