Developer quickstart
Run the Prolifto monorepo locally and open the admin and storefront.
This tutorial gets the full monorepo running locally: database, admin dashboard, and storefront. Plan for about ten minutes on a machine that already has Docker.
Before you start
You need:
- Node.js 24 — the version in
.node-versionis24.18.0. - pnpm 12 — the repository uses
packageManager: pnpm@12.14.0. - Docker Desktop — used for PostgreSQL, Mailpit, and optional object storage.
- Bun — some admin scripts, including the database seed and feature flag CLI, run with Bun.
The repository is a Turborepo. Most commands are run from the repository root
with pnpm; use pnpm -F <workspace> when you only need one app.
1. Install dependencies
pnpm install2. Create the environment files
Each Next.js app validates its environment at startup, and Drizzle reads its own
file from packages/db:
cp apps/admin/.env.example apps/admin/.env
cp apps/storefront/.env.example apps/storefront/.env
cp packages/db/.env.example packages/db/.envThe example values work for local development with the Docker services. Keep
BETTER_AUTH_SECRET identical in the admin and storefront files.
See Environment variables for the full list and the optional integrations.
3. Start PostgreSQL and apply migrations
pnpm db:dev:up
pnpm db:migratepnpm db:migrate applies the committed migrations from packages/db/migrations.
For quick local schema syncing you can use pnpm db:push, but never run it
against production.
Optionally seed demo data:
pnpm -F admin db:seed4. Start the apps
Start the admin dashboard with its background worker and database studio:
pnpm dev:adminOr start the storefront:
pnpm dev:store| App | URL |
|---|---|
| Admin dashboard | http://localhost:3000 |
| Storefront | http://localhost:3001 |
| Documentation | http://localhost:3002 |
To run everything, including this docs site, use:
pnpm dev5. Connect the storefront to a store
The storefront is a separate app that talks to the admin API. It needs two
values in apps/storefront/.env:
ORGANIZATION_SLUG— the store slug.API_KEY— an API key created in the admin under Settings → API.
Create a store in the admin, create an API key, copy it once, and restart the storefront. If the store has no published products, the storefront will look empty.
6. Verify your setup
- Open the admin and sign in.
- Open the setup page for your store and complete the launch checklist.
- Open the storefront and confirm that a published product appears.
If the storefront shows an error, check the admin API URL
(NEXT_PUBLIC_API_URL), the store slug, and the API key.
Useful commands
| Command | What it does |
|---|---|
pnpm dev:admin | Admin, Inngest, and Drizzle Studio |
pnpm dev:store | Storefront only |
pnpm dev:docs | This documentation site only |
pnpm db:dev:up / pnpm db:dev:down | Start or stop the development database |
pnpm db:migrate | Apply committed migrations |
pnpm db:studio | Open Drizzle Studio |
pnpm mail:up | Start Mailpit for local email |
pnpm storage:up | Start SeaweedFS for S3-compatible storage |
pnpm check / pnpm check-types | Lint/format and type-check |
pnpm e2e | Run the Playwright suite |
Next steps
- Read the architecture overview.
- Learn the database workflow.
- Set up testing before your first change.