- Node.js and yarn/bun installed
- Accounts and API keys for:
- Supabase
- Stripe (if using payments)
- Clerk (if using authentication)
-
Clone the repository:
git clone <repository-url> cd <project-directory> -
Install dependencies:
yarn -
Set up environment variables: Copy the example environment file and configure your values:
cp .env.example .envThen edit the
.envfile with your actual API keys and configuration values:- Clerk: Authentication service keys
- Supabase: Database and service role keys
- Stripe: Payment processing keys (if using payments)
- Upstash Redis: Caching service keys
- Gemini AI: Google AI API key for SQL generation
- UploadThing: File upload service keys
- Text-to-Speech: Optional API keys for voice features
All required environment variables are documented in
.env.example -
Configure features: In
config.ts, set the desired features:const config = { auth: { enabled: true, // Set to false if not using Clerk }, payments: { enabled: true, // Set to false if not using Stripe } };
-
Set up the database: Run Prisma migrations:
npx prisma migrate dev -
Start the development server:
yarn dev -
Open your browser and navigate to
http://localhost:3000to see your application running.
- Webhooks: Set up webhooks for Clerk (if using auth) at
/api/auth/webhookand for Stripe (if using payments) at/api/payments/webhook. - Customize the landing page, dashboard, and other components as needed.
- Modify the Prisma schema in
prisma/schema.prismaif you need to change the database structure.
- Enable Row Level Security (RLS) in your Supabase project to ensure data protection at the database level.
- Always make Supabase calls on the server-side (in API routes or server components) to keep your service key secure.
Refer to the documentation of the individual technologies used in this project for more detailed information:
- Next.js Documentation
- Tailwind CSS Documentation
- Supabase Documentation
- Prisma Documentation
- Clerk Documentation (if using auth)
- Stripe Documentation (if using payments)