This repository contains the Dukat TypeScript applications and shared packages.
apps/website— Astro public website with Tailwind CSS and optional Svelte islands.apps/dashboard— client-side SvelteKit dashboard served by the Node application.apps/admin— SvelteKit app placeholder for internal tooling.apps/server— same-origin Cloudflare Worker and local Node/Hono runtime for the dashboard and/api/*.
packages/api— Hono API definition with@hono/zod-openapiand a Scalar API reference.packages/api-client— typed client for@dukat/api, sharing types end to end.packages/core— shared domain schemas and types.packages/auth— Better Auth and provider-neutral transactional email setup.packages/db— SQLite Drizzle schema, migrations, and recovery commands.packages/env— type-safe environment variables via@t3-oss/env-core.packages/ui— shared shadcn-svelte UI components and Tailwind theme styles.packages/utils— shared utilities.packages/eslint-configandpackages/typescript-config— shared tooling config.
Install dependencies from the repository root:
pnpm installRun all dev tasks:
pnpm devRun a specific app/package:
pnpm --filter @dukat/website dev
pnpm --filter @dukat/dashboard dev
pnpm --filter @dukat/admin dev
pnpm --filter @dukat/server devCommon root commands:
pnpm build
pnpm lint
pnpm check-types
pnpm test
pnpm formatCopy .env.example to .env. Local development uses a file-backed libSQL database:
TURSO_DATABASE_URL=file:/absolute/path/to/dukat.db
TURSO_AUTH_TOKEN=Use a libsql:// URL and token only for hosted Turso environments. The browser never receives either value.
Database schema commands run through the @dukat/db package:
pnpm --filter @dukat/db db:push
pnpm --filter @dukat/db db:generate
pnpm --filter @dukat/db db:migrate
pnpm --filter @dukat/db db:studioAfter configuring .env, run:
pnpm dev:appOpen http://localhost:3001. Vite reloads dashboard changes and proxies
/api/* to the Node server on port 9999.
pnpm dev starts every app in the monorepo. Use pnpm dev:app when you only need the dashboard and
API.
Production releases use db:migrate:release.