Personal website and blog monorepo powered by SvelteKit.
This project is organized as a monorepo using pnpm workspaces:
apps/web
: Main SvelteKit applicationcore
: Core services and utilitiesdomain
: Domain-specific business logiclibs
: Reusable librariestools
: Development and build toolsui
: UI components and theme
- Node.js (LTS recommended)
- pnpm
pnpm@10.6.1
# Install dependencies
pnpm install
Create a .env
file in the root directory. Check .env.example
for expected variables.
Run the environment setup tool to create symlinks:
pnpm symlink-env
This will create symlinks to the root .env
file in all required project directories.
# Start development server
pnpm dev
# Lint code
pnpm lint
# Run tests
pnpm test
The project uses Neon (serverless Postgres) with Drizzle ORM. Make sure you have the database URL set in your .env
file:
DATABASE_URL=postgresql://username:password@your-neon-db-url/dbname
Available commands:
# Push schema changes to the database
pnpm db:push
# Open Drizzle Studio to manage data
pnpm db:studio
# Build for production
pnpm build