[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3673":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":47,"readmeContent":48,"aiSummary":49,"trendingCount":16,"starSnapshotCount":16,"syncStatus":50,"lastSyncTime":51,"discoverSource":52},3673,"react-starter-kit","kriasoft\u002Freact-starter-kit","kriasoft","Modern React starter kit with Bun, TypeScript, Tailwind CSS, tRPC, Stripe, and Cloudflare Workers. Production-ready monorepo for building fast web apps.","https:\u002F\u002Freactstarter.com",null,"TypeScript",23603,4218,520,6,0,3,5,34,10,81.9,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"better-auth","boilerplate","bun","cloudflare","cloudflare-workers","drizzle-orm","gcp","hono","neon","nodejs","react","saas","shadcn-ui","starter-kit","tailwindcss","tanstack-router","template","trpc","typescript","vite","2026-06-12 04:00:19","\u003Cdiv align=\"center\">\n\n# React Starter Kit\n\n\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fgetting-started\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocs-007ec6\" height=\"20\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkriasoft\u002Freact-starter-kit?sponsor=1\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F-GitHub-%23555.svg?logo=github-sponsors\" height=\"20\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002F2nKEnKq\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F643523529131950086?label=Chat\" height=\"20\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAsk_ChatGPT-10a37f?logo=openai&logoColor=white\" height=\"20\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgemini.google.com\u002Fgem\u002F1IXFElQ2UvvZY86iL6uZLeoC-r8mp-OB-?usp=sharing\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAsk_Gemini-8E75B2?logo=googlegemini&logoColor=white\" height=\"20\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fkriasoft\u002Freact-starter-kit\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fkriasoft\u002Freact-starter-kit.svg?style=social&label=Star&maxAge=3600\" height=\"20\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fx.com\u002FReactStarter\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002FReactStarter.svg?style=social&label=Follow&maxAge=3600\" height=\"20\">\u003C\u002Fa>\n\n\u003C\u002Fdiv>\n\nA full-stack monorepo template for building SaaS applications with React 19, tRPC, and Cloudflare Workers. Type-safe from database to UI, deployable to the edge in minutes.\n\n## Highlights\n\n- **Type-safe full stack** — TypeScript, tRPC, and Drizzle ORM create a single type contract from database to UI\n- **Edge-native** — Three Cloudflare Workers (web, app, api) connected via service bindings\n- **Auth + billing included** — Better Auth with email OTP, passkey, Google OAuth, organizations, and Stripe subscriptions\n- **Modern React** — React 19, TanStack Router (file-based), TanStack Query, Jotai, Tailwind CSS v4, shadcn\u002Fui\n- **Database ready** — Drizzle ORM with Neon PostgreSQL, migrations, and seed data\n- **Fast DX** — Bun runtime, Vite, Vitest, ESLint, Prettier, and pre-configured VS Code settings\n\nReact Starter Kit is proudly supported by these amazing sponsors:\n\n\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fs\u002F1\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fs\u002F1.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fs\u002F2\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fs\u002F2.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fs\u002F3\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fs\u002F3.png\" height=\"60\" \u002F>\u003C\u002Fa>\n\n## Technology Stack\n\n| Layer         | Technologies                                                                                                                                                                                  |\n| ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| **Runtime**   | [Bun](https:\u002F\u002Fbun.sh\u002F), [Cloudflare Workers](https:\u002F\u002Fworkers.cloudflare.com\u002F), [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F) 5.9                                                              |\n| **Frontend**  | [React 19](https:\u002F\u002Freact.dev\u002F), [TanStack Router](https:\u002F\u002Ftanstack.com\u002Frouter), [Tailwind CSS v4](https:\u002F\u002Ftailwindcss.com\u002F), [shadcn\u002Fui](https:\u002F\u002Fui.shadcn.com\u002F), [Jotai](https:\u002F\u002Fjotai.org\u002F) |\n| **Marketing** | [Astro](https:\u002F\u002Fastro.build\u002F)                                                                                                                                                                 |\n| **Backend**   | [Hono](https:\u002F\u002Fhono.dev\u002F), [tRPC](https:\u002F\u002Ftrpc.io\u002F), [Better Auth](https:\u002F\u002Fwww.better-auth.com\u002F), [Stripe](https:\u002F\u002Fstripe.com\u002F)                                                               |\n| **Database**  | [Drizzle ORM](https:\u002F\u002Form.drizzle.team\u002F), [Neon PostgreSQL](https:\u002F\u002Fget.neon.com\u002FHD157BR)                                                                                                     |\n| **Tooling**   | [Vite](https:\u002F\u002Fvitejs.dev\u002F), [Vitest](https:\u002F\u002Fvitest.dev\u002F), [ESLint](https:\u002F\u002Feslint.org\u002F), [Prettier](https:\u002F\u002Fprettier.io\u002F)                                                                   |\n\n## Monorepo Architecture\n\n```\n├── apps\u002F\n│   ├── web\u002F          Astro marketing site (edge router, serves static + proxies to app\u002Fapi)\n│   ├── app\u002F          React 19 SPA (TanStack Router, Jotai, Tailwind CSS v4)\n│   ├── api\u002F          Hono + tRPC API server (Better Auth, Cloudflare Workers)\n│   └── email\u002F        React Email templates\n├── packages\u002F\n│   ├── ui\u002F           shadcn\u002Fui components (new-york style)\n│   ├── core\u002F         Shared types and utilities\n│   └── ws-protocol\u002F  WebSocket protocol with type-safe messaging\n├── db\u002F               Drizzle ORM schemas, migrations, and seed data\n├── infra\u002F            Terraform (Cloudflare Workers, DNS, Hyperdrive)\n├── docs\u002F             VitePress documentation\n└── scripts\u002F          Build automation and dev tools\n```\n\nEach app deploys independently to Cloudflare Workers. The web worker routes `\u002Fapi\u002F*` to the API worker and app routes to the app worker via service bindings.\n\n## Prerequisites\n\n- [Bun](https:\u002F\u002Fbun.sh\u002F) v1.3+ (replaces Node.js and npm)\n- [VS Code](https:\u002F\u002Fcode.visualstudio.com\u002F) with our [recommended extensions](.vscode\u002Fextensions.json)\n- [React Developer Tools](https:\u002F\u002Fchrome.google.com\u002Fwebstore\u002Fdetail\u002Freact-developer-tools\u002Ffmkadmapgofadopljbjfkapdkoienihi?hl=en) browser extension (recommended)\n- [Cloudflare account](https:\u002F\u002Fdash.cloudflare.com\u002Fsign-up) for deployment\n\n## Quick Start\n\n### 1. Create Your Project\n\n[Generate a new repository](https:\u002F\u002Fgithub.com\u002Fkriasoft\u002Freact-starter-kit\u002Fgenerate) from this template, then clone it locally:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyour-username\u002Fyour-project-name.git\ncd your-project-name\n```\n\n### 2. Install Dependencies\n\n```bash\nbun install\n```\n\n### 3. Configure Environment\n\nThis project follows [Vite env conventions](https:\u002F\u002Fvite.dev\u002Fguide\u002Fenv-and-mode#env-files):\n\n- [`.env`](.\u002F.env) is committed and contains shared defaults\u002Fplaceholders only (no real secrets)\n- `.env.local` is git-ignored and should contain your real credentials\n- `.env.local` values override `.env`\n\n```bash\ncp .env .env.local  # then replace placeholder values with real ones\n```\n\nAlso check [`wrangler.jsonc`](.\u002Fapps\u002Fapi\u002Fwrangler.jsonc) for Worker configuration and bindings.\n\n### 4. Start Development\n\n```bash\n# Launch all apps in development mode (web, api, and app)\nbun dev\n\n# Or, start specific apps individually\nbun web:dev  # Marketing site\nbun app:dev  # Main application\nbun api:dev  # API server\n```\n\n### 5. Initialize Database\n\nEnsure `DATABASE_URL` is configured in your `.env.local` file, then set up the schema:\n\n```bash\nbun db:push              # Push schema directly (quick dev setup)\nbun db:seed              # Seed with sample data (optional)\nbun db:studio            # Open database GUI\n```\n\nFor production, use `bun db:migrate` to apply migrations instead of `db:push`.\n\n| App            | URL                     |\n| -------------- | ----------------------- |\n| React app      | \u003Chttp:\u002F\u002Flocalhost:5173> |\n| Marketing site | \u003Chttp:\u002F\u002Flocalhost:4321> |\n| API server     | \u003Chttp:\u002F\u002Flocalhost:8787> |\n\n## Production Deployment\n\n### 1. Environment Setup\n\nConfigure your production secrets in Cloudflare Workers:\n\n```bash\n# Required secrets\nbun wrangler secret put BETTER_AUTH_SECRET\n\n# Stripe billing (optional — first 4 required to enable, annual is optional)\nbun wrangler secret put STRIPE_SECRET_KEY\nbun wrangler secret put STRIPE_WEBHOOK_SECRET\nbun wrangler secret put STRIPE_STARTER_PRICE_ID\nbun wrangler secret put STRIPE_PRO_PRICE_ID\nbun wrangler secret put STRIPE_PRO_ANNUAL_PRICE_ID  # optional\n\n# OAuth providers (as needed)\nbun wrangler secret put GOOGLE_CLIENT_ID\nbun wrangler secret put GOOGLE_CLIENT_SECRET\n\n# Email service\nbun wrangler secret put RESEND_API_KEY\n\n# AI features (optional)\nbun wrangler secret put OPENAI_API_KEY\n```\n\nRun these commands from the target app directory or pass `--config apps\u002F\u003Capp>\u002Fwrangler.jsonc`. Non-sensitive vars like `RESEND_EMAIL_FROM` go in `wrangler.jsonc` directly.\n\n### 2. Build and Deploy\n\n```bash\n# Build packages that require compilation (order matters!)\nbun email:build    # Build email templates first\nbun web:build      # Build marketing site\nbun app:build      # Build main React app\n\n# Deploy all applications\nbun web:deploy     # Deploy marketing site\nbun api:deploy     # Deploy API server\nbun app:deploy     # Deploy main React app\n```\n\n## Backers\n\n\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F1\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F1.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F2\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F2.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F3\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F3.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F4\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F4.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F5\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F5.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F6\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F6.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F7\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F7.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F8\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fb\u002F8.png\" height=\"60\" \u002F>\u003C\u002Fa>\n\n## Contributors\n\n\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F1\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F1.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F2\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F2.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F3\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F3.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F4\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F4.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F5\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F5.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F6\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F6.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F7\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F7.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F8\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F8.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F9\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F9.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F10\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F10.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F11\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F11.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F12\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F12.png\" height=\"60\" \u002F>\u003C\u002Fa>&nbsp;&nbsp;\u003Ca href=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F13\">\u003Cimg src=\"https:\u002F\u002Freactstarter.com\u002Fc\u002F13.png\" height=\"60\" \u002F>\u003C\u002Fa>\n\n## Need Help?\n\n**[Documentation](https:\u002F\u002Freactstarter.com\u002F)** covers auth, database, billing, deployment, and more.\n\nOur AI assistant is trained on this codebase — ask it anything on [ChatGPT](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant) or [Gemini](https:\u002F\u002Fgemini.google.com\u002Fgem\u002F1IXFElQ2UvvZY86iL6uZLeoC-r8mp-OB-?usp=sharing). Try these questions:\n\n- [How do I add a new tRPC endpoint?](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant?prompt=How%20do%20I%20add%20a%20new%20tRPC%20endpoint%3F)\n- [Help me create a database table](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant?prompt=Help%20me%20create%20a%20database%20table)\n- [How does authentication work?](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant?prompt=How%20does%20authentication%20work%3F)\n- [Explain the project structure](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant?prompt=Explain%20the%20project%20structure)\n- [How do I deploy to Cloudflare?](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant?prompt=How%20do%20I%20deploy%20to%20Cloudflare%3F)\n- [Add a new page with routing](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant?prompt=Add%20a%20new%20page%20with%20routing)\n- [How do I send emails?](https:\u002F\u002Fchatgpt.com\u002Fg\u002Fg-69564f0a23088191846aa4072bd9397d-react-starter-kit-assistant?prompt=How%20do%20I%20send%20emails%3F)\n\n## Contributing\n\nSee the [Contributing Guide](.github\u002FCONTRIBUTING.md) to get started. Check [good first issues](https:\u002F\u002Fgithub.com\u002Fkriasoft\u002Freact-starter-kit\u002Fissues?q=label:\"good+first+issue\") or join [Discord](https:\u002F\u002Fdiscord.gg\u002F2nKEnKq) for discussion.\n\n## License\n\nCopyright © 2014-present Kriasoft. This source code is licensed under the MIT license found in the\n[LICENSE](https:\u002F\u002Fgithub.com\u002Fkriasoft\u002Freact-starter-kit\u002Fblob\u002Fmain\u002FLICENSE) file.\n\n---\n\n\u003Csup>Made with ♥ by Konstantin Tarkus ([@koistya](https:\u002F\u002Ftwitter.com\u002Fkoistya), [blog](https:\u002F\u002Fmedium.com\u002F@koistya))\nand [contributors](https:\u002F\u002Fgithub.com\u002Fkriasoft\u002Freact-starter-kit\u002Fgraphs\u002Fcontributors).\u003C\u002Fsup>\n","React Starter Kit 是一个用于构建全栈 SaaS 应用程序的现代化模板，集成了 React 19、tRPC 和 Cloudflare Workers。该项目通过 TypeScript、tRPC 和 Drizzle ORM 实现了从数据库到用户界面的类型安全；利用 Cloudflare Workers 实现边缘计算能力，支持快速部署；内置了包括电子邮件 OTP、密钥、Google OAuth 在内的多种认证方式及 Stripe 订阅功能。此外，它还采用了最新的前端技术如 Tailwind CSS v4 和 shadcn\u002Fui，并且预配置了 Bun 运行时环境、Vite 构建工具等以加速开发流程。此项目非常适合需要快速搭建高性能 Web 应用场景，尤其是那些对安全性、响应速度有较高要求的企业级应用。",2,"2026-06-11 02:55:29","top_language"]