Skip to content

Pages and routes

Reference of eu-home-app routes, grouped by area. Component paths are relative to frontend/apps/eu-home-app/.

Route table by area

Home

Path Component Purpose
/ app/pages/Home.tsx Dashboard and quick links
/news (redirect) Redirects to /

Team

Backed by areas, units, crews, communities, on-call groups, smart groups (see Smart Groups, On-Call Groups).

Path Component Purpose
/team (redirect) Redirects to current user's team (community, crew, or area)
/team/communities, /team/areas, /team/units, /team/crews (redirect) Redirect to first relevant team for current user
/team/:type/new/* app/pages/Team/index.tsx (TeamRoot) Create new team (type = communities, areas, units, crews, etc.)
/team/:type/:slugOrId/* app/pages/Team/index.tsx (TeamRoot) Team hub; nested routes below
/team/:type/:slugOrId/settings app/pages/Team/SettingsTab.tsx Team settings
/team/:type/:slugOrId/criteria app/pages/Team/CriteriaTab.tsx Criteria tab (smart groups)
/team/:type/:slugOrId/members app/pages/Team/MembersTab.tsx Members
/team/:type/:slugOrId/ooo app/pages/Team/OOOTab.tsx Out of office
/team/:type/:slugOrId/sfa app/pages/Team/SFATab.tsx SFA tab
/team/:type/:slugOrId/areas app/pages/Team/AreasTab.tsx (UnitAreas) Unit's areas
/team/:type/:slugOrId/crews app/pages/Team/CrewsTab.tsx (AreaCrews) Area's crews

Profile

Alaner profile (and external user profile when :userId is a UUID). See User Lifecycle.

Path Component Purpose
/profile (redirect) Redirects to /profile/:userId (current user)
/profile/subscriptions (redirect) Redirects to current user's subscriptions tab
/profile/:userId/* app/pages/UserProfile.tsxAlanerProfile or ExternalUserProfile Profile hub; userId can be slack_handle, numeric id, or UUID (external user)
/profile/:userId (Alaner) app/pages/AlanerProfile/index.tsx SFAs or Timeline (default tab)
/profile/:userId/SFAs app/pages/AlanerProfile/SFAList.tsx SFAs list
/profile/:userId/timeline app/pages/AlanerProfile/Timeline.tsx Timeline
/profile/:userId/ooo app/pages/AlanerProfile/OOOCalendar.tsx OOO calendar
/profile/:userId/subscriptions app/pages/AlanerProfile/Subscriptions.tsx Subscriptions
/profile/:userId/roles app/pages/AlanerProfile/RolesManagement.tsx Roles
/profile/:userId/feedback app/pages/AlanerProfile/Feedback.tsx Feedback
/profile/:userId/checkpoints app/pages/AlanerProfile/Checkpoints.tsx Checkpoints (coach/reviewee)
/profile/:userId/external-users app/pages/AlanerProfile/ExternalUsers.tsx External users
/profile/:userId/settings app/pages/AlanerProfile/Settings.tsx Profile settings (current user only)

Subscriptions

Path Component Purpose
/subscriptions app/pages/Subscriptions/index.tsx Subscriptions hub
/subscriptions/ (index) app/pages/Subscriptions/SubscriptionsSfa.tsx SFAs subscriptions
/subscriptions/ooo app/pages/Subscriptions/SubscriptionsOOO.tsx OOO subscriptions

Tools

Path Component Purpose
/tools app/pages/Tools.tsx Tools index
/tools/summary app/pages/SummaryTool.tsx Summary tool
/tools/audio app/pages/AudioTool.tsx Audio tool
/tools/spacefinder app/pages/SpaceFinder/index.tsx Space finder
/tools/role-definition-with-grant-rules app/pages/RoleWithGrantRulesReview.tsx Role definition with grant rules
/tools/activepieces-flows app/pages/ActivePiecesFlows.tsx ActivePieces flows
/tools/logo-integrator app/pages/LogoIntegrator.tsx Logo integrator
/tools/postcard-generator app/pages/PostcardGenerator.tsx Postcard generator
/tools/media-generator, /tools/media-generator/me, /tools/media-generator/all app/pages/MediaGenerator/MediaGenerator.tsx Media generator
/tools/media-generator/stats app/pages/MediaGenerator/MediaGeneratorStats.tsx Media generator stats
/tools/sales-prospecting app/pages/SalesProspecting/index.tsx Sales prospecting

External users

Path Component Purpose
/external-users app/pages/ExternalUserManager/index.tsx External user manager (list, create, edit)

Equity

Path Component Purpose
/equity (redirect) Redirects to /equity/:slackHandle (current user)
/equity/simulate app/pages/EquityDashboard/EquitySimulator.tsx (EquitySimulatorDashboard) Equity simulator
/equity/:slackHandle app/pages/EquityDashboard/index.tsx Equity dashboard

On-call

See On-Call Groups.

Path Component Purpose
/on-call app/pages/Oncall/index.tsx (OncallRedirect) Redirects to first on-call group
/on-call/new/* app/pages/Oncall/index.tsx (OncallGroupPage, create) Create on-call group
/on-call/:slugOrId/* app/pages/Oncall/index.tsx (OncallGroupPage) On-call group hub
/on-call/:slugOrId/schedule app/pages/Oncall/OncallScheduleTab.tsx Schedule tab
/on-call/:slugOrId/roster app/pages/Oncall/OncallRosterTab.tsx Roster tab
/on-call/:slugOrId/settings app/pages/Oncall/OncallSettingsTab.tsx Group settings

Reviews

See Reviews.

Path Component Purpose
/reviews app/pages/Reviews/index.tsx (ReviewsHome) Reviews home (cycles, todos)
/reviews/:reviewId/select-reviewers app/pages/Reviews/PickReviewers.tsx Pick reviewers
/reviews/:reviewId/validate-reviewers app/pages/Reviews/ValidateReviewers.tsx Validate reviewers
/reviews/:reviewId/:reviewSubmissionId app/pages/Reviews/WriteReview.tsx Write review (reviewer submission)
/reviews/:reviewId app/pages/Reviews/ViewReview/index.tsx View review (reviewee/coach)

Sales introductions

Path Component Purpose
/sales-intros app/pages/SalesIntroductions/index.tsx Sales introductions

Anomalies

Path Component Purpose
/anomalies app/pages/AnomaliesManager/index.tsx Anomalies manager

Slack audio cleanup

Path Component Purpose
/slack-audio-cleanup app/pages/SlackAudioCleanup/index.tsx Slack audio cleanup tool

Service accounts

Path Component Purpose
/service-accounts app/pages/ServiceAccountManager/index.tsx Service accounts list
/service-account/:serviceAccountId/* app/pages/ServiceAccountManager/ServiceAccountProfile.tsx Service account profile (tabs)

Work from anywhere (WFA)

Path Component Purpose
/wfa app/pages/WorkFromAnywhere/index.tsx WFA hub (List by default)
/wfa/ (index) app/pages/WorkFromAnywhere/List.tsx List view
/wfa/map app/pages/WorkFromAnywhere/Map.tsx Map view

Other

Path Component Purpose
/anonymization app/pages/Anonymization.tsx Anonymization tool (restricted)
* (no match) app/pages/NotFound.tsx 404 page

Routing overview

Routes are defined in two places:

  1. Root: frontend/apps/eu-home-app/app/App.tsx — top-level <Routes> with <Route path="..." element={...} />. Nested layouts (e.g. /team, /on-call, /profile) render a layout component that contains a second <Routes> for sub-paths.
  2. Nested: Inside page components that act as hubs: Team/index.tsx (TeamRoot), Oncall/index.tsx (OncallGroupPage, OncallRoot), Reviews/index.tsx, UserProfileAlanerProfile/index.tsx, Subscriptions/index.tsx, WorkFromAnywhere/index.tsx, MediaGenerator (routes in App.tsx only for /me, /all, /stats).

Redirects:

  • / → Home; /news/; /profile/profile/:userId; /profile/subscriptions → profile subscriptions tab.
  • /team → current user's team URL (community, crew, or area); /team/communities, /team/areas, etc. → first relevant team.
  • /equity/equity/:slackHandle; /on-call/on-call/:slugOrId (first group).

Layout: the main shell is app/components/Layout.tsx. Many features use tabbed sub-nav (e.g. Team tabs, Profile tabs, On-call tabs) defined next to their <Routes> in the same page component.

Adding a new page

  1. Create the page: Add a folder under app/pages/<FeatureName>/ with an index.tsx (or a single file under app/pages/ for a one-off page).
  2. Register the route: In App.tsx, add a <Route path="..." element={<YourComponent />} /> either at the top level or inside an existing parent (e.g. under /tools for a new tool). For nested routes, add the route in the parent page's <Routes> (e.g. in Team/index.tsx for a new team tab).
  3. Navigation: If the page should appear in the sidebar or in a feature's tabs, add a link in Layout (sidebar) or in the feature's tab list (e.g. TabList in Team, Profile, etc.).

See also