GoShipped

⚑ Quick Start

From a fresh checkout to a running app. Skip Stripe, email, and the rest until you need them.

Let’s get GoShipped running first. You can worry about the rest later.

pnpm install
pnpm run setup
pnpm run doctor
pnpm dev

When it works, you will have:

  • Next.js at https://localhost:3000
  • FastAPI at https://localhost:8000

Hosted Supabase is the easiest first run. You only need Docker if you want the whole stack on your machine.

Use `pnpm run`

Always type pnpm run setup and pnpm run doctor.

Bare pnpm setup and pnpm doctor are built-in pnpm commands. They will not run GoShipped’s scripts.

What you need

RequirementDetails
Node.js20 or newer
pnpm10 (the repo pins pnpm@10.14.0)
Python3.11 or newer
SupabaseA hosted project, or local via Docker
OpenAI or AnthropicAt least one API key for chat

If you're missing one of these, the official setup guides are linked in the table.

Python packages install into apps/api/.venv automatically when you run pnpm dev. You do not set that up by hand.

Docker is not required unless you run local Supabase (pnpm supabase:start). A hosted project is enough. If you do want local, install Docker first β€” see Supabase local development.

Not required to start

Stripe, Resend, MCP, and Sentry are optional. Skip them in setup. You can add them later.

1. Install

From the repository root:

pnpm install

This installs workspace dependencies, including the pinned Vercel and Supabase CLIs.

2. Run setup

pnpm run setup

Setup is a guided wizard. It walks you through product config, env files, Supabase, AI, and optional extras β€” one step at a time.

It:

  1. Validates starter.config.json
  2. Creates missing env files from the examples (it never overwrites existing files)
  3. Connects Supabase and applies migrations
  4. Configures at least one AI chat provider
  5. Offers Stripe, Resend, and other extras β€” skip them if you are not ready
  6. Prints a short summary

Setup needs an interactive terminal. In CI, use pnpm run doctor instead.

If you skip Stripe

Billing is on by default in starter.config.json. If you skip Stripe keys and leave features.billing as true, doctor will still report those keys as missing.

Not using Stripe yet? Skip it, then set features.billing to false. The app still runs. Users get the default plan (DEFAULT_PLAN_WHEN_BILLING_DISABLED, which is pro).

HTTPS in local dev

pnpm dev serves the app over HTTPS. If mkcert is installed, the API cert is trusted automatically. Otherwise it is self-signed and the browser will warn once.

3. Let doctor check it

pnpm run doctor

Run it whenever you are unsure. Doctor only checks things. It never changes your setup.

It tells you what is missing, which file it belongs in, and where to get the value β€” without printing secrets.

Disabled features are reported as skipped. Their exclusive credentials are not required.

Exit code 0 means required checks passed (warnings are allowed). Exit code 1 means something required is still missing.

4. Start the app

pnpm dev
AppURL
Frontendhttps://localhost:3000
Backendhttps://localhost:8000
API healthhttps://localhost:8000/health
API referencehttps://localhost:8000/docs

Both servers use local HTTPS. Your browser will warn about the certificate the first time. Accept it.

Hosted Supabase + local HTTPS

Set the Supabase Site URL to https://localhost:3000 (not http://). Allow-list the HTTPS redirect URLs, or confirmation and password-reset links will break.

You can also start the apps separately:

pnpm dev:web
pnpm dev:api

5. Send the first message

  1. Open https://localhost:3000
  2. Create an account
  3. Confirm the email (hosted Supabase inbox, or Mailpit if you run local Supabase)
  4. Open chat and send a message

If chat works, you are running. Go build.

What you actually needed

You only needed three things to boot and chat:

RequiredWhy
SupabaseAuth, Postgres, and (if files are on) Storage
One chat providerOPENAI_API_KEY and/or ANTHROPIC_API_KEY in apps/api/.env
OpenAI, if Files or Memory stay onEmbeddings currently use OpenAI even when Anthropic is the chat provider

Files and Memory are enabled by default. If you only have an Anthropic key, either add OpenAI for embeddings or turn features.files and features.memory off in starter.config.json.

Skip these for now

IntegrationDefaultHow to skip
StripeBilling flag on; keys not required to bootSkip in setup, or set features.billing to false
ResendEMAIL_ENABLED=falseLeave it disabled. Auth email still goes through Supabase.
SentryOff when the DSN is emptyLeave empty
MCPfeatures.mcp=falseLeave off
Web research / stocks / shoppingTools on; provider keys optionalSkip the keys. Those tools fail until configured.

None of these block a local first run.

Local vs hosted Supabase

Hosted (typical first run): setup links your project and pushes migrations. No Docker. Create a project in the Supabase dashboard if you do not have one yet.

Local (offline / full stack on your machine):

pnpm supabase:start

That needs Docker. Auth emails then show up in Mailpit (the URL is in pnpm supabase:status). See Supabase local development if the CLI stack is new to you.

If something fails

Run doctor first:

pnpm run doctor
SymptomWhat to do
pnpm setup does the wrong thingUse pnpm run setup.
Browser warns about HTTPSExpected. Accept the warning, or install mkcert.
Auth emails open http://localhost:3000 and failSet Supabase Site URL to https://localhost:3000.
Chat works but files or memory failAdd OPENAI_API_KEY.
Doctor complains about StripeAdd keys, or set features.billing to false.

You're running

Nice. The foundation is live.

Next, learn which files you actually edit β€” and which ones you can ignore.

On this page