Skip to content

Route coverage

This page is the manual coverage map for the web app. When a product route is added, the route must appear here and in the route coverage manifest so the drift test can fail before undocumented UI reaches users.

The intent is 1:1 coverage: every route in the app should have a manual entry, the manual should explain what the route does, and the important workflows should be illustrated with theme-aware screenshots that show only one variant at a time.

RouteAudienceWhat it covers
/Public visitorsProduct landing page with the main value proposition, feature overview, workflow story, testimonials, integrations teaser, pricing CTA, and footer links.
/aboutPublic visitorsProduct story, operating values, team context, and the path back into signup or the authenticated app.
/pricingPublic visitors, ownersPlan comparison, monthly/annual toggle, plan limits, FAQ, and checkout entry points (documented in the plans reference page).
/loginAll usersEmail/password sign-in, redirect preservation, forgot-password link, and session handoff into /app.
/registerNew usersPublic account creation when enabled, name/email/password fields, minimum password rules, and post-registration app redirect.
/forgot-passwordAll usersPassword reset request flow that sends a one-use reset link to the account email.
/reset-passwordAll usersToken-based password reset, invalid token handling, and new password submission.
/accept-invitation/$invitationIdInvited users and clientsOrganization or gallery invitation acceptance, invited account creation, email matching, access setup, and redirect after acceptance.
RouteAudienceWhat it covers
/appAuthenticated usersApp shell with sidebar, header, organization role, brand context, language/theme controls, global help, and authentication guard.
/app/Authenticated usersRole-aware dashboard with active work, operational metrics, deadlines, recent activity, and quick links.
/app/notificationsAuthenticated usersReview activity inbox for replies, status changes, client feedback, unread states, event counts, gallery links, and mark-as-read actions.
/app/settings/notificationsAuthenticated usersPersonal in-app and email notification preferences for advanced review events.
RouteAudienceWhat it covers
/app/galleriesClients and team usersNested shell for shared gallery list and gallery detail pages.
/app/galleries/Clients and team usersShared gallery list, persisted grid/table preference, thumbnails, statuses, shoot dates, client names, and open-gallery actions.
/app/galleries/$galleryId/Clients and reviewersProofing workspace with image browsing, lightbox, selections, comments, advanced review states, pinned comments, face filtering, and keyboard shortcuts.
RouteAudienceWhat it covers
/app/adminOwners and adminsPermission gate for admin routes. Non-owner users are redirected to /app.
/app/admin/galleries/Owners, adminsGallery operations list with search, status filters, quick filters, grid/table view, usage alerts, bulk archive/status/delete actions, and plan-limit checks.
/app/admin/galleries/newOwners, adminsGallery creation form for client, title, slug, description, status, proofing mode, selection limits, shoot dates, expiration, section rules, and review capabilities.
/app/admin/galleries/$galleryId/Owners, adminsAdministrative gallery workspace with image grid, selection/review status, batch actions, sharing, vendor panels, slideshow summaries, and advanced review controls.
/app/admin/galleries/$galleryId/editOwners, adminsGallery settings editor for metadata, client assignment, proofing rules, advanced review toggles, thumbnail, and sections.
/app/admin/galleries/$galleryId/uploadOwners, adminsPreview upload workflow with uploader state, processing feedback, and gallery-aware upload context.
/app/admin/galleries/$galleryId/deliveryOwners, adminsFinal delivery workflow for uploading or generating delivery assets, publishing downloads, scheduling availability, and removing stale assets.
/app/admin/tasksOwners, adminsBackground processing center for preview generation, face detection, clustering, and vendor share rendering, with active/done tabs, filters, auto-refresh, retry, pause/resume, cancel, and batch grouping.
RouteAudienceWhat it covers
/app/admin/users/Owners, adminsUser administration with search, status filters, invitations, role assignment, invitation cancellation, edit links, and deletion.
/app/admin/users/newOwners, adminsDirect user creation form for internal account setup.
/app/admin/users/$userId/editOwners, adminsExisting user profile and role editor.
/app/admin/clients/Owners, adminsClient directory with search, contact details, notes, joined date, and edit actions.
/app/admin/clients/newOwners, adminsCompatibility redirect to the invitation-based user onboarding flow.
/app/admin/clients/$clientId/editOwners, adminsClient profile editor for contact details, notes, and directory metadata.
/app/admin/vendors/Owners, adminsVendor directory with search, type/status/sort filters, vendor creation, referral URL capture, active flag, and leaderboard navigation.
/app/admin/vendors/$vendorIdOwners, adminsVendor profile and sharing audit page with share links, referral links, watermark status, expiry, renewal, revocation, and gallery-level access.
/app/admin/vendors/leaderboardOwners, adminsThirty-day vendor engagement ranking with score, opens, image views, qualified referral clicks, and last activity.
/vendor-share/$publicTokenExternal vendorsPublic vendor share page with token validation, expiry handling, watermarked images, activity tracking, referral CTA, and infinite image loading.
/r/$referralTokenExternal referralsReferral redirect endpoint that records qualified vendor referral traffic and forwards visitors to the configured destination.
/app/admin/slideshow/Owners, adminsSlideshow list with gallery title, live/out-of-sync/unavailable status, image count, update time, manage/open actions, and gallery links.
/app/admin/slideshow/$slideshowIdOwners, adminsSlideshow management page with preview, public link, refresh/update/delete actions, duration and loop settings, and plan-gated controls.
/slideshow/$publicTokenClients, guests, public viewersPublic slideshow viewer with dark presentation mode, auto-advance, previous/next controls, progress, counter, end card, brand logo, and unavailable state.
RouteAudienceWhat it covers
/app/admin/settings/brandOwners, adminsBrand profile settings for studio name, slug, primary color, website URL, and uploaded logo.
/app/admin/settings/notificationsOwners, adminsOrganization-level notification preferences for review-related activity and delivery channels.
/app/admin/settings/reminderOwners, adminsAutomated reminders for unopened galleries, incomplete proofing, and deadlines, with email preview and timing controls.
/app/admin/settings/integrationsOwners, adminsIntegration and API key management for external systems and automation credentials.
/app/admin/billingOwnersBilling workspace with checkout/portal return states, plan cards, monthly/annual toggle, usage rings, storage limits, renewal status, and Polar actions.
RouteAudienceWhat it covers
/api/auth/$Internal endpointBetter Auth catch-all endpoint for sign-in, sign-out, sessions, password reset, and auth-related server operations.
/api/img/$Internal endpointAuthenticated or signed image proxy with cache headers for previews, gallery images, and share images.
/api/session/logoutInternal endpointPOST endpoint that signs out the current session.
/api/webhooks/polarBilling integration endpointPolar webhook receiver used to synchronize subscription, checkout, and billing state.
/api/debug/dbDevelopment endpointDatabase connectivity diagnostic route for development or controlled troubleshooting.
/dev/face-pocDevelopment onlyFace-detection benchmark and proof of concept for comparing local face-api and Human worker backends.