2.7 KiB
2.7 KiB
Phase 1: Project Scaffolding & Tooling
Status: ⬜ Not Started Parent plan: PLAN.md Domain: backend
Objective
Initialize the SvelteKit project with the full toolchain: TypeScript strict, Svelte 5, Tailwind CSS v4, shadcn-svelte, Prisma + SQLite, Vitest, ESLint, Prettier. Create the Docker and CI configuration.
Tasks
- Task 1: Initialize SvelteKit project with TypeScript, Svelte 5 adapter-node
- Task 2: Install and configure Tailwind CSS v4
- Task 3: Install and configure shadcn-svelte (Bits UI primitives)
- Task 4: Install Prisma, configure SQLite provider, create initial empty schema
- Task 5: Install Vitest and configure for SvelteKit
- Task 6: Configure ESLint + Prettier for Svelte/TS
- Task 7: Install runtime dependencies: lucide-svelte, simple-icons, superforms, zod, bcrypt, jsonwebtoken, node-cron, openid-client
- Task 8: Create
.env.examplewith all required env vars - Task 9: Create
Dockerfile(multi-stage build) - Task 10: Create
docker-compose.yml - Task 11: Create
.gitea/workflows/ci.yml(lint, type-check, test, Docker build) - Task 12: Create
app.csswith Tailwind base + CSS custom properties for theming - Task 13: Create
app.d.tswith SvelteKit type augmentation (Locals, Session)
Files to Modify/Create
package.json— project config with all dependencies and scriptssvelte.config.js— SvelteKit config with adapter-nodevite.config.ts— Vite config with Vitesttsconfig.json— TypeScript strict configtailwind.config.ts— Tailwind v4 configsrc/app.css— Tailwind imports + theme variablessrc/app.d.ts— SvelteKit type augmentationsrc/app.html— HTML templateprisma/schema.prisma— empty schema with SQLite datasource.env.example— template env varsDockerfile— multi-stage Node builddocker-compose.yml— single-service deployment.gitea/workflows/ci.yml— CI pipelineeslint.config.js— ESLint flat config.prettierrc— Prettier config
Acceptance Criteria
npm installsucceeds- Project structure matches SvelteKit conventions
- All config files are valid
- Dockerfile builds (structure-wise, not the app itself yet)
Notes
- Use
@sveltejs/adapter-nodefor Docker deployment - Svelte 5 runes mode is the default in latest SvelteKit — no special config needed
- Tailwind v4 uses the new CSS-based config approach
- ⚠️ Big Bang: build will not pass yet — no routes or components exist
Review Checklist
- All tasks completed
- Code follows project conventions
- No unintended side effects
- Build passes
- Tests pass (new + existing)