Start here · 2 min
Install
From a fresh clone to a running app on your machine. Four commands, about ten minutes, most of it waiting for Supabase.
Clone it
Use your own repository name. The kit is yours to rename, and you should: every reference to ShipNow in your git history is a reference to somebody else's product.
git clone git@github.com:tryshipnow/shipnow-kit.git my-product cd my-product rm -rf .git && git init npm install
Set it up
npm run setupThat is the whole install. setup is a wizard rather than a script that prints
a to-do list: it asks for your product name, your Supabase project, and, if you
want them now, email and payments. Every answer is checked against the real
service before it moves on, so a wrong key is caught at the prompt instead of
three commands later.
It writes .env and src/config.ts, creates your database tables, and offers
to start the app.
Skip anything you are not ready for. Run it again later and it reads what is already there, asking only for the rest.
Check it
npm run doctorReads your .env and asks each service whether the key still works. This is
the command to run when a page goes blank and the console says nothing: the
cause is usually one expired key among six, and this names it.
Run it
npm run devhttp://localhost:3000. Sign in with your own email. The magic link is
printed in the Supabase dashboard under Authentication, Logs until you wire
Resend, so you do not need working email to test the flow.
What just happened
| Command | What it touched |
|---|---|
npm run setup | src/config.ts, .env |
npm run db:push | Your Supabase project's schema |
npm run dev | Nothing. Compiles messages first, then serves |
npm run dev runs npm run paraglide before it starts. If you edit
messages/en.json, the compiled messages regenerate on the next start, not on
save. That surprises people once.
Next
Configuration is the one file you change to make this your product.
Something wrong or missing on this page? Tell us.