dimensionlab-website/README.md
2026-06-18 18:16:21 +02:00

54 lines
2 KiB
Markdown

# Dimension Lab Website
Standalone SvelteKit runtime for the Dimension Lab system overview dashboard.
This project is not a Homepage customization and does not depend on Homepage
runtime, frontend code, or configuration. The dashboard will be model-driven:
the reusable renderer stays content-free, while environment-specific data lives
in validated dashboard model state.
## Development
```sh
bun install
bun run dev
```
This MVP uses Drizzle with Bun SQLite for local file-backed persistence.
## Scripts
- `bun run dev`: start the local development server.
- `bun run check`: run Svelte and TypeScript checks.
- `bun run test`: run Vitest.
- `bun run build`: build the production app.
- `bun run preview`: preview the production build.
- `bun run db:generate`: generate Drizzle migrations from the server schema.
- `bun run db:check`: validate migration consistency.
## Persistence
Dashboard documents are stored in SQLite through Drizzle. The default database
URL is:
```sh
DATABASE_URL=file:./data/dimensionlab.sqlite
```
SQLite files under `data/` are ignored. Drizzle schema lives in
`src/lib/server/db/schema.ts`; tracked migrations live in `drizzle/`. Runtime
startup applies the checked-in dashboard migrations before reads or writes. If
the app is launched from outside the repo tree, set `DASHBOARD_MIGRATIONS_DIR`
to the tracked migrations directory. The current driver is `bun:sqlite`, which
keeps this repo installable in the Bun workflow. The store boundary is isolated
so a later Postgres driver can replace the SQLite connection without changing
the dashboard model or renderer.
Stored dashboard documents pass through a version migration boundary before
reads or writes; the MVP supports `dashboard.v1` and fails unsupported versions
with an explicit migration error.
## Runtime Shape
The SvelteKit build uses the Node adapter, and the current persistence runtime
is Bun because the MVP SQLite driver is `bun:sqlite`. Later issues add the
component system, Storybook, seed data expansion, and rendering pipeline.