Routes Reference

All route constants are defined in src/config/routes.ts as ROUTES.*.

Public routes

PathDescription
/Marketing homepage
/pricingPricing page
/faqFAQ page
/termsTerms of service
/privacyPrivacy policy
/docs/[slug]Documentation pages

Auth routes

PathDescription
/sign-inEmail/password + OAuth sign-in
/sign-upNew account registration
/forgot-passwordRequest password reset email
/reset-passwordSet new password (from email link)

Protected routes

Requires an authenticated session. The middleware at middleware.ts redirects unauthenticated requests to /sign-in.

PathDescriptionMin role
/select-workspaceList and switch workspacesany
/create-workspaceCreate a new workspaceany
/w/[id]/dashboardWorkspace overview statsany
/w/[id]/productsProduct listany
/w/[id]/products/[productId]Product detailany
/w/[id]/membersMember list + inviteany
/w/[id]/billingStripe subscriptionOWNER
/w/[id]/auditAudit logOWNER/ADMIN
/w/[id]/settingsWorkspace name + deleteOWNER

Invitation route

PathDescription
/invite/[token]Accept a workspace invitation. Public: no auth required to visit, but the user must sign in or sign up to complete acceptance.

API routes

PathDescription
/api/stripe/webhookStripe webhook endpoint. Validates signature and updates subscriptions table.

Route helpers

import { ROUTES } from "@/config/routes";

ROUTES.DASHBOARD(workspaceId)            // /w/abc/dashboard
ROUTES.PRODUCTS(workspaceId)             // /w/abc/products
ROUTES.PRODUCT(workspaceId, productId)   // /w/abc/products/xyz
ROUTES.MEMBERS(workspaceId)              // /w/abc/members
ROUTES.BILLING(workspaceId)              // /w/abc/billing
ROUTES.INVITE(token)                     // /invite/tok...