Smart Content Engine for solo founders and creators.
Give it anything: a rough idea, a transcript, a YouTube URL, or a pain point.
It figures out the strategy, picks the right formats, and generates content worth posting.
Repurpose AI is a Smart Content Engine built for freelancers, solo creators, and solo founders who need to produce great content fast, without thinking too hard about format, platform, or strategy.
The old approach: paste transcript β get 6 outputs. That's a template machine.
This is different: give it anything (a URL, a raw idea, a rough transcript, a topic, a pain point) and it figures out the best content strategy, picks the right formats, and generates outputs that are actually good enough to post.
No edge functions. All AI calls go directly from the browser using the Groq API (llama-3.3-70b-versatile).
- 4 Input Modes : Idea, Transcript (paste), YouTube URL (auto-fetches transcript), Pain Point
- AI Strategy Analysis : Before generating, the AI returns a Content Strategy Card: core message, audience, tone, and recommended formats. You review and edit before hitting generate.
- 9 Output Formats : LinkedIn Post, LinkedIn Hook, Twitter/X Thread, Short-form Video Script, Cold Email Draft, Newsletter Section, YouTube Description, Instagram Caption, Personal Brand Bio
- Smart Format Recommendations : AI picks the best 3 to 5 formats for your specific input. You can add or remove any.
- Inline Editing : Every output is an editable textarea with live character count (color-coded per platform limits)
- Per-card Controls : Copy, Regenerate (without touching others), Mark as Done
- Bulk Actions : Copy All, Export as Markdown (.md), Start New
- Project History : Past sessions saved to Supabase (Pro plan)
- Plan Gating : Free (5/mo), Creator ($49/mo), Pro ($99/mo) with soft upgrade prompts
- Auth : Supabase email/password + Google OAuth, protected routes, per-user RLS
| Category | Technology |
|---|---|
| Frontend | React 18 + TypeScript + Vite |
| Styling | Tailwind CSS v3 + shadcn/ui + Framer Motion |
| Backend | Supabase (Auth + PostgreSQL + RLS) |
| AI | Groq API β Llama 3.3 70B Versatile (client-side) |
| Forms | React Hook Form + Zod |
| Data Fetching | TanStack React Query v5 |
| Deployment | Vercel |
- Node.js 18+
- pnpm 8+ (
npm install -g pnpm) - Supabase account β supabase.com
- Groq API key β console.groq.com
# 1. Clone the repo
git clone https://github.com/MuhammadTanveerAbbas/Repurpose.git
cd Repurpose
# 2. Install dependencies
pnpm install
# 3. Set up environment variables
cp .env.example .env.local
# Fill in your values (see Environment Variables below)
# 4. Run the development server
pnpm dev
# 5. Open in browser
http://localhost:8080- Create a new Supabase project
- Run
supabase/schema.sqlin the Supabase SQL Editor - That's it β no edge functions needed
Create a .env.local file in the root:
# Supabase
VITE_SUPABASE_URL=https://your-project-id.supabase.co
VITE_SUPABASE_PUBLISHABLE_KEY=your-supabase-anon-key
VITE_SUPABASE_PROJECT_ID=your-project-id
# Groq AI (client-side β safe to expose via VITE_ prefix)
VITE_GROQ_API_KEY=your-groq-api-keyGet your keys:
- Supabase: supabase.com β Project Settings β API
- Groq: console.groq.com
Repurpose/
βββ public/ # Static assets
βββ src/
β βββ components/
β β βββ dashboard/ # Dashboard tab components
β β β βββ GenerateTab.tsx # Main 3-step generation flow
β β β βββ InputStep.tsx # Input mode selector
β β β βββ StrategyCard.tsx # AI strategy review + format picker
β β β βββ OutputsSection.tsx
β β β βββ OutputCard.tsx # Per-format card with edit/copy/regen
β β β βββ HistoryTab.tsx # Past projects (Pro)
β β β βββ SettingsTab.tsx # Profile + plan + password
β β βββ ui/ # shadcn/ui component library
β βββ contexts/ # AuthContext
β βββ hooks/ # use-auth, use-mobile, use-toast
β βββ integrations/ # Supabase client + types
β βββ lib/
β β βββ groq.ts # Groq API client + all format prompts
β β βββ utils.ts
β βββ pages/
β β βββ Index.tsx # Landing page
β β βββ Dashboard.tsx # 3-tab dashboard shell
β β βββ Login.tsx
β β βββ Signup.tsx
β β βββ Pricing.tsx
β β βββ NotFound.tsx
β βββ main.tsx
βββ supabase/
β βββ schema.sql # Full DB schema with RLS
βββ .env.example
βββ package.json
βββ README.md
User picks a mode (Idea / Transcript / YouTube URL / Pain Point) and submits.
Groq analyzes the input and returns a JSON strategy:
{
"core_message": "...",
"audience": "...",
"recommended_formats": [
"LinkedIn Post",
"Twitter/X Thread",
"Short-form Video Script"
],
"tone": "Provocative",
"strategy_note": "..."
}This is shown as a Content Strategy Card. User can edit format selection before proceeding.
Each selected format is generated sequentially with a platform-specific system prompt. Outputs appear as cards as they complete. User can edit, copy, regenerate, or mark done.
| Command | Description |
|---|---|
pnpm dev |
Start development server on port 8080 |
pnpm build |
Build for production |
pnpm preview |
Preview production build |
pnpm lint |
Run ESLint |
pnpm lint:fix |
Run ESLint with auto-fix |
pnpm test |
Run tests (single run) |
pnpm type-check |
TypeScript type checking |
Deployed on Vercel. Add these environment variables in the Vercel dashboard:
VITE_SUPABASE_URLVITE_SUPABASE_PUBLISHABLE_KEYVITE_SUPABASE_PROJECT_IDVITE_GROQ_API_KEY
- 4 input modes (Idea, Transcript, YouTube URL, Pain Point)
- AI content strategy analysis before generation
- 9 platform-specific output formats
- Inline editing + per-format regeneration
- Copy All + Export as Markdown
- Project history (Pro)
- Free / Creator / Pro plan gating
- Streaming generation (real-time output)
- Custom tone instructions per session
- Notion and Google Docs export
- API access
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
