Getting started
Environment variables
The AI text feature needs two variables in a .env file at the project root
(Vite exposes VITE_-prefixed vars to the client):
The app degrades gracefully when a feature is unconfigured:
- Without
VITE_API_URL/VITE_TURNSTILE_SITE_KEYthe AI text dialog is disabled, and withoutVITE_API_URLthe Lesson hub shows a "not configured" notice. - Without
VITE_GOOGLE_CLIENT_IDthe Save to Google Docs button is hidden. - Without
VITE_SUPABASE_URL/VITE_SUPABASE_ANON_KEYsign-in is disabled (the login page explains this) and the Save to cloud button is hidden; browsing the hub still works.
The Supabase anon key is designed to be shipped to the browser. Keep the
service-role key and JWT secret on the Worker only — never in VITE_*
vars, which are bundled into the client.