Workspaces and commands
The monorepo keeps the mobile app and dashboard in separate npm workspaces under apps/*. The root lockfile installs both; each application owns its runtime and dependencies.
Repository map
| Path | Responsibility | Source |
|---|---|---|
apps/mobile | Expo and React Native patient experience | Mobile workspace |
apps/dashboard | React and Vite clinician dashboard | Dashboard workspace |
package.json | Root workspaces and combined commands | Root package.json |
turbo.json | Dev, check, and build task behavior | Turborepo config |
There is no shared UI package in the root. Keep native and browser-specific code in the app that owns it; the apps use Ovok as their shared backend.
Commands from the repository root
| Command | Purpose |
|---|---|
npm run dev | Start both development servers. |
npm run mobile | Start the Expo development server. |
npm run dashboard | Start the Vite dashboard. |
npm run ios / npm run android | Build and launch the mobile app on the selected platform. |
npm run typecheck | Type-check both workspaces. |
npm test | Run tests in the workspaces. |
npm run build | Build the dashboard and export the mobile JavaScript bundle. |
npm run check | Run type checks, tests, Expo dependency validation, and builds. |
Turborepo defines these tasks in turbo.json. See the per-app guides for their environment and sandbox requirements.