- Python 3.9+
- Node.js 18+
- ffmpeg (
brew install ffmpeg)
cd backend
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000cd frontend
npm install
npm run devOpen http://localhost:3000 in your browser.
git pull origin main
# Backend — install any new dependencies
cd backend
source .venv/bin/activate
pip install -r requirements.txt
# Frontend — install any new dependencies
cd ../frontend
npm installThen restart both servers as usual.
iOS Safari requires HTTPS for microphone access. Use ngrok to create a secure tunnel:
-
Install ngrok:
brew install ngrok -
Sign up at ngrok.com and run
ngrok config add-authtoken YOUR_TOKEN -
Start tunnels:
ngrok start --all --config ~/ngrok-hearth.yml -
Create
frontend/.env.local:NEXT_PUBLIC_BACKEND_URL=https://your-backend-tunnel.ngrok-free.app -
Open the frontend tunnel URL on your iPhone
Android users: No ngrok needed — open
http://YOUR_LOCAL_IP:3000directly.