{"id":14155173,"url":"https://github.com/joysofcode/enterprise-stack","last_synced_at":"2025-08-06T01:30:40.480Z","repository":{"id":127479196,"uuid":"610463287","full_name":"joysofcode/enterprise-stack","owner":"joysofcode","description":"🔥 The SvelteKit enterprise stack","archived":false,"fork":false,"pushed_at":"2023-10-24T08:56:35.000Z","size":167,"stargazers_count":373,"open_issues_count":0,"forks_count":30,"subscribers_count":13,"default_branch":"main","last_synced_at":"2024-05-05T17:34:02.008Z","etag":null,"topics":["auth","database","lucia","prisma","skeleton","stripe","sveltekit","tailwindcss","template","typescript"],"latest_commit_sha":null,"homepage":"","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/joysofcode.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}},"created_at":"2023-03-06T20:31:14.000Z","updated_at":"2024-05-02T22:02:06.000Z","dependencies_parsed_at":"2023-05-19T23:15:17.847Z","dependency_job_id":"b570ecee-3224-4e12-87c8-bc84fc16980f","html_url":"https://github.com/joysofcode/enterprise-stack","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joysofcode%2Fenterprise-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joysofcode%2Fenterprise-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joysofcode%2Fenterprise-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joysofcode%2Fenterprise-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joysofcode","download_url":"https://codeload.github.com/joysofcode/enterprise-stack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":215735785,"owners_count":15923388,"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","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":["auth","database","lucia","prisma","skeleton","stripe","sveltekit","tailwindcss","template","typescript"],"created_at":"2024-08-17T08:02:20.399Z","updated_at":"2024-08-17T08:04:46.629Z","avatar_url":"https://github.com/joysofcode.png","language":"TypeScript","funding_links":[],"categories":["typescript"],"sub_categories":[],"readme":"# The SvelteKit Enterprise Stack\n\nTime is money and setting up a project can be time consuming when you could be working on the business logic instead.\n\n![SvelteKit Enterprise Stack](https://user-images.githubusercontent.com/38083522/226189777-4ecda836-5d1f-4819-ba11-2d2fe09d1838.png)\n\n## The Stack\n\nEvery part of the **SvelteKit Enterprise Stack** is optimized to go blazingly fast to please stakeholders and uses:\n\n- [Prisma](https://www.prisma.io/) for the database\n- [Lucia](https://lucia-auth.com/) for authentication\n- [Tailwind](https://tailwindcss.com/) for styling with automatic class sorting and [Skeleton UI](https://www.skeleton.dev/) for the UI components\n- [Stripe](https://stripe.com/) for payments\n- [sveltekit-superforms](https://github.com/ciscoheat/sveltekit-superforms) make working with forms easy\n- [Lucide](https://lucide.dev/) for beautiful and consistent icons\n- [TypeScript](https://www.typescriptlang.org/), [Prettier](https://prettier.io/), [ESLint](https://eslint.org/), [Playwright](https://playwright.dev/) and [Vitest](https://vitest.dev/) for testing configured\n\n## Customization\n\nEvery part of the stack is modular and easy to replace.\n\nYou can **configure** anything you want from your database to authentication if you read their respective **documentation** — for example Prisma is configured with [SQLite](https://www.sqlite.org/index.html) because it requires no setup but it's trivial to [change the database connector](https://www.prisma.io/docs/concepts/database-connectors) to use **PostgreSQL**, **MySQL**, **MongoDB**, **CockroachDB** or **Microsoft SQL Server** without having to change the Prisma schema.\n\n## Payments\n\nStripe payment is set up to give you a starting point how to do Stripe payments with SvelteKit but easy to remove if you don't need payments.\n\n- You're going to need to create a Stripe account\n- Get the API keys from the [Stripe dashboard](https://dashboard.stripe.com/login)\n- Place the API keys inside your `.env` file for local development or the dashboard of your host\n- Create the product inside the [Stripe dashboard](https://dashboard.stripe.com/test/dashboard/products) and get the `productId`\n- You can [add a webhook endpoint](https://dashboard.stripe.com/test/webhooks) that points to `stripe/webhook` where you can add logic to respond to events like checkouts or if an invoice has been paid to continue or revoke access to your product\n\nYou can find a Stripe subscription example at `/pricing` but you're going to need to [understand how to work with the Stripe API](https://stripe.com/docs) to change it to what you want and update your Prisma schema to give users access based on what they purchased.\n\n![Pricing](https://user-images.githubusercontent.com/38083522/226190147-44cdd3b5-17ab-4ad0-972a-1f8f57dc74c1.png)\n\nThere's so many things you can do with the Stripe API like using their client library to get a dynamic pricing table if you want but I wanted to keep things simple.\n\nYou might want something more custom like [Stripe elements](https://stripe.com/payments/elements) in which case you can look at the [svelte-stripe](https://www.sveltestripe.com/) package that has a simple integration with instructions and examples.\n\nIf you want something simpler let Stripe handle everything and [create a payment link](https://stripe.com/en-hr/payments/payment-links) for the product you create and just use that link.\n\n## Get Started\n\n### Using GitHub Templates\n\nYou can start a new project by pressing \"Use this template\" at the top which copies the project with a clean history.\n\n![Template](https://user-images.githubusercontent.com/38083522/226207439-1195c8c4-e3e2-4db0-8f39-7277b08872be.png)\n\n### Using Degit\n\nYou can use `degit` to download the project if you don't want to create a new repository, or if you're not using GitHub which also gives you a clean slate to start from.\n\n```\npnpx degit joysofcode/enterprise-stack\n```\n\n## Setup\n\nYou can use any package manager of your choice but I recommend you use [pnpm](https://pnpm.io/) because it's fast and doesn't destroy your hard disk because it symlinks packages.\n\n### 📦️ Install the project dependencies\n\n```bash\npnpm i\n```\n\n### ⚙️ Rename `.env.example` to `.env` and set your environment variables\n\nIf you're using a host like Vercel you have to enter the environment variables in their dashboard.\n\n```shell\n# Prisma\nDATABASE_URL=\"file:./dev.db\"\n\n# Stripe\nPUBLIC_STRIPE_KEY=\"pk_test_1234\"\nSECRET_STRIPE_KEY=\"sk_test_1234\"\nSTRIPE_WEBHOOK_SECRET=\"we_1234\"\n```\n\n### 📜 Create the database and generate the Prisma client from your Prisma schema\n\n```bash\npnpx prisma db push\n```\n\nUsing `db push` is great for prototyping but you might want to use [Prisma migrate](https://www.prisma.io/docs/concepts/components/prisma-migrate) for production.\n\nYou can change the database schema inside `prisma/schema.prisma` and run `pnpx prisma studio` to look at your database.\n\n### 💿️ Run the development server\n\n```bash\npnpm run dev\n```\n\n### ⛵️ Deploying\n\nYou can use any SvelteKit adapter that deploys to a target that supports a [Node.js](https://nodejs.org/) runtime.\n\nIf you don't have a full-stack hosting solution you can provision a serverless PostgreSQL database provider using [Railway](https://railway.app/) or [Supabase](https://supabase.com/) and host your frontend on [Vercel](https://vercel.com/) starting at no cost.\n\n```bash\npnpm run build\n```\n\nYou can also preview the build.\n\n```bash\npnpm run preview\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoysofcode%2Fenterprise-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoysofcode%2Fenterprise-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoysofcode%2Fenterprise-stack/lists"}