{"id":14991401,"url":"https://github.com/austinm911/tanstack-monorepo","last_synced_at":"2025-04-12T03:42:07.059Z","repository":{"id":254509356,"uuid":"846394260","full_name":"austinm911/tanstack-monorepo","owner":"austinm911","description":"Monorepo Template (WIP) using Turborepo, SST, Tanstack Router, Bun, Drizzle ORM","archived":false,"fork":false,"pushed_at":"2024-11-22T18:31:49.000Z","size":1471,"stargazers_count":9,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-25T23:22:12.598Z","etag":null,"topics":["astro","aws","biomejs","bun","cloudflare","drizzle-orm","hono","sst","tanstack-router","turborepo"],"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/austinm911.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:43:11.000Z","updated_at":"2025-03-23T17:11:24.000Z","dependencies_parsed_at":"2024-08-28T04:41:53.679Z","dependency_job_id":"92766384-b590-45d7-97e4-089f79c0542c","html_url":"https://github.com/austinm911/tanstack-monorepo","commit_stats":{"total_commits":60,"total_committers":2,"mean_commits":30.0,"dds":"0.050000000000000044","last_synced_commit":"8a0846c6fa64a447dc099b57bdb8c109f6001751"},"previous_names":["austinm911/tanstack-monorepo"],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinm911%2Ftanstack-monorepo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinm911%2Ftanstack-monorepo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinm911%2Ftanstack-monorepo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/austinm911%2Ftanstack-monorepo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/austinm911","download_url":"https://codeload.github.com/austinm911/tanstack-monorepo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248514221,"owners_count":21116899,"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":["astro","aws","biomejs","bun","cloudflare","drizzle-orm","hono","sst","tanstack-router","turborepo"],"created_at":"2024-09-24T14:27:43.255Z","updated_at":"2025-04-12T03:42:07.038Z","avatar_url":"https://github.com/austinm911.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Turborepo Monorepo (Tanstack/Hono/SST/Drizzle)\n\n## Goals\n\n- Simplicity over complexity\n- Modularity\n- Taking a bet on the best \"rising\" libraries offering the best developer experience\n\n## Known Issues\n\nSee [TODO.md](./TODO.md) for more details\n\n## Using this example\n\nAdd Environment Variables:\nCopy the `.env.example` file to `.env` and add your environment variables.\n\n```sh\nCLOUDFLARE_ACCOUNT_ID=\u003cyour-cloudflare-account-id\u003e\n```\n\nAdd new packages to the repo with Turborepo:\n\n```sh\nbun turbo gen workspace\n# alternatively: `bun turbo gen workspace --type \u003capp/package\u003e` to specify the type of package to create\n```\n\nUpdate dependencies across the monorepo:\n\n```sh\nbunx taze -I -r\n# or\nbunx taze --interactive --recursive\nbunx taze --include lodash,webpack # filter by package name\n```\n\n## What's inside?\n\nThis Turborepo includes the following packages and apps:\n\n **Apps**\n\n- **api**: A [Hono](https://hono.dev/) server compatible with Cloudflare Workers\n- **astro**: A [Astro](https://astro.build/) for content-driven websites\n- **spa**: A [Tanstack Router](https://tanstack.com/router) SPA\n\n**Packages**\n\n- **ui**: React UI library initialized with Shadcn common components, tsconfig, and globals.css, which are exported to the spa app\n- **typescript-config**: tsconfig.json's used throughout the monorepo\n- **core**: Core package for business logic\n- **db**: Database package for [Drizzle ORM](https://drizzle.dev/)\n\nEach package and app is 100% [TypeScript](https://www.typescriptlang.org/).\n\n### Utilities\n\nThis Turborepo has some additional tools already setup for you:\n\n- [SST](https://sst.dev/) for Infrastructure as Code\n- [Bun](https://bun.sh/) for package management, monorepo workspace, test runner\n- [Biome](https://biomejs.dev/) for formatting \u0026 linting\n- [TypeScript](https://www.typescriptlang.org/) for static type checking\n- [taze](https://github.com/antfu-collective/taze) for updating dependencies across the monorepo\n\n#### Other Utilities to Consider\n\n- [Knip](https://github.com/webpro/knip) - Find unused code\n- [date-fns](https://date-fns.org/) - Date utilities\n- [mattpocock/ts-reset: A 'CSS reset' for TypeScript, improving types for common JavaScript API's](https://github.com/mattpocock/ts-reset)\n- [ts-essentials/ts-essentials: All essential TypeScript types in one place 🤙](https://github.com/ts-essentials/ts-essentials)\n- Auth\n  - WorkOS\n  - Clerk\n  - Supabase\n- Email\n  - [Resend](https://resend.com/) - Transaction \u0026 Marketing Emails\n\n## Syncing Github Template\n\nRefer to [AndreasAugustin/actions-template-sync](https://github.com/AndreasAugustin/actions-template-sync) for a github action to sync the template. This repo uses the [.github/workflows/template-sync.yml](./.github/workflows/template-sync.yml) file to sync the template, which you can manually trigger the action from the Actions tab in Github. You can configure this to automatically sync with a cron schedule if you'd like.\n\n## Resources\n\n- Example Monorepos\n\n- [vercel/turborepo/examples/kitchen-sink](https://github.com/vercel/turborepo/tree/ca29f0fa75ad2cf4c9640e8ffdef406e63961472/examples/kitchen-sink)\n- best monorepo with turbo [midday-ai/midday](https://github.com/midday-ai/midday) - a monorepo for my personal website and projects, built with Turborepo + pnpm 📚\n  - [mattpocock/total-typescript-monorepo](https://github.com/mattpocock/total-typescript-monorepo) / [total-typescript-monorepo-template](https://github.com/mattpocock/total-typescript-monorepo-template)\n  - [byCedric/expo-monorepo-example](https://github.com/byCedric/expo-monorepo-example) Expo + Web\n  - [saasfly/saasfly](https://github.com/saasfly/saasfly) - Next.JS template\n  - [enjidev/enji.dev](https://github.com/enjidev/enji.dev) - a monorepo for my personal website and projects, built with Turborepo + pnpm 📚\n  - Misc\n    - [hamlim/template-monorepo](https://github.com/hamlim/template-monorepo) - A quick and simple monorepo starter template (Bun, Next.js, Turbo) / Biome\n    - [breezemm/breeze-web](https://github.com/breezemm/breeze-web) - Monorepo for Breeze Web - init with Shadcn in UI package, consumed elsewhere\n    - [dangvanthanh/nuxt-turborepo-boilerplate](https://github.com/dangvanthanh/nuxt-turborepo-boilerplate) - review biome config\n  - SST\n    - [sst/ion/tree/dev/examples/aws-monorepo](https://github.com/sst/ion/tree/dev/examples/aws-monorepo)\n    - [sayandedotcom/refhired.com](https://github.com/sayandedotcom/refhired.com) - SST + Turborepo\n    - [marcotheo/qwik-sst-deployments](https://github.com/marcotheo/qwik-sst-deployments) - see example of SST + Cloudflare Pages deployment with Pulumi\n  - Pulumi\n    - [martypenner/surface-2-air-site](https://github.com/martypenner/surface-2-air-site) - example of Pulumi usage\n    - [ginetta/ginetta-tonic-festival](https://github.com/ginetta/ginetta-tonic-festival/blob/bcbefd4b3acf6df100b687295f73fc469b984e55/infrastructure/package.json) - see Pulumi usage\n\n- Turborepo Generators\n  - [turbo-generator](https://github.com/eXodes/turbo-generator) - example generators for a Next.JS app\n  - [turborepo-template](https://github.com/dhoniaridho/turborepo-template/tree/main/turbo/generators) - example templates with various app packages\n\n- tsup\n  - [treeshaking-with-tsup](https://dorshinar.me/posts/treeshaking-with-tsup)\n\n### Syncing Github Template Notes\n\n- [GitHub templates and repository sync | 0xDC.me](https://0xdc.me/blog/github-templates-and-repository-sync/)\n- [actions-template-sync](https://github.com/AndreasAugustin/actions-template-sync) - seems most used\n- [template-sync](https://github.com/template-tools/template-sync)\n- [coopTilleuls/template-sync](https://github.com/coopTilleuls/template-sync)\n\n## Notes\n\n- Package.json settings\n  - Refer to [Live Types in a TypeScript Monorepo](https://colinhacks.com/essays/live-types-typescript-monorepo?q=1) and [treeshaking-with-tsup](https://dorshinar.me/posts/treeshaking-with-tsup) - either use `exports` to export the `index.tsx/ts` file or use baseUrl/paths in base tsconfig.json to point to the `index.tsx/ts` file\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinm911%2Ftanstack-monorepo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faustinm911%2Ftanstack-monorepo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faustinm911%2Ftanstack-monorepo/lists"}