{"id":34502646,"url":"https://github.com/vsamarth/sveltestack","last_synced_at":"2025-12-24T02:11:27.700Z","repository":{"id":327345302,"uuid":"1101639094","full_name":"vsamarth/sveltestack","owner":"vsamarth","description":"A reasonable foundation for ambitious Svelte apps.","archived":false,"fork":false,"pushed_at":"2025-12-05T22:38:14.000Z","size":1525,"stargazers_count":74,"open_issues_count":1,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-12-06T05:59:27.083Z","etag":null,"topics":["svelte","web"],"latest_commit_sha":null,"homepage":"https://sveltestack-one.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vsamarth.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-22T01:15:09.000Z","updated_at":"2025-12-06T03:21:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/vsamarth/sveltestack","commit_stats":null,"previous_names":["vsamarth/sveltestack"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/vsamarth/sveltestack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsamarth%2Fsveltestack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsamarth%2Fsveltestack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsamarth%2Fsveltestack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsamarth%2Fsveltestack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vsamarth","download_url":"https://codeload.github.com/vsamarth/sveltestack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vsamarth%2Fsveltestack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27992997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-24T02:00:07.193Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["svelte","web"],"created_at":"2025-12-24T02:11:27.073Z","updated_at":"2025-12-24T02:11:27.695Z","avatar_url":"https://github.com/vsamarth.png","language":"TypeScript","readme":"# SvelteStack\n\n\u003cdiv align=\"center\"\u003e\n\n[![Build and Test](https://github.com/vsamarth/sveltestack/actions/workflows/ci.yml/badge.svg)](https://github.com/vsamarth/sveltestack/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/vsamarth/sveltestack/branch/main/graph/badge.svg)](https://codecov.io/gh/vsamarth/sveltestack)\n\n**A reasonable foundation for ambitious Svelte apps.**\n\nProduction-ready building blocks for authentication, workspaces, members, roles, activity logs, and more.\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"demo/homepage.png\" alt=\"SvelteStack Preview\" width=\"100%\"\u003e\n\u003c/div\u003e\n\n---\n\n## ✨ Overview\n\nSvelteStack 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.\n\n### What's Included\n\nSvelteStack 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.\n\n## 🚀 Features\n\n### Core Building Blocks\n\n- 🔐 **Authentication** - Secure email/password auth with [better-auth](https://www.better-auth.com/), Argon2 password hashing, and session management\n- 🗄️ **Database Integration** - PostgreSQL with [Drizzle ORM](https://orm.drizzle.team/), type-safe queries, migrations, and seeding\n- 👥 **Workspaces \u0026 Organizations** - Create, organize, and manage workspaces with multi-tenant isolation\n- 📧 **Members \u0026 Invites** - Email-based team invitations with member management and role-based access\n- 📝 **Activity Logs** - Comprehensive activity tracking and monitoring\n- 📨 **Transactional Emails** - Email verification, password resets, and workspace invites with [Resend](https://resend.com/)\n- ☁️ **File Storage** - S3-compatible storage with presigned URLs and [Uppy](https://uppy.io/) integration\n- 🎨 **Modern UI Kit** - Pre-configured [Tailwind CSS](https://tailwindcss.com/) with [shadcn-svelte](https://www.shadcn-svelte.com/) components\n- ✅ **Testing Setup** - Comprehensive test coverage with [Vitest](https://vitest.dev/) and [Playwright](https://playwright.dev/)\n\n### Vault Demo Features\n\nThe included **Vault** application demonstrates:\n\n- **File Management**\n  - Drag-and-drop file uploads\n  - Direct S3 upload with presigned URLs\n  - Progress tracking and error handling\n  - File previews and metadata\n  - Workspace-aware file organization\n\n- **Workspace Management**\n  - Create and organize multiple workspaces\n  - Rename and manage workspace settings\n  - Multi-tenant workspace isolation\n  - Access control and permissions\n\n- **Team Collaboration**\n  - Invite team members via email\n  - Manage workspace members\n  - Cancel pending invitations\n  - Member removal capabilities\n\n## 🛠️ Tech Stack\n\n- **[SvelteKit](https://kit.svelte.dev/)** - Full-stack framework with Svelte 5\n- **[Drizzle ORM](https://orm.drizzle.team/)** - Type-safe SQL queries\n- **[PostgreSQL](https://www.postgresql.org/)** - Robust relational database\n- **[better-auth](https://www.better-auth.com/)** - Modern authentication library\n- **[Resend](https://resend.com/)** - Transactional email service\n- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first CSS framework\n- **[shadcn-svelte](https://www.shadcn-svelte.com/)** - Beautiful UI components\n- **[Vitest](https://vitest.dev/)** - Fast unit testing framework\n- **[Playwright](https://playwright.dev/)** - End-to-end testing\n\n## 📋 Prerequisites\n\nBefore you begin, ensure you have the following installed:\n\n- **[Bun](https://bun.sh/)** \u003e= 1.0 (recommended package manager)\n- **Node.js** \u003e= 20 (required for some tooling)\n- **[Docker](https://www.docker.com/)** with Docker Compose (for local database)\n\n## 🏁 Getting Started\n\n### Quick Start\n\n1. **Clone the repository**\n\n   ```bash\n   git clone https://github.com/vsamarth/sveltestack.git\n   cd sveltestack\n   ```\n\n2. **Run the setup script**\n\n   ```bash\n   bash scripts/setup.sh\n   ```\n\n   The setup script will:\n   - ✅ Check all prerequisites (Node.js, Bun, Docker)\n   - 📦 Install dependencies\n   - 🔐 Create `.env` file with generated secrets\n   - 🗄️ Start the PostgreSQL database\n   - 🔄 Run database migrations\n   - 🌱 Optionally seed sample data\n\n3. **Start the development server**\n\n   ```bash\n   bun dev\n   ```\n\n4. **Open your browser**\n\n   Visit [http://localhost:5173](http://localhost:5173) to see your app.\n\n## 🏗️ Building Your Own App\n\nHere are the key areas you can customize:\n\n- **Branding** - Replace Vault branding with your own in `src/lib/config.ts`\n- **Database Schemas** - Modify schemas in `src/lib/server/db/schema/`\n- **UI Components** - Update components in `src/lib/components/`\n- **API Routes** - Add your own routes in `src/routes/`\n- **Email Templates** - Customize emails in `src/lib/emails/`\n\n## 🧪 Testing\n\nWe 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:\n\n```bash\n# Run all tests\nbun run test\n\n# Run unit tests only\nbun run test:unit\n\n# Run E2E tests only\nbun run test:e2e\n\n# Run tests with coverage\nbun run test:coverage\n\n# Watch mode\nbun run test:watch\n```\n\n## Deployment\n\nWe recommend deploying to [Vercel](https://vercel.com/) for hosting and [Neon](https://neon.tech/) for PostgreSQL. [Cloudflare R2](https://www.cloudflare.com/products/r2/) provides free S3-compatible storage for your file uploads.\n\nMore detailed instructions on how to set everything up are coming soon.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Commit your changes (`git commit -m 'Add some amazing feature'`)\n4. Push to the branch (`git push origin feature/amazing-feature`)\n5. Open a Pull Request\n\n## 📄 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## 🙏 Acknowledgments\n\nSvelteStack is built with amazing open-source tools:\n\n- [SvelteKit](https://kit.svelte.dev/) - The web framework\n- [shadcn-svelte](https://www.shadcn-svelte.com/) - Beautiful UI components\n- [better-auth](https://www.better-auth.com/) - Authentication library\n- [Drizzle ORM](https://orm.drizzle.team/) - Type-safe ORM\n- [Resend](https://resend.com/) - Email service\n- [Uppy](https://uppy.io/) - File upload library\n- [Vitest](https://vitest.dev/) - Testing framework\n- [Playwright](https://playwright.dev/) - E2E testing\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsamarth%2Fsveltestack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvsamarth%2Fsveltestack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvsamarth%2Fsveltestack/lists"}