Skip to content

User Dashboard

The user dashboard is the authenticated area of the app at /dashboard. All pages under _app/ require a valid session and are wrapped in a sidebar layout.

The landing page after login. Shows a welcome message and quick links to profile, security, and preferences.

Subscription management for the current team. Shows the active plan, status, and renewal date. Team owners and admins can:

  • Subscribe to a plan via Stripe or Polar checkout
  • Change plans (upgrade or downgrade)
  • Cancel the subscription (takes effect at the end of the billing period)
  • Open the customer portal to manage payment methods and invoices

See the Billing guide for details on how billing works.

The page users land on after completing a Stripe checkout. It polls for the subscription to become active, then shows a confirmation.

Settings are organized into tabs under /settings:

Update name and profile photo (avatar upload).

Change password, enable or disable two-factor authentication, and manage active sessions (view and revoke).

Theme settings (light, dark, or system).

The current user’s audit log. Shows a timeline of actions they have performed.

Account deletion. Requires password confirmation and shows a warning about what will be removed.

Team management, split into two sub-pages:

  • General (/settings/team) - Team name, slug, and logo. Team deletion (owner only).
  • Members (/settings/team/members) - View members and their roles, invite new members by email, remove members, and change roles.

See the Teams guide for details on how teams work.

All user-facing pages share the _app layout which includes:

  • A sidebar with navigation links, team switcher, and user menu
  • An email verification banner that appears if the user’s email is not verified

The sidebar collapses on mobile with a toggle button.

FilePurpose
routes/_app/route.tsxApp layout (sidebar, banner) and auth guard
routes/_app/dashboard.tsxDashboard page
routes/_app/billing.tsxBilling layout
routes/_app/billing.index.tsxBilling page
routes/_app/billing.success.tsxPost-checkout success page
routes/_app/settings.tsxSettings layout (tabs)
routes/_app/settings.index.tsxProfile settings
routes/_app/settings.security.tsxSecurity settings
routes/_app/settings.preferences.tsxTheme preferences
routes/_app/settings.activity.tsxUser activity log
routes/_app/settings.advanced.tsxAccount deletion
routes/_app/settings.team.tsxTeam settings layout
routes/_app/settings.team.index.tsxTeam general settings
routes/_app/settings.team.members.tsxTeam members management