Web App Development
Build and run the omnilux.tv web application locally.
This is the public account and marketing surface, not the self-hosted server UI itself.
Prerequisites
- Node.js 22+
- pnpm
- A configured Supabase project (see Cloud API)
Environment variables
Create .env in the web app directory:
bash
# Supabase
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIs...
# Stripe (for subscription management)
VITE_STRIPE_PUBLISHABLE_KEY=pk_test_...
# App
VITE_APP_URL=http://localhost:5173WARNING
Variables prefixed with VITE_ are embedded in the client bundle and visible to users. Never put secret keys in VITE_ variables.
Development server
bash
pnpm install
pnpm --filter @omnilux/web devThe development server starts at http://localhost:5173 with hot module replacement.
Building for production
bash
pnpm --filter @omnilux/web buildThe build output goes to apps/web/dist/. This is a static site that can be served by any web server (Caddy, Nginx, etc.).
Project structure
The web app uses:
- React 19 with TanStack Router
- Vite for bundling
- Tailwind CSS 4 for styling
- Supabase JS client for authentication and data
- Stripe.js for subscription checkout
Authentication flow
- User signs up or logs in via Supabase Auth
- Supabase returns a JWT
- The JWT is used for all subsequent API calls
- Session refresh is handled automatically by the Supabase client