{"id":15024851,"url":"https://github.com/dotnize/tanstarter","last_synced_at":"2025-03-21T07:07:49.638Z","repository":{"id":255113025,"uuid":"846384296","full_name":"dotnize/tanstarter","owner":"dotnize","description":"minimal TanStack Start template with Better Auth, Drizzle ORM, shadcn/ui","archived":false,"fork":false,"pushed_at":"2025-03-20T11:46:07.000Z","size":220,"stargazers_count":290,"open_issues_count":0,"forks_count":19,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-03-20T12:45:04.163Z","etag":null,"topics":["auth","better-auth","boilerplate","drizzle","postgresql","react","router","saas","shadcn","shadcn-ui","start","starter","starter-kit","tailwind","tailwindcss","tanstack","tanstack-router","tanstack-start","template"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dotnize.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2024-08-23T05:08:16.000Z","updated_at":"2025-03-20T11:46:11.000Z","dependencies_parsed_at":"2024-12-17T18:11:50.602Z","dependency_job_id":"4a8a0216-7442-4ccb-8d6f-e2ef997fa258","html_url":"https://github.com/dotnize/tanstarter","commit_stats":null,"previous_names":["dotnize/tanstart"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Ftanstarter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Ftanstarter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Ftanstarter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dotnize%2Ftanstarter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dotnize","download_url":"https://codeload.github.com/dotnize/tanstarter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244752352,"owners_count":20504255,"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","better-auth","boilerplate","drizzle","postgresql","react","router","saas","shadcn","shadcn-ui","start","starter","starter-kit","tailwind","tailwindcss","tanstack","tanstack-router","tanstack-start","template"],"created_at":"2024-09-24T20:01:04.111Z","updated_at":"2025-03-21T07:07:49.621Z","avatar_url":"https://github.com/dotnize.png","language":"TypeScript","readme":"# [TanStarter](https://github.com/dotnize/tanstarter)\n\nA minimal starter template for 🏝️ TanStack Start.\n\n- [React 19](https://react.dev) + [React Compiler](https://react.dev/learn/react-compiler)\n- TanStack [Start](https://tanstack.com/start/latest) + [Router](https://tanstack.com/router/latest) + [Query](https://tanstack.com/query/latest)\n- [Tailwind CSS v4](https://tailwindcss.com/) + [shadcn/ui](https://ui.shadcn.com/)\n- [Drizzle ORM](https://orm.drizzle.team/) + PostgreSQL\n- [Better Auth](https://www.better-auth.com/)\n\n## Getting Started\n\n1. [Use this template](https://github.com/new?template_name=tanstarter\u0026template_owner=dotnize) or clone this repository.\n\n2. Install dependencies:\n\n   ```bash\n   pnpm install # npm install\n   ```\n\n3. Create a `.env` file based on [`.env.example`](./.env.example).\n\n4. Push the schema to your database with drizzle-kit:\n\n   ```bash\n   pnpm db push # npm run db push\n   ```\n\n   https://orm.drizzle.team/docs/migrations\n\n5. Run the development server:\n\n   ```bash\n   pnpm dev # npm run dev\n   ```\n\n   The development server should be now running at [http://localhost:3000](http://localhost:3000).\n\n## Issue watchlist\n\n- [React Compiler docs](https://react.dev/learn/react-compiler), [Working Group](https://github.com/reactwg/react-compiler/discussions) - React Compiler is still in beta. You can disable it in [app.config.ts](./app.config.ts#L15) if you prefer.\n- https://github.com/TanStack/router/discussions/2863 - TanStack Start is currently in beta and may still undergo major changes.\n- https://github.com/shadcn-ui/ui/discussions/6714 - We're using the `canary` version of shadcn/ui for Tailwind v4 support.\n\n## Auth\n\nBetter Auth is currently configured for OAuth with GitHub, Google, and Discord, but can be easily modified to use other providers.\n\nIf you want to use email/password authentication or change providers, update the [auth config](./src/lib/server/auth.ts#L36) and [signin page](./src/routes/signin.tsx) with your own UI. You can use [shadcn/ui login blocks](https://ui.shadcn.com/blocks/login) or [@daveyplate/better-auth-ui](https://better-auth-ui.com/) as a starting point.\n\n## Goodies\n\n#### Scripts\n\nThese scripts in [package.json](./package.json#L5) use **pnpm** by default, but you can modify them to use your preferred package manager.\n\n- **`auth:generate`** - Regenerate the [auth db schema](./src/lib/server/schema/auth.schema.ts) if you've made changes to your Better Auth [config](./src/lib/server/auth.ts).\n- **`db`** - Run drizzle-kit commands. (e.g. `pnpm db generate` to generate a migration)\n- **`ui`** - The shadcn/ui CLI. (e.g. `pnpm ui add button` to add the button component)\n- **`format`** and **`lint`** - Run Prettier and ESLint.\n\n#### Utilities\n\n- [`auth-guard.ts`](./src/lib/middleware/auth-guard.ts) - Sample middleware for forcing authentication on server functions. ([see #5](https://github.com/dotnize/tanstarter/issues/5))\n- [`ThemeToggle.tsx`](./src/lib/components/ThemeToggle.tsx) - A simple component to toggle between light and dark mode. ([#7](https://github.com/dotnize/tanstarter/issues/7))\n\n## Building for production\n\nRead the [hosting docs](https://tanstack.com/start/latest/docs/framework/react/hosting) for information on how to deploy your TanStack Start app.\n\n## Acknowledgements\n\n- [nekochan0122/tanstack-boilerplate](https://github.com/nekochan0122/tanstack-boilerplate) - A batteries-included TanStack Start boilerplate that inspired some patterns in this template. If you're looking for a more feature-rich starter, check it out!\n- [AlexGaudon/tanstarter-better-auth](https://github.com/AlexGaudon/tanstarter-better-auth) for his own better-auth implementation.\n","funding_links":[],"categories":["TypeScript","Boilerplates","Boilerplates \u0026 Starters"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnize%2Ftanstarter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdotnize%2Ftanstarter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdotnize%2Ftanstarter/lists"}