AI that learns your style and helps you create content faster. Creator AI analyzes your existing YouTube videos to understand your tone, vocabulary, and structure β then generates scripts, subtitles, ideas, stories, and more β all personalized to you.

- AI Style Training β Connect YouTube, provide 3β5 videos, and the AI learns your unique tone, vocabulary, and pacing
- Script Generation β Personalized video scripts via BullMQ worker; supports file attachments, storytelling mode, timestamps, multi-language output, and PDF export
- Ideation β AI-powered idea generation with live web search, trend snapshots, opportunity scoring, content angles, and sources; export as PDF/JSON
- Story Builder β Structured narrative generation from a topic with real-time SSE progress
- Subtitle Generation β Upload video (max 200 MB / 10 min), auto-generate timed subtitles, translate, edit in-app, export as SRT/VTT, burn into video via FFmpeg
- Audio/Video Dubbing β Dub media into 24+ languages via Murf.ai with real-time progress
- Billing & Subscriptions β Stripe-powered checkout, customer portal, webhook handling, and plan management
- Credit System β Token-based credits consumed per AI operation, tracked automatically
- Referral Program β Unique referral codes, track referrals, earn bonus credits
- Auth β Email/password and Google OAuth, OTP-based password reset, email verification via Supabase Auth
- Profile & Settings β Avatar upload, notification preferences, billing info
- Thumbnail Generator β AI-generated thumbnail descriptions (backend ready)
- Course Module Builder β Structured course outlines from a topic (backend ready)
- AI Video Generator β Page placeholder at
/dashboard/video-generation
| Layer |
Technology |
| Frontend |
Next.js 15, React 19, TypeScript, Tailwind CSS, shadcn/ui |
| Backend |
NestJS, TypeScript, Zod validation |
| Database |
Supabase (PostgreSQL), Row-Level Security |
| Auth |
Supabase Auth (JWT), Google OAuth |
| AI |
Google Gemini 2.5 Flash, OpenAI GPT-4o |
| Payments |
Stripe (Checkout, Billing Portal, Webhooks) |
| Dubbing |
Murf.ai |
| Jobs |
BullMQ + Redis (train-ai, script, ideation, story-builder queues) |
| Media |
FFmpeg, Supabase Storage |
| Email |
Resend |
| Monorepo |
Turborepo + pnpm workspaces |
creatorai/
βββ apps/
β βββ web/ # Next.js 15 frontend
β β βββ app/
β β β βββ dashboard/
β β β β βββ train/ # AI style training
β β β β βββ scripts/ # Script generation & editing
β β β β βββ research/ # Ideation & idea research
β β β β βββ story-builder/ # Narrative structure builder
β β β β βββ subtitles/ # Subtitle generation & editing
β β β β βββ dubbing/ # Audio/video dubbing
β β β β βββ thumbnails/ # Thumbnail generator (coming soon)
β β β β βββ courses/ # Course builder (coming soon)
β β β β βββ video-generation/ # Video generator (coming soon)
β β β β βββ settings/ # User settings & billing
β β β β βββ referrals/ # Referral program
β β β βββ api/ # Next.js API routes
β β βββ components/ # React components
β β βββ hooks/ # Custom React hooks
β β βββ lib/ # Utilities & API helpers
β βββ api/ # NestJS backend
β βββ src/
β βββ auth/ # Password reset (OTP flow)
β βββ billing/ # Stripe checkout, portal, webhooks
β βββ ideation/ # AI idea generation (BullMQ)
β βββ script/ # Script generation (BullMQ)
β βββ story-builder/ # Story structure generation (BullMQ)
β βββ subtitle/ # Subtitle CRUD + burn (FFmpeg)
β βββ dubbing/ # Dubbing via Murf.ai
β βββ train-ai/ # AI training job queue
β βββ thumbnail/ # Thumbnail generation
β βββ course/ # Course module builder
β βββ referral/ # Referral system
β βββ youtube/ # YouTube OAuth & channel data
β βββ upload/ # File uploads
β βββ support/ # Issue reporting
β βββ supabase/ # Supabase client module
βββ packages/
β βββ validations/ # Shared Zod schemas, types & credit utils
β βββ supabase/ # Supabase migrations & client utilities
β βββ train-ai-worker/ # BullMQ workers (train-ai, script, ideation, story-builder)
β βββ email-templates/ # Email templates (OTP, welcome)
β βββ config/ # Shared constants
β βββ ui/ # Shared UI components
β βββ api/ # Shared API types
βββ docs/
β βββ SETUP.md # Detailed development setup guide
βββ docker-compose.yml # Redis + worker services
βββ turbo.json # Turborepo pipeline config
- Node.js 18+ β nodejs.org
- pnpm β
npm install -g pnpm
- Git β git-scm.com
- Docker (optional) β for Redis via
docker compose
git clone https://github.com/scriptaiapp/scriptai.git
cd scriptai
pnpm install
- Create a project at supabase.com/dashboard
- Get your Database URL from Settings > Database > Connection String
- Apply the schema:
pnpx supabase login
pnpx supabase db push --db-url <your-supabase-db-url>
cp .env.example .env
cp apps/web/.env.example apps/web/.env
cp apps/api/.env.example apps/api/.env
cp packages/train-ai-worker/.env.example packages/train-ai-worker/.env
Edit each .env file with your credentials. See the .env.example files for required keys.
Required services & API keys
| Service |
Key |
Required |
Purpose |
| Supabase |
SUPABASE_URL, SUPABASE_ANON_KEY, SUPABASE_SERVICE_KEY |
Yes |
Database, auth, storage |
| Google AI |
GOOGLE_GENERATIVE_AI_API_KEY |
Yes |
Script generation, ideation, training |
| Redis |
REDIS_URL |
Yes |
BullMQ job queues (api + worker) |
| OpenAI |
OPENAI_API_KEY |
Optional |
Subtitle generation |
| Resend |
RESEND_API_KEY |
Optional |
Transactional emails |
| YouTube |
YOUTUBE_API_KEY |
Optional |
Channel integration |
| Google OAuth |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET |
Optional |
YouTube OAuth |
| Murf.ai |
MURF_API_KEY |
Optional |
Audio/video dubbing |
| Stripe |
via billing module config |
Optional |
Payments & subscriptions |
# Start Redis (if using Docker)
docker compose up -d
# Start all dev servers (frontend + backend + worker)
pnpm run dev
# Or start individually
pnpm run dev --filter=web # Frontend only β http://localhost:3000
pnpm run dev --filter=api # Backend only β http://localhost:8000
| Command |
Description |
pnpm run dev |
Start all dev servers (Turborepo) |
pnpm run dev --filter=web |
Start frontend only |
pnpm run dev --filter=api |
Start backend only |
pnpm run build |
Build all packages and apps |
pnpm run test |
Run tests |
pnpm run lint |
Lint all code |
pnpm run type-check |
TypeScript type checking |
pnpm run format |
Format with Prettier |
ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ
β Next.js ββββββΆβ NestJS ββββββΆβ Supabase β
β Frontend β β Backend β β (Postgres) β
ββββββββββββββββ ββββββββ¬ββββββββ ββββββββββββββββ
β
ββββββββΌββββββββ ββββββββββββββββ
β BullMQ ββββββΆβ AI Workers β
β (Redis) β β (Gemini/GPT) β
ββββββββββββββββ ββββββββββββββββ
- Frontend calls Next.js API routes for AI operations (scripts, ideation) and the NestJS backend for subtitles, dubbing, training, and billing.
- Backend validates requests, manages auth, and enqueues long-running AI tasks to BullMQ.
- Workers process queued jobs (training, script generation, ideation, story builder) with SSE progress streaming back to the client.
- Supabase handles auth, database (with RLS), and file storage.
- Join Discord
- Read the Contributing Guide and Setup Guide
- Check issues labeled "Good First Issue"
- Fork, branch, code, and submit a PR
Community
MIT β see LICENSE