---
title: "Scripts"
description: "Root and app scripts you actually run while developing a Taman project."
canonical_url: "https://vinicunca.dev/taman/getting-started/scripts"
---
# Scripts

> Root and app scripts you actually run while developing a Taman project.

All commands are from the monorepo root unless noted. nx project names: `web`, `api`, `db-pg`.

## Everyday

| Command | What it runs |
| --- | --- |
| `pnpm dev:web` | `nx run web:dev` → `vite --mode development` (port from `VITE_PORT`) |
| `pnpm dev:api` | `nx run api:dev` → `nitro dev` on **8788** |
| `pnpm db-pg:migrate:dev` | `drizzle-kit push` with `packages/server/db-pg/.env` |
| `pnpm db-pg:migrate:uat` | `drizzle-kit migrate` with `.env.uat` |
| `pnpm db-pg:migrate:prod` | `drizzle-kit migrate` with `.env.prod` |
| `pnpm db:generate` | `drizzle-kit generate` → SQL under `packages/server/db-pg/migrations` |
| `pnpm db:generate:auth` | better-auth CLI schema dump (see [Database](https://vinicunca.dev/taman/guides/database-and-migrations)) |
| `pnpm dev:db-pg:studio` | Drizzle Studio (`db-pg:studio:dev`) |
| `pnpm nx run api:seed` | Seed admin (`bun run` — [Bun is undeclared](https://vinicunca.dev/taman/getting-started/running-locally)) |
| `pnpm nx run api:seed:todos` | Seed todos (`tsx`) |

## Build and quality

| Command | What it runs |
| --- | --- |
| `pnpm build` | `nx run-many -t build` (8 GB heap) |
| `pnpm build:analyze` | Bundle analyzer on web |
| `pnpm check` | circular deps, depcheck, typecheck, cspell |
| `pnpm check:type` | `nx run-many -t typecheck` |
| `pnpm lint` / `pnpm format` | ESLint (`@vinicunca/eslint-config`) |
| `pnpm test` | vitest (watch) |
| `pnpm test:unit` | `vitest run --dom` |
| `pnpm test:core` | `vitest packages` |
| `pnpm --filter @taman/web test:e2e` | Playwright (from `apps/web`) |

## Web package scripts

From `apps/web/package.json`: `dev`, `build`, `build:analyze`, `preview`, `typecheck`, `test:e2e`, `test:e2e-ui`, `test:e2e-codegen`.

## Housekeeping

| Command | What it runs |
| --- | --- |
| `pnpm bootstrap` | `pnpm install` |
| `pnpm clean` | `scripts/clean.mjs` |
| `pnpm reinstall` | clean lockfile + install |
| `pnpm commit` | `czg` (commitizen + commitlint scopes) |
| `pnpm catalog` | `pnpm dlx codemod pnpm/catalog` |

`postinstall` runs `stub` on packages that define it (builds published packages in the source repo). `preinstall` is `only-allow pnpm`. `prepare` installs git hooks via `scripts/prepare-hooks.mjs`.

## Removed on generate

`create-taman` deletes these **root** scripts from the generated `package.json`: `build:docker`, `check:api-packages`, `publint`. They remain in the source repository.


## Sitemap

See the full [sitemap](https://vinicunca.dev/sitemap.md) for all pages.
