---
title: Explore the dashboard app shell
sidebar_label: App shell and navigation
description: Trace page selection, workspace mode, patient selection, and the main clinician dashboard shell.
---

# Explore the dashboard app shell

The dashboard keeps its navigation small: Overview, Patients, Signals setup, and Support. It uses a single selected patient for the review screen and separates synthetic demo mode from sandbox mode.

## Follow the render path

1. [`src/main.tsx`](https://github.com/Ovok-Dev/rpm-web-dashboard/blob/main/src/main.tsx) mounts the application.
2. [`src/App.tsx`](https://github.com/Ovok-Dev/rpm-web-dashboard/blob/main/src/App.tsx) owns the active page, workspace mode, selected patient, loaded review, and request states.
3. [`src/components/AppShell.tsx`](https://github.com/Ovok-Dev/rpm-web-dashboard/blob/main/src/components/AppShell.tsx) renders the sidebar navigation, environment indicator, and responsive app frame.
4. The selected page receives data and callbacks from `App`; the screen components remain focused on rendering and user interaction.

The app starts in demo mode. A successful practitioner sign-in switches the data source to the sandbox project. Returning to demo clears the live review state rather than blending sandbox and synthetic records.

## Explore the screens

- [`PatientsPage.tsx`](https://github.com/Ovok-Dev/rpm-web-dashboard/blob/main/src/components/PatientsPage.tsx) provides a searchable patient directory and selection callback.
- [`PatientReviewPage.tsx`](https://github.com/Ovok-Dev/rpm-web-dashboard/blob/main/src/components/PatientReviewPage.tsx) renders the selected profile, measurement cards, and recent activity.
- [`SupportPage.tsx`](https://github.com/Ovok-Dev/rpm-web-dashboard/blob/main/src/components/SupportPage.tsx) links out to the platform documentation and example guidance.

Continue to [Patient data flow](/example-rpm-app/web-dashboard/patient-data) to trace how SDK results reach these screens.
