brew install node@22, or nvm install 22). Corepack ships with Node: corepack enable.Get the repository onto the laptop. From the dev desktop, scripts/laptop/export-repo.sh writes ~/platepilot-repo.tgz (sources plus git history, no node_modules); copy and unpack it:
scp <desktop>:platepilot-repo.tgz ~/ && mkdir -p ~/code && tar -xzf ~/platepilot-repo.tgz -C ~/code
cd ~/code/nutrition-coach
Start everything:
scripts/laptop/dev-up.sh
It detects your Wi-Fi address, writes .env (with PHOTO_UPLOAD_PUBLIC_ENDPOINT_URL pointing at that address so the phone can upload photos), publishes LocalStack on the Wi-Fi interface through a gitignored docker-compose.override.yml, starts Postgres and LocalStack, installs dependencies, applies migrations, builds the workspace packages, and runs the API (tsx watch, so code changes reload) and the worker in the background with logs under .cache/laptop/.
node or Docker may accept incoming connections, allow it. If the firewall is set to block all incoming connections, the phone cannot connect.Stop with scripts/laptop/dev-down.sh; your data stays in the Docker volumes. Run dev-up.sh again after a reboot or when your router hands the laptop a new address (pass the address explicitly if detection picks the wrong interface: scripts/laptop/dev-up.sh 192.168.1.22).
Same Wi-Fi as the laptop, and the laptop must not be on the Amazon VPN while you use the app (the VPN client blocks devices on your home network from reaching the laptop; that is what broke the Wi-Fi attempt on 2026-09-20).
Install any local-device APK (built with scripts/mobile/build-android-apk.sh), then set the server address to http://<laptop-ip>:3001 in Me → About and help → Practice switches (local builds), or on the onboarding screen’s “Can’t connect?” card, and close and reopen the app. Or bake it in: scripts/mobile/build-android-apk.sh http://<laptop-ip>:3001 wifi (needs Docker; about four minutes with a warm cache).
Check from the phone browser first: http://<laptop-ip>:3001/health should show {"status":"ok"...}.
corepack pnpm --filter @platepilot/mobile start then press w.corepack pnpm check (see docs/development.md).EXPO_PUBLIC_API_BASE_URL defaults to http://localhost:3001, which is right for the web preview on the laptop.The AWS playground (docs/runbooks/aws-playground.md) is stopped and must not be restarted for this project. The dev desktop path (docs/runbooks/android-device-preview.md) still works over USB but is no longer needed once the repo lives on the laptop.