Skip to content

The full-stack powerhouse with premium integrations, designed for scalability. Ideal for production-grade apps, SaaS, and teams.

License

Notifications You must be signed in to change notification settings

Reposible-HQ/turbo-charge

Repository files navigation

reposible-logo-light

Next JS TypeScript Supabase Stripe Sentry Resend ChatGPT shadcn/ui React-hook-form Zod next-intl

Turbo Charge

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.


πŸ“¦ Table of Contents


πŸ”§ Included Integrations


πŸš€ Why Turbo Charge?

  • 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

πŸ›  Getting Started

Follow these steps to get your development environment up and running.

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/Reposible-tc/turbo-charge.git
    cd turbo-charge
  2. Install dependencies:

    npm install
    # or
    yarn install

Environment Variables

  1. Create a .env file in the project root.

  2. Copy the example:

cp .example.env .env
  1. 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.

Supabase Setup

Instructions for working with Supabase in local and remote development.

Generating Supabase Types

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.ts

These commands generate types.ts under src/lib/supabase/types.ts based on your schema.

Database Migrations & Deployment

  1. Link Your Supabase Project
npx supabase link --project-ref <YOUR_PROJECT_ID>
  1. Pull Remote Schema Changes (if any)
npx supabase db pull --schema auth,storage

Review the generated migration file in supabase/migrations/.

  1. 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.

  1. Apply & Reset Migrations Locally
# Apply migrations
npx supabase migration up

# (Optional) Reset local database
npx supabase db reset
  1. Deploy to Remote
npx supabase db push

This will deploy your local migrations to the remote Supabase instance, keeping both environments in sync.

Stripe Setup

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/webhook

This webhook endpoint is configured to listen to the following Stripe events (feel free to add or remove events as needed):

  • product.created
  • product.updated
  • product.deleted
  • price.created
  • price.updated
  • price.deleted
  • checkout.session.completed
  • customer.subscription.created
  • customer.subscription.updated
  • customer.subscription.deleted

These events help keep your Stripe data in sync with your Supabase database.

Products and Prices

When you create, update, or delete a product or price in the Stripe dashboard, the same change will be reflected in your database automatically.

Subscriptions and Checkout Sessions

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.

Customer Subscription Sync

To ensure your database always has up-to-date information about your customers’ subscriptions, the webhook also listens to subscription-related events:

  • customer.subscription.created
  • customer.subscription.updated
  • customer.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.

Sentry Setup

To enable error tracking and performance monitoring in your application, create a Sentry account and set up a new Next.js project.

Configuration

  1. Set the DSN Add your Sentry DSN to the .env file:

    NEXT_PUBLIC_SENTRY_DSN=your-dsn-here
  2. Update the package.json scripts Modify your package.json to include the sentry:sourcemaps script and chain it to the build script:

    "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.

Notes

  • Running npm run build will 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-cli with an auth token. Refer to the Sentry CLI documentation for setup instructions.

Resend Setup

Resend provides a simple and reliable email API for sending transactional emails in your app.

Add API Key

Get your API key from resend.com and add it to your .env file:

RESEND_API_KEY=your_resend_api_key

Notes

  • 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.

Running the Development Server

Start the Next.js development server:

npm run dev
# or
yarn dev

Open http://localhost:3000 in your browser.

πŸ“„ License

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.

πŸ“¬ Contact

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.

About

The full-stack powerhouse with premium integrations, designed for scalability. Ideal for production-grade apps, SaaS, and teams.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published