App Breakdown & Feature Audit

Complete inventory for partner review

Extensionly — App Breakdown & Feature Audit

Generated: October 2026 Purpose: Complete inventory of built features for partner review — what's complete, what needs tweaking.


1. CLIENT-FACING FUNNEL (Consumer Journey)

1.1 Marketing Homepage (/)

Status: ✅ Complete

  • Hero with "Online inspiration. Local expertise." positioning
  • Location search bar with autocomplete (Google Places)
  • Popular searches (method + specialty quick links)
  • Featured stylist cards (3 hand-picked profiles)
  • SEO: Organization + WebSite JSON-LD structured data
  • Public nav with login/register CTAs

1.2 Find Your Match (/find)

Status: ✅ Complete

  • Entry point for the Match Quiz experience
  • Accepts ?location= param to prepopulate from marketing site
  • Recognizes returning clients (authenticated OR localStorage) → "Welcome back" flow
  • Delegates quiz to MatchQuiz component
  • One Match Profile per client — upserted, never duplicated

1.3 Match Quiz (/match-quiz)

Status: ✅ Complete (recently refined)

  • Multi-step guided quiz: Goal → Hair Type → Texture → Density → Specialized Needs → Color → Method Openness → Location → Photo (optional)
  • "Not Sure" answers excluded from scoring (never trigger zero results)
  • Saves to ClientMatchProfile entity (server-side, keyed by email)
  • Also saves to localStorage for anonymous return
  • Match Profile → normalized match_signals object (shared taxonomy with professional profiles)
  • Match Reveal: Fetches real search results, shows up to 6 professional cards with grounded match reasons (no fake percentages)
  • 4-state semantic matching: Match / TBD (Method to be determined) / Consultation Recommended / Different
  • "Why?" toggles on TBD and Consultation Recommended states — explains why a dimension is uncertain
  • Consultation CTA on each match card — prefills with Match Profile data for Pro professionals; links to profile for free professionals

1.4 Search & Directory (/search, /discover)

Status: ✅ Complete

  • /search — Full directory search with filters (method, specialty, service setting, brands, location, radius, travel, rating, verified, language)
  • /discover — Browse/discovery page
  • Server-side search via searchDirectory backend function
  • DB-level pagination for simple filters; chunked fetch for geo/keyword
  • Signal-based ranking: location creates candidate pool, client preferences rank within it
  • Method alias bridging (SEARCH_METHODS ↔ EXTENSION_SERVICES vocabularies)
  • Specialty alias bridging (current ↔ legacy values)
  • Zero-result fallback: broadens state search to all published stylists
  • Search logging (DirectorySearch entity) with session/visitor threading

1.5 Public Stylist Profile (/stylists/:cityState/:slug)

Status: ✅ Complete

  • SEO-friendly URLs (/stylists/atlanta-ga/holly-rae)
  • Hero: avatar, name, business name, professional title, location, verified badge
  • Portfolio gallery with lightbox (images + Reel video playback)
  • Method-specific experience display (exact months/years per method)
  • Areas of Expertise with Verified Expert badges
  • Color service level + color known-for
  • Texture patterns + texture services
  • Brands worked with
  • Business hours display
  • Before You Book section (custom FAQ, investment guide)
  • Reviews section
  • Follow button + follower count
  • Save/favorite button
  • Share button (native, WhatsApp, Facebook, email, copy link)
  • Booking CTA: "Book Consultation" (direct booking) or "Start Consultation" (Extensionly form)
  • Related stylists link grid
  • SEO: LocalBusiness JSON-LD, FAQPage schema, Open Graph tags
  • Engagement event tracking (profile_viewed, portfolio_viewed, booking_link_clicked)

1.6 Consultation Request

Status: ✅ Complete (recently refined)

  • Lightweight consultation flow via requestConsultationLightweight backend function
  • Works for both authenticated and anonymous consumers
  • Prefilled from Match Profile — only asks for: photos, timeframe, optional message
  • Match origin metadata stored on consultation (match_source, match_profile_summary, match_reasons, originating_profile_id)
  • Magic link sent to anonymous users for account creation
  • Stylist notification (email + in-app)
  • Engagement events tracked (consultation_started, consultation_submitted)

1.7 Client App (Logged In)

Status: ✅ Complete

  • Role-aware navigation (client vs professional sidebar)
  • My Matches (`/matches`) — Saved match results, re-runnable quiz
  • Explore (`/explore`) — Directory browse for clients
  • Saved (`/saved`) — Saved/favorited stylists
  • My Profile (`/profile`) — Client profile + Match Profile management
  • Consultations (`/consultations`) — Client's own consultation requests with status tracking
  • Notifications — Bell icon with notification feed
  • Default landing: /matches for returning clients with completed profiles

2. PROFESSIONAL EXPERIENCE (Stylist App)

2.1 Onboarding & Profile Setup

Status: ✅ Complete

  • Profile Setup (`/profile-setup`) — Multi-section editor:

- Basic info (name, title, avatar, cover, bio) - Location (address autocomplete → geocoding pipeline) - Methods (extension methods + per-method experience) - Services & expertise (general expertise, color, texture) - Brands worked with (dynamic multi-select with suggestions) - Certifications (structured entries) - Social links (multi-platform) - Booking configuration (direct vs Extensionly form, automation level) - Investment guide (per-method pricing) - Business hours - Before You Book custom FAQ - License verification (document upload → admin review) - Travel availability (local radius, nationwide, international)

  • Match Profile Setup (`/match-profile`) — Guided experience:

- Methods chapter - Expertise chapter (Areas of Expertise with Familiar/Focused/Verified levels) - Texture chapter - Color chapter - Portfolio chapter (representative work selection) - Growth chapter (growth priorities) - Non-fit chapter (exclusions) - Pricing chapter - Summary chapter (ideal client confirmation)

  • Profile completion progress tracking
  • AI Bio Assistant — generates bio from structured profile data (never invents credentials)

2.2 Dashboard (/dashboard)

Status: ✅ Complete

  • Discovery Score hero (profile completeness + visibility score)
  • Today's focus section
  • This week summary
  • Business snapshot
  • Quick actions
  • Growth opportunities
  • Client studio section
  • AI studio section
  • Circle (community) section
  • Engagement metrics (profile views, searches, favorites, shares)

2.3 Client Management (/clients)

Status: ✅ Complete

  • Client list with search and filters
  • Client detail page (/clients/:id) with:

- Snapshot (identity, health, goals, needs attention) - Hair profile - Activity timeline - Consultations list - Formulas - Notes timeline - Journey entries

  • Add note dialog
  • Client form (manual add)

2.4 Consultations (/consultations)

Status: ✅ Complete (recently refined)

  • Professional's incoming consultation requests (leads)
  • Lead card list with status (new, reviewing, qualified)
  • Lead Detail with restructured hierarchy:

- Match Origin Section (top) — shows "MATCHED THROUGH EXTENSIONLY" with match profile summary + "Why they matched with you" reasons (only for match-origin consultations) - Contact info - Client's goals - Hair profile - Method preference - Photos - Timeframe - Client message

  • Accept → adds client to CRM
  • Reject / mark as not a fit

2.5 Community (/community)

Status: ✅ Complete

  • Feed with post types: ask_community, transformation, celebrate_win, business_discussion, share_education
  • Post composer with media uploads
  • Post cards with like, save, share, reply
  • Comment sections
  • Question of the Day
  • Community spotlight
  • Sidebar (new members, active discussions, upcoming events)
  • Follow/unfollow
  • Community profiles (/community/:slug)
  • Post detail (/community/post/:id)
  • Question detail (/community/question/:id)

2.6 Messaging (`/messages))

Status: ✅ Complete

  • Conversation list
  • Conversation view with message bubbles
  • Message composer with emoji picker
  • Message requests (initiate / respond)
  • Block/report member
  • Mark conversations read

2.7 Formulas (/formulas)

Status: ✅ Complete

  • Formula list
  • Formula capture (/formulas/capture) — multi-stage product mapping
  • Formula detail (/formulas/:id) with stages, products, outcomes
  • AI formula generation workflow
  • Product recognition
  • Outcome tracking

2.8 Business Intelligence (/business-intelligence)

Status: ✅ Complete (gated by permission flag)

  • Owner dashboard with traffic, search, consultation metrics
  • Unique visitors, total sessions, page views
  • Search conversion funnel
  • Traffic vs search comparison chart
  • Consultation metrics
  • Recent members
  • Visitors online now
  • Analytics test panel
  • Historical data notice

2.9 Creator Studio (/creator-studio)

Status: ✅ Complete (gated by permission flag)

  • Content creation tools

2.10 Color Match (/color-match)

Status: ✅ Complete

  • Photo capture instructions
  • Photo capture step
  • Inspiration photos
  • Virtual try-on (multiple AI methods: masked, kontext, face swap, pro fill)
  • Color card guide
  • Photo preview dialog

2.11 Connected Apps (/settings)

Status: ✅ Complete

  • Google Calendar (connect, sync, status)
  • Square (connect, status, disconnect, webhook)
  • Booking link management
  • Notification preferences

2.12 Members Directory (/members)

Status: ✅ Complete

  • Member list with cards
  • Member filters
  • Member detail cards

3. MARKETING & SEO PAGES

3.1 Method Pages

Status: ✅ Complete

  • Methods index (/methods) — all installation methods
  • Method entity pages (`/methods/:slug}) — Education pillar with overview, who it's for, maintenance, FAQs
  • JSON-LD FAQPage schema
  • Dynamic connections (stylists offering the method, cities)

3.2 Guides & Tools

Status: ✅ Complete

  • Method Chooser (/method-quiz) — interactive method recommendation quiz
  • Weft Rows Guide (/weft-rows) — weft calculator, type compare, scenarios, FAQ
  • Hair Extension Length Finder (/tools/hair-extension-length-finder) — interactive length visualization
  • Hair Extensions for Thin Hair (/guides/hair-extensions-for-thin-hair) — educational guide
  • Bel Hair Calculator (/bel-hair-calculator) — hair needs calculator
  • IG Kit (/ig-kit) — Instagram growth toolkit

3.3 Landing Pages

Status: ✅ Complete

  • Brand landing pages (/brands/:brand)
  • Certification landing pages (/certifications/:cert)
  • Expertise landing pages (/expertise/:slug)
  • City/service landing pages (/:cityState/:service)
  • SEO-optimized with structured data
  • Dimension catalog powers all landing page data

3.4 For Stylists (/for-stylists)

Status: ✅ Complete

  • Hero with value proposition
  • Market opportunity section
  • How it works
  • Platform features
  • Google search/discovery section
  • Community preview
  • Business tools
  • Booking tools
  • AI tools
  • Social proof
  • Final CTA

3.5 Other Marketing Pages

  • About (/about) — mission, manifesto, team
  • Pricing (/pricing) — membership tiers
  • Resources (/resources) — resource hub
  • Areas of Expertise (/areas-of-expertise) — expertise overview

4. ADMIN

4.1 Content Management

Status: ✅ Complete

  • Admin Content (/admin/content) — FAQ, events, daily questions, spotlights management
  • Admin Data Export (/admin/export) — CSV/data export
  • Admin Media Export (/admin/media-export) — media download
  • Event Dictionary (/admin/event-dictionary) — analytics event catalog

4.2 Profile Management

Status: ✅ Complete

  • Admin Profiles (/admin/profiles) — all professional profiles
  • Admin Installation Methods (/admin/installation-methods) — method catalog + entity page content
  • Admin Location Audit (/admin/location-audit) — location resolution health
  • Product Lab (/admin/product-lab) — product catalog management

4.3 Verification

Status: ✅ Complete

  • Admin Verification (/admin/verification) — license verification review
  • Admin Expert Applications (/admin/expert-applications) — Verified Expert application review
  • Direct specialty assignment panel

4.4 Team & Invitations

Status: ✅ Complete

  • Admin Team (/admin/team) — internal team member management
  • Team Profile (/team-profile) — team member self-service profile
  • Admin Invitations (/admin/invitations) — invitation type management (/join/:slug pages)
  • Founding Onboarding (/admin/founding) — founding artist onboarding

4.5 Bel Hair Campaign

Status: ✅ Complete

  • Admin Bel Hair Campaign (/admin/bel-hair) — 30-day trial invitation management
  • Bel Hair Landing (/bel-hair-invite/:token) — private invitation page
  • Bel Hair Redeem (/bel-hair-invite/:token/start) — trial redemption
  • Trial countdown banner
  • Upgrade checkout (50% first-month discount)
  • Trial expiration workflow

5. AUTH & ACCESS

5.1 Authentication

Status: ✅ Complete

  • Login (/login) — email/password + Google OAuth
  • Register (/register) — email/password + Google, OTP verification flow
  • Forgot Password (/forgot-password)
  • Reset Password (/reset-password)
  • Admin Login (/admin-login)
  • Auth Finish (/auth/finish) — post-auth routing
  • ProtectedRoute — gates authenticated pages
  • Role-based access (admin, user, client, professional)

5.2 Invitation Flows

Status: ✅ Complete

  • Join Invitation (/join/:slug) — configurable onboarding via InvitationType
  • Claim Profile (/claim/:token) — founding artist profile claim
  • Bel Hair Trial — private trial campaign

6. BACKEND INFRASTRUCTURE

6.1 Search & Matching

  • searchDirectory — Server-side directory search with DB pagination, geo-radius, keyword, signal-based ranking
  • searchLocations — Location autocomplete
  • geocodeLocation — Geocoding pipeline (cache → local DB → Google Maps API)
  • syncDimensionCatalog — SEO dimension catalog sync
  • generateSitemap — XML sitemap generation

6.2 Consultations & Clients

  • requestConsultationLightweight — Consumer consultation request with match origin
  • manageConsultation — Professional consultation management (list, accept, reject)
  • loadClientConsultations — Client's own consultation history
  • getHairProfile — Consumer hair profile retrieval
  • verifyHairJourney — Hair journey account verification

6.3 Match Profiles

  • saveClientMatchProfile — Client Match Profile save (service role, keyed by email)
  • loadClientMatchProfile — Client Match Profile load

6.4 Profile & Portfolio

  • getPublicProfile — Public profile projection (service role)
  • generateProfileBio — AI bio generation from structured data
  • importPortfolioItem — Instagram/portfolio import
  • analyzePortfolioItem — AI portfolio tag analysis
  • getInstagramMedia — Instagram media fetch (connector-backed)
  • checkSlugAvailability — URL slug validation

6.5 Payments

  • createStripeCheckout — Stripe checkout session creation
  • stripeWebhook — Stripe webhook handler (subscriptions, payments)
  • createStripePromoCode — Stripe promotion code creation
  • createBelHairUpgradeCheckout — Bel Hair trial upgrade checkout
  • claimMembership — Membership claim/activation
  • Square: squareAuthUrl, squareCallback, squareStatus, squareDisconnect, squareWebhook

6.6 Integrations

  • Google Calendar: googleCalendarStatus, googleCalendarSync (connector-backed)
  • Instagram: getInstagramMedia (connector-backed)
  • Square: full OAuth + webhook flow

6.7 Community & Messaging

  • engageCommunity — Like, save, share, reply (atomic counter updates)
  • getCommunityMembers — Member directory
  • getCommunitySidebarData — Sidebar content
  • sendCommunityMessage — Direct messaging
  • initiateMessageRequest — Message request flow
  • respondToMessageRequest — Accept/reject message requests
  • toggleFollow — Follow/unfollow with atomic count updates
  • blockMember, reportMember — Safety tools
  • toggleEventRSVP — Event RSVP

6.8 Analytics

  • trackPageView — Page view + visitor session tracking
  • trackConsultationStart, trackConsultationSubmit — Consultation funnel events
  • trackBookingClick — Booking link clicks
  • getOwnerDashboard — Aggregated dashboard metrics
  • getEngagementMetrics — Per-profile engagement stats
  • metaCapi — Meta Conversions API integration
  • purgeAnalyticsTestData — Test data cleanup

6.9 AI Features

  • Virtual Try-On: virtualTryOnMasked, virtualTryOnKontext, virtualTryOnFaceSwap, virtualTryOnProFill
  • generateFormulaWorkflow — AI formula generation
  • recognizeFormulaProducts — Product recognition from photos
  • analyzePortfolioItem — Portfolio image tag analysis
  • generateProfileBio — AI bio generation

6.10 Email & Notifications

  • Transactional email via SendEmail integration (custom domain supported)
  • getNotifications, markNotificationsRead — In-app notifications
  • createSystemAnnouncement — System-wide announcements
  • Klaviyo integration: klaviyoWebhook
  • Email logging via EmailLog entity

6.11 Admin & Verification

  • submitExpertApplication, reviewExpertApplication, assignVerifiedSpecialty — Verified Expert workflow
  • submitLicenseVerification, reviewLicenseVerification — License verification
  • createFoundingStylist, sendFoundingInvitation, verifyFoundingInvitation, completeFoundingClaim — Founding artist onboarding
  • redeemInvitation — Invitation type redemption
  • redeemBelHairTrial, verifyBelHairInvitation, manageBelHairCampaign, expireBelHairTrials — Bel Hair campaign
  • exportData, exportMedia — Data/media export
  • importStylistContent — Stylist content import

6.12 Engagement & Sync

  • saveStylistLightweight — Anonymous stylist save/favorite
  • adjustFavoriteCount — Atomic favorite count update
  • toggleFollow — Follow with atomic count
  • backfillEngagementCounts — Count backfill
  • syncBrands — Brand catalog sync (usage count + searchable threshold)
  • auditLocationHealth, backfillGeoCoordinates, runLocationResolverTests, runSearchIntegrityTests — Health checks
  • touchStylistLogin — Login tracking
  • secureWorkspaceWrite — Secure write operations

7. WORKFLOWS (Automations)

7.1 Scheduled

  • dailyLocationAudit — Daily location resolution health check
  • expireBelHairTrials — Bel Hair trial expiration handling
  • analyzePortfolioItems — Portfolio AI analysis queue

7.2 Event-Triggered

  • Entity triggers (create/update/delete on ProfessionalProfile, etc.)
  • Connector triggers (webhooks from authorized connectors)

8. DATA MODEL (Key Entities)

Consumer-Side

  • ClientMatchProfile — Saved Match Quiz answers + normalized match signals (one per email)
  • HairJourneyAccount — Frictionless consumer account (magic link)
  • HairProfile — Consumer's persistent hair profile
  • ConsultationRequest — Consultation lead with match origin metadata
  • SavedStylist — Consumer's saved/favorited stylists
  • Review — Public reviews

Professional-Side

  • ProfessionalProfile — The professional identity (one per user)
  • ArtistMatchProfile — Private matching preferences (growth priorities, non-fit exclusions)
  • StylistMethodExperience — Per-method experience (exact months/years)
  • PortfolioItem — Structured portfolio entries (Instagram import + device upload)
  • Certification — Structured certifications
  • VerifiedExpertApplication — Verified Expert application workflow
  • LicenseVerification — License verification documents

Community

  • CommunityPost — Feed posts with denormalized engagement counters
  • Comment — Post comments + DailyQuestion answers
  • Follow — Follow relationships
  • SavedPost — Saved posts
  • DirectMessage / Conversation / MessageRequest — Messaging
  • CommunityEvent / EventAttendee — Events
  • DailyQuestion — Question of the Day
  • CommunitySpotlight — Spotlight features
  • BlockRelationship / ReportRecord — Safety

Business

  • Client — Professional's client records
  • ClientNote — Client notes
  • Formula / FormulaOutcome — Color formulas
  • ProductCatalog / ServiceProduct — Products
  • Appointment — Appointments
  • BookingRecord / BookingLink — Booking records
  • Subscription — Membership subscriptions

Platform

  • User — Built-in (auth, email, role)
  • TeamMember — Internal team profiles
  • InvitationType / InvitationSignup — Configurable onboarding
  • BelHairInvitation — Bel Hair trial campaign
  • StylistInvitation — Legacy stylist invitations
  • Brand — Brand catalog with usage tracking
  • InstallationMethod — Method catalog + entity knowledge
  • DimensionCatalog — SEO dimension catalog
  • LocationCache — Geocoding cache

Analytics

  • PageView / VisitorSession — Traffic analytics
  • EngagementEvent — Profile engagement funnel
  • DirectorySearch — Search logging
  • ProfileAnalyticsDaily — Daily rollups
  • ProductEvent / LearningEvent / ActivityEvent — Product analytics
  • Notification / NotificationPreference — Notifications
  • MarketingConsent — Consent tracking
  • EmailLog / Unsubscribe — Email compliance
  • ConnectedApp — Connected app state
  • ProfileSetupProgress — Onboarding progress
  • BadgeAward / ReputationEvent / Certificate — Recognition
  • Mentorship — Mentorship program
  • AiMatch / AiRecommendation / AiAnalysis — AI records
  • Workspace — Future workspace isolation
  • FAQ — Public FAQs
  • Photo — Photo records

9. KNOWN ISSUES & AREAS NEEDING ATTENTION

Scaling

  • In-memory geo-distance filtering fetches all profiles with coordinates; needs native geospatial index for scale
  • DimensionCatalog city resolution limited to 5,000 records in chunked path
  • ProfileAnalyticsDaily rollup not yet wired for search impression tracking

Data

  • robots.txt not served in preview environment
  • Potential Shannon@ user account role/profile linking misconfiguration
  • User account dashboard may redirect incorrectly to profile setup screen

Potential Tweaks for New Direction

  • Match Quiz: verify "Not Sure" handling across all dimensions (recently fixed but worth QA)
  • Consultation form: verify prefilled data mapping for all hair loss and specialized needs categories
  • Professional dashboard: MatchOriginSection only shows for match-origin consultations — verify non-match consultations still look clean
  • Client navigation: /matches as default landing — verify for new vs returning clients
  • Role detection: useAccountType prioritizes explicit client type over admin defaults — verify edge cases

10. SUMMARY

What's Working:

  • Full client funnel: marketing → match quiz → search → profile → consultation → booking
  • Full professional app: onboarding → dashboard → clients → consultations → community → messaging → formulas
  • SEO infrastructure: method pages, landing pages, sitemap, structured data
  • Analytics: page views, sessions, engagement events, search logging, dashboard
  • Payments: Stripe (live), Square (OAuth + webhook)
  • Integrations: Google Calendar, Instagram, Klaviyo, Meta CAPI
  • AI: virtual try-on, formula generation, portfolio analysis, bio generation
  • Admin: full management suite for content, profiles, verification, team, campaigns

What May Need Tweaking:

  • Match scoring weights and signal priorities (based on new direction)
  • Consultation prefilled data completeness
  • Professional onboarding flow sequence
  • Mobile experience QA across all flows
  • Analytics dashboard completeness for new KPIs
  • Any new features not yet built (depends on new direction specifics)