Prerequisites
- Node 22+ and npm.
- Docker (for local PostgreSQL + Redis) — or your own Postgres 17 / Redis 7.
- Native builds only: Xcode 26+ (iOS), Android SDK 36 + JDK 21 (Android), Rust stable (desktop). Not needed to run the web app.
1. Backend (shipwide_api) — start here
1
Install and configure
2
Start Postgres + Redis
3
Migrate, seed, serve
curl http://localhost:3000/v1/health. Interactive API reference:
http://localhost:3000/docs. The minimum env is DATABASE_URL, REDIS_URL, JWT_SECRET
(≥32 chars) — env.dev sets them.
Email in dev:
EMAIL_DEV_MODE=true prints one-time sign-in codes to the API console
instead of emailing them, so the passwordless flow works with no SMTP.2. App (shipwide_app)
npm run build:native, then open the
ios/ / android/ project — see App.
3. Admin panel (shipwide_admin)
ADMIN_LOGIN / ADMIN_PASSWORD you set in the API’s env, or an emailed
staff code (printed to the API console). The first admin is bootstrapped from ADMIN_EMAILS.
The API allows this origin automatically via ADMIN_URL — keep ADMIN_URL and the port in
agreement.
4. Website (shipwide_website)
Next
Configuration
Every environment variable, per part.
HTTPS in dev
Serve the dev servers over HTTPS when you need a secure context.
Billing
Turn on subscriptions and in-app purchases.
Deployment
Ship each part to production.