Supported environments
- Browser: Vite serves the single-page app locally. Production hosting must serve
dist/and route unknown paths to the SPA entry. - Desktop: Electron package targets Windows portable/NSIS and Linux AppImage/deb/dir via
electron-builder. - Mobile: Capacitor 8 targets Android and iOS. Native project builds require Android Studio/SDK or Xcode. Feature parity is not established; see
docs/mobile/PLATFORM_LIMITATIONS.md.
Prerequisites
You need Node.js and npm compatible with the lockfile, Git, and a configured Supabase project. Desktop and mobile release builds require Electron Builder and platform-specific dependencies; mobile builds additionally need Android Studio or Xcode. Versions and support policy are not declared in the repository.Local browser launch
1
Install dependencies
Run
npm ci to install from package-lock.json.2
Set required environment variables
Create a local Only these two Vite variables are mandatory at client initialization (
.env file with:src/integrations/supabase/client.ts).3
Start the dev server
Run
npm run dev. Vite listens on port 8000 (vite.config.ts).4
Open the app
Open the printed local URL. Most product screens require a signed-in account and a working Supabase client configuration.
Server-side secrets
Edge Function secrets are server-side and vary by feature. Secret names discovered in source include:SUPABASE_URLSUPABASE_ANON_KEY- A service-role or secret key where privileged operations require it
OPENAI_API_KEY/AI_API_KEYGEMINI_API_KEYSTRIPE_SECRET_KEYSTRIPE_WEBHOOK_SECRET- Origin and app settings
.env exists in this checkout; do not copy or publish its contents.
npm scripts
All commands are declared inpackage.json.
Core
Desktop
Cloudflare
Supabase
Mobile
Repository layout
Suggested workflow
- Install dependencies with
npm install. - Configure the local app using the project’s approved private setup instructions. Do not copy production credentials into source files, documentation, chat, or a public repository.
- Start the frontend with
npm run dev. - For Supabase-backed features, validate the configured project with the bootstrap scripts.
- For desktop or mobile builds, use the corresponding
desktop:*ormobile:*scripts.
Common setup failures
- Missing Supabase public config: the client throws during app startup. Set both required
VITE_variables and restart Vite. - Blank or error startup: confirm dependencies and the Supabase URL/key pair, then inspect the browser console. The app has a startup error boundary and a configuration fallback.
- Auth, tables, or functions fail: confirm the target Supabase project has the required migrations, Auth settings, Edge Functions, and secrets deployed.
npm run supabase:checkchecks deployment prerequisites; it does not prove runtime feature health. - OAuth or email redirect errors: confirm Supabase Auth URL allow-lists and function CORS origins against the exact development or production host.
Common maintainer checks
- Verify private local configuration and backend connectivity without printing credentials.
- Ensure auth and role permissions are correctly configured.
- Verify Stripe and payment webhook configuration for billing flows.
- Ensure
dist/builds cleanly before deployment. - Check migration and edge function alignment before a production rollout.
Recommended reading order
For a newcomer, the best first pass is:README.mddocs/README.mddocs/orbit-ai/overview.mddocs/orbit-ai/architecture.mddocs/orbit-ai/getting-started.mdsrc/App.tsxfor route and guard behaviorsupabase/for backend logic and database state
Open verification items: live screenshot capture for sign-in, chat, history, settings, and privacy screens needs a test tenant with synthetic data. Test tenant requirements for standard, workspace-member, staff, and admin roles, plus MFA states and entitlements, are not yet confirmed.