Skip to main content
New to the layout? Read Architecture first. Every environment variable is collected in Configuration.

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

Check it: 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)

Sign in: enter any email → read the 6-digit code from the API console → you’re in (an unknown address is created on the spot). Native: npm run build:native, then open the ios/ / android/ project — see App.

3. Admin panel (shipwide_admin)

Sign in with the 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)

It’s all placeholder content — see Website and Customization to make it yours.

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.