A reasonable foundation for ambitious Svelte apps.
Production-ready building blocks for authentication, workspaces, members, roles, activity logs, and more.
SvelteStack is an open-source, production-ready starter kit for building modern full-stack applications with SvelteKit and Svelte 5. It provides the essential building blocks that every real product eventually needs—not a bloated template, just solid, production-ready primitives.
SvelteStack comes with Vault, a fully-functional demo application showcasing file storage and workspace management. Use it as a starting point for your own application, extend it with new features, or study it as a learning resource.
- 🔐 Authentication - Secure email/password auth with better-auth, Argon2 password hashing, and session management
- 🗄️ Database Integration - PostgreSQL with Drizzle ORM, type-safe queries, migrations, and seeding
- 👥 Workspaces & Organizations - Create, organize, and manage workspaces with multi-tenant isolation
- 📧 Members & Invites - Email-based team invitations with member management and role-based access
- 📝 Activity Logs - Comprehensive activity tracking and monitoring
- 📨 Transactional Emails - Email verification, password resets, and workspace invites with Resend
- ☁️ File Storage - S3-compatible storage with presigned URLs and Uppy integration
- 🎨 Modern UI Kit - Pre-configured Tailwind CSS with shadcn-svelte components
- ✅ Testing Setup - Comprehensive test coverage with Vitest and Playwright
The included Vault application demonstrates:
-
File Management
- Drag-and-drop file uploads
- Direct S3 upload with presigned URLs
- Progress tracking and error handling
- File previews and metadata
- Workspace-aware file organization
-
Workspace Management
- Create and organize multiple workspaces
- Rename and manage workspace settings
- Multi-tenant workspace isolation
- Access control and permissions
-
Team Collaboration
- Invite team members via email
- Manage workspace members
- Cancel pending invitations
- Member removal capabilities
- SvelteKit - Full-stack framework with Svelte 5
- Drizzle ORM - Type-safe SQL queries
- PostgreSQL - Robust relational database
- better-auth - Modern authentication library
- Resend - Transactional email service
- Tailwind CSS - Utility-first CSS framework
- shadcn-svelte - Beautiful UI components
- Vitest - Fast unit testing framework
- Playwright - End-to-end testing
Before you begin, ensure you have the following installed:
- Bun >= 1.0 (recommended package manager)
- Node.js >= 20 (required for some tooling)
- Docker with Docker Compose (for local database)
-
Clone the repository
git clone https://github.com/vsamarth/sveltestack.git cd sveltestack -
Run the setup script
bash scripts/setup.sh
The setup script will:
- ✅ Check all prerequisites (Node.js, Bun, Docker)
- 📦 Install dependencies
- 🔐 Create
.envfile with generated secrets - 🗄️ Start the PostgreSQL database
- 🔄 Run database migrations
- 🌱 Optionally seed sample data
-
Start the development server
bun dev
-
Open your browser
Visit http://localhost:5173 to see your app.
Here are the key areas you can customize:
- Branding - Replace Vault branding with your own in
src/lib/config.ts - Database Schemas - Modify schemas in
src/lib/server/db/schema/ - UI Components - Update components in
src/lib/components/ - API Routes - Add your own routes in
src/routes/ - Email Templates - Customize emails in
src/lib/emails/
We want to ensure the foundations you build upon are always working. That's why SvelteStack ships with comprehensive integration and end-to-end tests. You can run them with:
# Run all tests
bun run test
# Run unit tests only
bun run test:unit
# Run E2E tests only
bun run test:e2e
# Run tests with coverage
bun run test:coverage
# Watch mode
bun run test:watchWe recommend deploying to Vercel for hosting and Neon for PostgreSQL. Cloudflare R2 provides free S3-compatible storage for your file uploads.
More detailed instructions on how to set everything up are coming soon.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
SvelteStack is built with amazing open-source tools:
- SvelteKit - The web framework
- shadcn-svelte - Beautiful UI components
- better-auth - Authentication library
- Drizzle ORM - Type-safe ORM
- Resend - Email service
- Uppy - File upload library
- Vitest - Testing framework
- Playwright - E2E testing
