{"id":28401277,"url":"https://github.com/michaelshimeles/react-starter-kit","last_synced_at":"2026-05-04T21:31:30.760Z","repository":{"id":296505574,"uuid":"992960646","full_name":"michaelshimeles/react-starter-kit","owner":"michaelshimeles","description":"React Starter Kit built using React Router v7, Clerk, Convex \u0026 Polar","archived":false,"fork":false,"pushed_at":"2025-12-10T20:03:43.000Z","size":1920,"stargazers_count":614,"open_issues_count":9,"forks_count":187,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-01-27T05:10:53.260Z","etag":null,"topics":["convex","polar","react","reactrouterv7","rsc"],"latest_commit_sha":null,"homepage":"https://www.reactstarter.xyz/","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/michaelshimeles.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-05-30T01:38:58.000Z","updated_at":"2026-01-25T17:36:27.000Z","dependencies_parsed_at":"2025-06-01T09:45:16.059Z","dependency_job_id":null,"html_url":"https://github.com/michaelshimeles/react-starter-kit","commit_stats":null,"previous_names":["michaelshimeles/react-convex-starter","michaelshimeles/react-starter-kit"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/michaelshimeles/react-starter-kit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelshimeles%2Freact-starter-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelshimeles%2Freact-starter-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelshimeles%2Freact-starter-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelshimeles%2Freact-starter-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelshimeles","download_url":"https://codeload.github.com/michaelshimeles/react-starter-kit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelshimeles%2Freact-starter-kit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32625913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["convex","polar","react","reactrouterv7","rsc"],"created_at":"2025-06-01T12:00:25.953Z","updated_at":"2026-05-04T21:31:30.735Z","avatar_url":"https://github.com/michaelshimeles.png","language":"TypeScript","funding_links":[],"categories":["Templates"],"sub_categories":[],"readme":"# React Starter Kit (RSK)\n\nA modern, production-ready SaaS starter template for building full-stack React applications using React Router v7, Convex, Clerk, and Polar.sh. Ready for Vercel deployment with built-in AI chat capabilities.\n\n## Features\n\n- 🚀 **React Router v7** - Modern full-stack React framework with SSR\n- ⚡️ **Hot Module Replacement (HMR)** - Fast development experience\n- 📦 **Asset bundling and optimization** - Production-ready builds\n- 🔄 **Data loading and mutations** - Built-in loader/action patterns\n- 🔒 **TypeScript by default** - Type safety throughout\n- 🎨 **TailwindCSS v4** - Modern utility-first CSS\n- 🔐 **Authentication with Clerk** - Complete user management\n- 💳 **Subscription management with Polar.sh** - Billing and payments\n- 🗄️ **Real-time database with Convex** - Serverless backend\n- 🤖 **AI Chat Integration** - OpenAI-powered chat functionality\n- 📊 **Interactive Dashboard** - User management and analytics\n- 🎯 **Webhook handling** - Payment and subscription events\n- 📱 **Responsive Design** - Mobile-first approach\n- 🚢 **Vercel Deployment Ready** - One-click deployment\n\n## Tech Stack\n\n### Frontend\n- **React Router v7** - Full-stack React framework\n- **TailwindCSS v4** - Utility-first CSS framework\n- **shadcn/ui** - Modern component library with Radix UI\n- **Lucide React \u0026 Tabler Icons** - Beautiful icon libraries\n- **Recharts** - Data visualization\n- **Motion** - Smooth animations\n\n### Backend \u0026 Services\n- **Convex** - Real-time database and serverless functions\n- **Clerk** - Authentication and user management\n- **Polar.sh** - Subscription billing and payments\n- **OpenAI** - AI chat capabilities\n\n### Development \u0026 Deployment\n- **Vite** - Fast build tool\n- **TypeScript** - Type safety\n- **Vercel** - Deployment platform\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js 18+ \n- Clerk account for authentication\n- Convex account for database\n- Polar.sh account for subscriptions\n- OpenAI API key (for AI chat features)\n\n### Installation\n\n1. Clone the repository and install dependencies:\n\n```bash\nnpm install\n```\n\n2. Copy the environment file and configure your credentials:\n\n```bash\ncp .env.example .env.local\n```\n\n3. Set up your environment variables in `.env.local`:\n\n```bash\n# Convex Configuration\nCONVEX_DEPLOYMENT=your_convex_deployment_here\nVITE_CONVEX_URL=your_convex_url_here\n\n# Clerk Authentication\nVITE_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key_here\nCLERK_SECRET_KEY=your_clerk_secret_key_here\n\n# Polar.sh Configuration\nPOLAR_ACCESS_TOKEN=your_polar_access_token_here\nPOLAR_ORGANIZATION_ID=your_polar_organization_id_here\nPOLAR_WEBHOOK_SECRET=your_polar_webhook_secret_here\n\n# OpenAI Configuration (for AI chat)\nOPENAI_API_KEY=your_openai_api_key_here\n\n# Frontend URL for redirects\nFRONTEND_URL=http://localhost:5173\n```\n\n4. Initialize Convex:\n\n```bash\nnpx convex dev\n```\n\n5. Set up your Polar.sh webhook endpoint:\n   - URL: `{your_domain}/webhook/polar`\n   - Events: All subscription events\n\n### Development\n\nStart the development server with HMR:\n\n```bash\nnpm run dev\n```\n\nYour application will be available at `http://localhost:5173`.\n\n## Building for Production\n\nCreate a production build:\n\n```bash\nnpm run build\n```\n\n## Deployment\n\n### Vercel Deployment (Recommended)\n\nThis starter kit is optimized for Vercel deployment with the `@vercel/react-router` preset:\n\n1. Connect your repository to Vercel\n2. Set environment variables in Vercel dashboard\n3. Deploy automatically on push to main branch\n\nThe `react-router.config.ts` includes the Vercel preset for seamless deployment.\n\n### Docker Deployment\n\nTo build and run using Docker:\n\n```bash\ndocker build -t my-app .\n\n# Run the container\ndocker run -p 3000:3000 my-app\n```\n\nThe containerized application can be deployed to any platform that supports Docker:\n\n- AWS ECS\n- Google Cloud Run\n- Azure Container Apps\n- Digital Ocean App Platform\n- Fly.io\n- Railway\n\n### DIY Deployment\n\nIf you're familiar with deploying Node applications, the built-in app server is production-ready.\n\nMake sure to deploy the output of `npm run build`\n\n```\n├── package.json\n├── package-lock.json\n├── build/\n│   ├── client/    # Static assets\n│   └── server/    # Server-side code\n```\n\n## Architecture\n\n### Key Routes\n- `/` - Homepage with pricing\n- `/pricing` - Dynamic pricing page\n- `/dashboard` - Protected user dashboard\n- `/dashboard/chat` - AI-powered chat interface\n- `/dashboard/settings` - User settings\n- `/success` - Subscription success page\n- `/webhook/polar` - Polar.sh webhook handler\n\n### Key Components\n\n#### Authentication \u0026 Authorization\n- Protected routes with Clerk authentication\n- Server-side user data loading with loaders\n- Automatic user synchronization\n\n#### Subscription Management\n- Dynamic pricing cards fetched from Polar.sh\n- Secure checkout flow with redirect handling\n- Real-time subscription status updates\n- Customer portal for subscription management\n- Webhook handling for payment events\n\n#### Dashboard Features\n- Interactive sidebar navigation\n- Real-time data updates\n- User profile management\n- AI chat functionality\n- Subscription status display\n\n#### AI Chat Integration\n- OpenAI-powered conversations\n- Real-time message streaming\n- Chat history persistence\n- Responsive chat interface\n\n## Environment Variables\n\n### Required for Production\n\n- `CONVEX_DEPLOYMENT` - Your Convex deployment URL\n- `VITE_CONVEX_URL` - Your Convex client URL\n- `VITE_CLERK_PUBLISHABLE_KEY` - Clerk publishable key\n- `CLERK_SECRET_KEY` - Clerk secret key\n- `POLAR_ACCESS_TOKEN` - Polar.sh API access token\n- `POLAR_ORGANIZATION_ID` - Your Polar.sh organization ID\n- `POLAR_WEBHOOK_SECRET` - Polar.sh webhook secret\n- `OPENAI_API_KEY` - OpenAI API key for chat features\n- `FRONTEND_URL` - Your production frontend URL\n\n## Project Structure\n\n```\n├── app/\n│   ├── components/         # Reusable UI components\n│   │   ├── ui/            # shadcn/ui components\n│   │   ├── homepage/      # Homepage sections\n│   │   └── dashboard/     # Dashboard components\n│   ├── routes/            # React Router routes\n│   └── utils/             # Utility functions\n├── convex/                # Convex backend functions\n├── public/                # Static assets\n└── docs/                  # Documentation\n```\n\n## Key Dependencies\n\n- `react` \u0026 `react-dom` v19 - Latest React\n- `react-router` v7 - Full-stack React framework\n- `@clerk/react-router` - Authentication\n- `convex` - Real-time database\n- `@polar-sh/sdk` - Subscription management\n- `@ai-sdk/openai` \u0026 `ai` - AI chat capabilities\n- `@vercel/react-router` - Vercel deployment\n- `tailwindcss` v4 - Styling\n- `@radix-ui/*` - UI primitives\n\n## Scripts\n\n- `npm run dev` - Start development server\n- `npm run build` - Build for production\n- `npm run start` - Start production server\n- `npm run typecheck` - Run TypeScript checks\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch\n3. Commit your changes\n4. Push to the branch\n5. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License.\n\n---\n\n**Stop rebuilding the same foundation over and over.** RSK eliminates months of integration work by providing a complete, production-ready SaaS template with authentication, payments, AI chat, and real-time data working seamlessly out of the box.\n\nBuilt with ❤️ using React Router v7, Convex, Clerk, Polar.sh, and OpenAI.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelshimeles%2Freact-starter-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelshimeles%2Freact-starter-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelshimeles%2Freact-starter-kit/lists"}