The full-stack powerhouse with premium integrations, designed for scalability. Ideal for production-grade apps, SaaS, and teams.
Part of the Turbo Charge ecosystem by Reposible β a developer-first platform for effortless integrations.
- Framework: Next.js - (App Router)
- Language: Typescript
- Database: Supabase
- Auth: Supabase
- Payments: Stripe
- Monitoring: Sentry
- Mailing: Resend
- i18n: Next-intl
- AI: Open-AI
- UI: Shadcn/ui
- Forms: React-Hook-Form
- Validation: Zod
- Themes: Next-themes
- Production-ready out of the box
- Stable, tested stack β no fragile boilerplate
- Fast setup β clone, install, and you're live
- Built by humans, not generated by AI β every line reviewed, refined, and documented
- Community support via Discord
Follow these steps to get your development environment up and running.
- Node.js
- npm or yarn
- Supabase CLI
- Stripe CLI
-
Clone the repository:
git clone https://github.com/Reposible-tc/turbo-charge.git cd turbo-charge -
Install dependencies:
npm install # or yarn install
-
Create a .env file in the project root.
-
Copy the example:
cp .example.env .env- Fill in the required variables in .env
If you already know where to find all the environment variables, go ahead and populate them. Otherwise, don't worry β the setup guides below (e.g., for Supabase, Stripe, Sentry, Resend) explain exactly where to obtain each one.
Instructions for working with Supabase in local and remote development.
Keep your TypeScript types in sync with your database schema:
# For a local Supabase instance
npx supabase gen types typescript --local > ./src/lib/supabase/types.ts
# For a remote Supabase project
npx supabase gen types typescript --project-id <YOUR_PROJECT_ID> > ./src/lib/supabase/types.tsThese commands generate types.ts under src/lib/supabase/types.ts based on your schema.
- Link Your Supabase Project
npx supabase link --project-ref <YOUR_PROJECT_ID>- Pull Remote Schema Changes (if any)
npx supabase db pull --schema auth,storageReview the generated migration file in supabase/migrations/.
- Create a New Migration
npx supabase db diff --file <NAME_OF_MIGRATION>Tip: Review and test all migrations carefully before pushing to production. Refer to the Supabase CLI documentation for advanced usage.
- Apply & Reset Migrations Locally
# Apply migrations
npx supabase migration up
# (Optional) Reset local database
npx supabase db reset- Deploy to Remote
npx supabase db pushThis will deploy your local migrations to the remote Supabase instance, keeping both environments in sync.
First, create a Stripe account if you haven't already. Once your account is ready, switch to Test Mode and start a local webhook listener by running the following command:
stripe login
stripe listen --forward-to localhost:3000/api/stripe/webhookThis webhook endpoint is configured to listen to the following Stripe events (feel free to add or remove events as needed):
product.createdproduct.updatedproduct.deletedprice.createdprice.updatedprice.deletedcheckout.session.completedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deleted
These events help keep your Stripe data in sync with your Supabase database.
When you create, update, or delete a product or price in the Stripe dashboard, the same change will be reflected in your database automatically.
When a checkout.session.completed event is received, the webhook determines whether the session was for a subscription or a one-time payment:
- For subscription-based sessions, it creates a corresponding subscription record in your database, including details like the customer ID, plan, and status.
- For one-time payments, it logs the successful transaction along with relevant metadata such as the customer and product information.
To ensure your database always has up-to-date information about your customersβ subscriptions, the webhook also listens to subscription-related events:
customer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deleted
These events allow you to track changes such as new subscriptions, plan changes, cancellations, and status updates. Every time a customer's subscription is modified in Stripe, the corresponding data is automatically updated in your Supabase database.
To enable error tracking and performance monitoring in your application, create a Sentry account and set up a new Next.js project.
-
Set the DSN Add your Sentry DSN to the
.envfile:NEXT_PUBLIC_SENTRY_DSN=your-dsn-here
-
Update the
package.jsonscripts Modify yourpackage.jsonto include thesentry:sourcemapsscript and chain it to thebuildscript:"scripts": { "build": "next build && npm run sentry:sourcemaps", "sentry:sourcemaps": "sentry-cli sourcemaps inject --org <YOUR-ORGANIZATION-NAME> --project <YOUR-PROJECT-NAME> ./.next && sentry-cli sourcemaps upload --org <YOUR-ORGANIZATION-NAME> --project <YOUR-PROJECT-NAME> ./.next" }
Be sure to replace
<YOUR-ORGANIZATION-NAME>and<YOUR-PROJECT-NAME>with the correct values from your Sentry account.
- Running
npm run buildwill now automatically inject and upload source maps to Sentry. - This ensures better error stack traces by mapping minified production code back to your original source code.
- You may need to configure
sentry-cliwith an auth token. Refer to the Sentry CLI documentation for setup instructions.
Resend provides a simple and reliable email API for sending transactional emails in your app.
Get your API key from resend.com and add it to your .env file:
RESEND_API_KEY=your_resend_api_key- You can customize the sender domain (
noreply@yourdomain.com) by verifying a domain in the Resend dashboard. - Resend supports rich HTML, dynamic templates, and unsubscribe management.
Start the Next.js development server:
npm run dev
# or
yarn devOpen http://localhost:3000 in your browser.
This template is offered under the MIT License for personal or internal business use only.
You may not:
- Use this template as part of a paid SaaS, template library, or boilerplate product
- Sell or redistribute the code, directly or indirectly
- Present this work as your own in any commercial context
We keep the Foundation tier free and open to support the community. Respect for these boundaries helps us continue building high-quality tools for developers.
Feel free to reach out if you have any questions at hello@reposible.com
The software is provided "as is", without warranty of any kind.
Have questions or want to contribute? Join our developer community on Discord or visit Reposible
This template is part of the Turbo Charge journey β from rock-solid foundations to frictionless integrations. Let's build smarter, together.