This is the source code for my personal website, danielsalvado.com.
- Framework: Svelte 5 (SvelteKit)
- Styling: Tailwind CSS 4
- Runtime & Tooling: Vite, TypeScript
- Deployment: Cloudflare Pages
- Code Quality: ESLint, Prettier, svelte-check
- Testing: Vitest, Testing Library
- Git Hooks: lefthook, commitlint
src/routes/: The pages and routing logic of the website.src/lib/: Reusable components, constants, and utility functions.static/: Static assets such as images and fonts.wrangler.toml: Cloudflare Pages configuration.
This project uses pnpm as the package manager.
- Node.js — see
.nvmrc(currently 22.18.0) - pnpm — see
packageManagerinpackage.json(currently 11.17.0)
| Command | Description |
|---|---|
pnpm dev |
Start the dev server |
pnpm build |
Production build |
pnpm preview |
Preview the production build |
pnpm lint |
Check formatting and lint with ESLint |
pnpm format |
Auto-format with Prettier |
pnpm format:check |
Check formatting without writing |
pnpm typecheck |
Type-check with tsc --noEmit |
pnpm check |
Type-check .svelte files with svelte-check |
pnpm test |
Run unit tests once |
pnpm test:watch |
Run unit tests in watch mode |
Git hooks (lefthook) run lint/format on staged files before each commit, and commitlint validates commit messages against Conventional Commits. Run pnpm run prepare once after cloning to install them.