@tailwindcss/vite)@sveltejs/adapter-node (Node.js deployments)# Start dev server (port 3000, with hot reload)
npm run dev
# or with browser auto-open:
npm run dev -- --open
# Production build (generates .svelte-kit, /build, and optimized JS/CSS)
npm run build
# Preview production build locally (runs on port 3000 by default)
npm run preview
# Sync SvelteKit config (auto-runs on `npm install`)
npm run prepare
This is a fresh project with no test suite or linter configured. Do not assume these exist.
src/
├── app.html # HTML shell (dark mode preset, typo: "lass" not "class")
├── routes/
│ ├── +layout.svelte # Root layout component
│ ├── +page.svelte # Home page (uses Flowbite Alert)
│ └── layout.css # Route-level styles
└── lib/
├── index.js # $lib alias exports (currently empty)
└── assets/ # Static assets
.svelte-kit/ — SvelteKit type hints & config cache/build/ — Production output (Node.js adapter)vite.config.js.timestamp-* — Vite cachevite.config.js)npm run preview)All code must use Svelte 5 runes by default. The Vite config enforces this for all files except those in node_modules:
runes: ({ filename }) =>
filename.split(/[/\\]/).includes('node_modules') ? undefined : true
Effect on Component Writing:
$state() instead of let for reactive variables$derived for computed values$effect() for side effects (replaces onMount, afterUpdate){#snippet name()} syntax (shown in +page.svelte)Action: Any new .svelte files must use runes. Violating this breaks dev/build.
@tailwindcss/vite plugin (not postcss)@tailwindcss/forms, @tailwindcss/typographyapp.html (class="dark" on <html>)tailwind.config.js (handled entirely via Vite plugin)@sveltejs/adapter-node for Node.js deployments/build/$env module for runtime env varsde93a8a)Note: This is a fresh project. No established commit conventions yet.
HTML Typo: app.html line 9 has lass="bg-white dark:bg-gray-700" (missing c in class)
class="bg-white dark:bg-gray-700"No CI/CD: No .github/workflows/ or other CI pipeline configured
No Tests: No test framework or test scripts in package.json
Minimal jsconfig: Inherits TypeScript config from .svelte-kit/tsconfig.json but doesn't enforce type checking (checkJs: false)
flowbite-svelte{#snippet} blocks (Svelte 5 pattern)<style> blocks for scoped styles)dark: prefix (already enabled on root)+page.svelte (and optionally +page.js, +layout.svelte) in src/routes/[path]/+page.server.js (not configured; would need adapter setup).env file (gitignored)import { env } from '$env/dynamic/public' or $env/static/publicVITE_ for client access--profile if neededLast Updated: Initial creation for fresh SvelteKit project