Skip to main content

Tech stack

LayerTechnology
FrontendSolidJS
BackendNestJS
Databasesql.js (local) / PostgreSQL (cloud)
AuthBetter Auth
BuildTurborepo

Prerequisites

  • Node.js 22.x
  • npm 10.x

Dev setup

1

Clone and install

git clone https://github.com/mnfst/manifest.git
cd manifest
npm install
2

Start PostgreSQL

docker run -d --name postgres_db \
  -e POSTGRES_USER=myuser \
  -e POSTGRES_PASSWORD=mypassword \
  -e POSTGRES_DB=mydatabase \
  -p 5432:5432 postgres:16
3

Configure environment

Copy .env.example to .env and fill in:
  • BETTER_AUTH_SECRET — any random string
  • DATABASE_URLpostgres://myuser:mypassword@localhost:5432/mydatabase
  • SEED_DATA=true
4

Start the backend

cd packages/backend
NODE_OPTIONS='-r dotenv/config' npx nest start --watch
5

Start the frontend

cd packages/frontend
npx vite
6

Login

Use admin@manifest.build / manifest.

Running tests

# Jest unit tests
npm test --workspace=packages/backend

# Jest e2e tests
npm run test:e2e --workspace=packages/backend

# Vitest frontend tests
npm test --workspace=packages/frontend

Database migrations

Cloud mode only. Local mode uses synchronize: true — no migrations needed.
cd packages/backend
npm run migration:generate -- src/database/migrations/DescriptiveName
npm run migration:run

Changesets

Every PR needs a changeset. Backend/frontend changes need a manifest changeset.
# Add a changeset
npx changeset

# For docs/CI-only changes
npx changeset add --empty