PortlinePortlineDocs

Demo mode

One command, no sign-in, generated data and no outside requests.

pnpm demo

This starts three servers together:

Only want the app? pnpm demo:app starts just that one.

What you get

There's no sign-in. You land in Harborline Logistics, a made-up 3PL in Los Angeles on the Growth plan, as Avery Morgan, the control tower lead.

The data is generated when the app starts. It covers the last 120 days and the next 14, relative to today, so the dock schedule always has trucks on it and the charts always end at the current date. It's deliberately messy: weekday peaks and weekend dips, a port congestion spike at Busan, a reefer with a gap in its telemetry, a temperature excursion, overdue documents, cancelled appointments, and customers whose names are spelled two ways.

Yard events are open on this Growth workspace. Two shipments name a Pruva vessel. The clips are generated. No model is called, and nothing is sent to Pruva. The API still sits under "Available", because it needs Scale and is not built.

Changing things

You can do everything a dispatcher or owner would: move dock appointments, check drivers in and out, upload documents, send messages. Each action shows a demo notice.

Changes live in memory, per browser session. They're gone when the server restarts, or when you reset them yourself from Settings → Demo → Reset.

What it never does

  • No outside requests. No maps from a tile server, no fonts from a CDN, no analytics, no carrier APIs. Messages to drivers are stored, never sent. The end-to-end tests run with third-party hosts blocked to keep it that way.
  • No production. A banner on every page says you're in the demo. And if DEMO_MODE=true is set together with NODE_ENV=production, the app refuses to start:
DEMO_MODE=true is refused when NODE_ENV=production. Set ALLOW_DEMO_IN_PROD=true only for a deliberate public demo.

Set ALLOW_DEMO_IN_PROD=true only when you mean to run a public demo on purpose.

On this page