Skip to content

Scripts ​

Run these commands from the repository root with Bun 1.4 or newer.

The command form is bun run <name>.

Application ​

ScriptResult
devStarts the Docker development stack with hot reload, Postgres, and Mailpit
buildCreates the production application in .output/
previewRuns the most recent Nuxt build
lintChecks the repository with ESLint
typecheckChecks application and server types

To run the app on the host while Docker supplies Postgres and Mailpit:

sh
docker compose -f compose.dev.yaml up -d db mail
bun --bun nuxt dev

Database ​

ScriptResult
db:generateCreates a Drizzle migration from the schema difference
db:migrateApplies pending migrations and prepares event partitions
db:studioOpens Drizzle Studio
db:seed:adminCreates the initial user, workspace, and owner membership

After a schema change:

sh
bun run db:generate
bun run db:migrate

Read generated SQL before you apply it. A rename can appear as a destructive drop and add when the migration tool cannot infer intent.

Tests ​

ScriptResult
testRuns unit and server end-to-end tests
test:coverageRuns the same suite with V8 coverage
test:browserBuilds the app, then runs Playwright
test:browser:runRuns Playwright against the existing build

The server tests read TEST_DATABASE_URL. They create one isolated database for each test file and do not use the application database.

Browser tests cover single-workspace, multi-workspace, and cloud shapes. Run one shape with:

sh
bun run test:browser:run --project multi

Documentation ​

ScriptResult
docs:devStarts VitePress with hot reload
docs:buildBuilds the static site in docs/.vitepress/dist
docs:previewServes the built documentation

The docs are a separate workspace package. They do not enter the application image.

Open source link management for teams. Released under the MIT License.