Doorway
Doorway is a modern, secure, room-based translation app that lets two people hold natural bilingual conversations using Gemini Live.
Core trick
Two users join a room and Gemini Live translates each speaker's speech both ways, while on-device face tracking drives live expression gauges.
Description
Doorway is a modern, secure, room-based translation app that lets two people hold natural bilingual conversations using Gemini Live. Its premium, minimalist interface is built to be highly visual and interactive: it features a secure 6-digit room setup, a dual-language live transcript view, and real-time Expression Metric Gauges powered by on-device face tracking. By showing user camera feeds alongside animated metrics like Frown and Hesitation, the UI immediately illustrates how the app monitors and adapts to the listener's facial cues, making the translation process feel fluid, reactive, and alive.
README excerpt
# Doorway Doorway is a room-based live translation app that lets two participants join the same room and translate in both directions using Gemini Live. ## Prerequisites Before you start, install the following on your machine: - Node.js 18+ or newer - npm ## Install dependencies From the project root, run: ```bash npm install ``` ## Create your local environment file Create a file named [.env.local](.env.local) at the project root and add the following values: ```env GEMINI_API_KEY=your_gemini_api_key_here APP_URL=http://localhost:3000 ``` Notes: - Replace `your_gemini_api_key_here` with your actual Gemini API key. - `APP_URL` is the URL you want the app to use for browser access. For local development this can stay as `http://localhost:3000`. - If you are testing from a phone over the internet, set `APP_URL` to your HTTPS tunnel URL such as an ngrok URL. ## Build the app To create a production build: ```bash npm run build ``` This generates the production assets in the `dist` folder. ## Run the app locally ### Development mode ```bash npm run dev ``` This starts the Express + Vite dev server. Then open: - `http://localhost:3000` ### Production mode After building, you can run: ```bash npm run start ``` ## Testing from another phone or laptop ### Option 1: Same Wi-Fi / local network For same-network testing, use your Mac's local network IP instead of `localhost`, for example: ```text http://192.168.x.x:3000 ``` ### Option 2: From another phone or