This is a starter SvelteKit set up that includes all of the tooling and configuration that I like to use when building websites. It's very specifically tuned to my needs. If you would like to make something like it your own, fork this!
This is a work in progress. I am still developing some of the items that are listed below.
npx degit t-eckert/sveltekit-kickstart {project-name}
This will copy down the repository without the Git history.
Copy the example environment file and configure it for your needs:
cp .env.example .env
The only required environment variable is:
DATABASE_URL
: Path to your SQLite database file (e.g., file:local.db
)Initialize your database with the schema:
# Install dependencies
npm install
# Generate and run database migrations
npm run db:push
# Optional: Open Drizzle Studio to view your database
npm run db:studio
Start the development server:
npm run dev
Remove the Splash Component: The home page (/
) includes a splash component showcasing the starter kit. To build your own site:
src/routes/+page.svelte
to remove the <Splash />
componentsrc/lib/components/splash/
directoryThe application includes a complete authentication system with:
/auth/register
/auth/login
Create your first user by visiting /auth/register
and then log in at /auth/login
.
Once logged in, you can access admin features at:
/admin
- Admin dashboard/admin/users
- User management/admin/feedback
- Feedback management and analytics/admin/audit
- Audit log viewer/admin/kv
- Key-value store managementThe starter includes a complete feedback system:
/feedback
- Users can submit feedback with ratings and contact info/admin/feedback
- View, filter, and manage feedback submissionsFor production deployments:
DATABASE_URL
to your production database (e.g., Turso LibSQL URL)npm run build
npm run preview
See .env.example
for all available configuration options.
I have built several SvelteKit sites. I love the framework and I can work very quickly in it, but I found myself rewriting a lot of the same functionality with each new site. This starter kit allows me to solve all the repetitive and difficult problems once and build from there.
I've also formatted this project for AI-based development with Claude. This includes a CLAUDE.md file; tools for creating new API routes, componenents, pages, and stores; and descriptions of components to help Claude use them effectively.
Using Bits UI as a foundation, this project offers
Already configured for using Tailwind out of the box with dark:
set up for dark theming. Includes the Prettier config to consistently order Tailwind classes. Uses Class Variance Authority to manage complex variants (e.g. different button styling)
Common actions
An icon library using Phosphor Icons.
Configured unit testing with Vitest.
Many of the components in this starter kit make use of Bits UI. It is a spectacular system for developing more complex components.
The kit comes pre-configured for using Drizzle with SQLite with the Libsql
Using the Libsql edge DB, this key-value store provides a great way to s
+page.server.ts
because I often just want my page load code to run on the server anyway.