- What is DraftDeckAI?
- Is DraftDeckAI free to use?
- How does the credits system work?
- How many credits does each action cost?
- What happens when I run out of credits?
- Which AI models power DraftDeckAI?
- Is my data secure?
- What export formats are supported?
- How do I manage my account?
- Which browsers are supported?
- Can I use DraftDeckAI for commercial purposes?
- What API keys do I need to start developing?
- Can I run the project without Stripe?
- How do I reset my local Supabase database?
- What is the minimal setup for development?
- What branch naming conventions should I follow?
- How do I submit a pull request?
- How are GSSoC contributions tracked?
- Invalid API Key error
- Supabase connection failed
- npm install failures
- Build failures on Vercel / Netlify
- AI generation not working
DraftDeckAI is an open-source, AI-powered document creation platform. It helps you generate professional resumes, presentations, letters, and diagrams using natural language descriptions. Visit the live site to try it instantly.
Yes. Every account receives 50 free credits per month, which reset automatically. The platform is open-source under the MIT License, so you can also self-host it at no cost.
Credits are the usage currency inside DraftDeckAI. Each AI-powered action consumes a set number of credits. Free-tier accounts receive 50 credits per month that reset on a monthly cycle. If you need more, premium plans are available via Stripe (when enabled).
| Action | Credits |
|---|---|
| Generate Resume | 5 |
| Generate Presentation | 10 |
| Generate Letter | 3 |
| Generate Diagram | 5 |
| ATS Score Check | 2 |
Example: With 50 free credits you could generate 10 resumes, or 5 presentations, or a mix of different actions each month.
When your credits reach zero, AI-generation actions will be paused until your credits reset at the start of the next billing cycle. You will still be able to view and download previously created documents.
DraftDeckAI currently supports:
| Provider | Model | Used For |
|---|---|---|
| Google Gemini | Gemini Pro | Resume, letter, presentation, and diagram generation |
| Mistral AI | Mistral Large | Alternative AI provider (configurable) |
| Nebius (FLUX) | FLUX.1-schnell | Presentation slide image generation |
| Groq | Mixtral-8x7b | Campaign generator (fast inference) |
The AI provider is configured via environment variables. At minimum, you need either GEMINI_API_KEY or MISTRAL_API_KEY for core features.
DraftDeckAI is designed with security in mind. Current measures include:
- Authentication — Powered by Supabase Auth with JWT-based sessions and protected routes by default.
- Data storage — Documents are stored in your Supabase PostgreSQL database; you retain full control of the hosting environment.
- Encryption — Traffic is encrypted in transit (e.g., HTTPS when deployed to Vercel/Netlify). Passwords are hashed by default (e.g., bcrypt via Supabase Auth).
- Input validation — Input validation is applied at API boundaries (e.g., Zod schemas), along with SQL injection protection and XSS prevention.
- Third-party data sharing — Documents are not shared with external analytics services under the default configuration.
For the canonical security policy and implementation details, see SECURITY.md.
| Document Type | Export Format |
|---|---|
| Resume | |
| Presentation | |
| Letter | |
| Diagram | PNG / SVG |
PDF exports are generated client-side so your data never leaves the browser during export.
- Sign up / Log in — Email and password authentication via Supabase Auth.
- Reset password — Use the "Forgot Password" link on the login page; a reset email will be sent.
- View credits — Your remaining credits are displayed in the dashboard.
- Delete account — Contact support or manage your account through the Supabase dashboard if self-hosting.
DraftDeckAI works on all modern browsers:
| Browser | Minimum Version |
|---|---|
| Google Chrome | 90+ |
| Mozilla Firefox | 90+ |
| Microsoft Edge | 90+ |
| Apple Safari | 15+ |
Note: Internet Explorer is not supported. For the best experience, use the latest version of Chrome or Firefox.
Yes. DraftDeckAI is licensed under the MIT License, which permits personal and commercial use, modification, and distribution.
New to open source? Check out our CONTRIBUTING.md for a complete setup walkthrough and our Code of Conduct for community guidelines.
API keys are split into required and optional categories:
| Key | Where to Get It |
|---|---|
NEXT_PUBLIC_SUPABASE_URL |
supabase.com → Project Settings → API |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Same Supabase dashboard |
SUPABASE_SERVICE_ROLE_KEY |
Same Supabase dashboard |
GEMINI_API_KEY or MISTRAL_API_KEY |
Google AI Studio or Mistral Console |
| Key | Purpose |
|---|---|
STRIPE_SECRET_KEY / NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY |
Payment testing (can be disabled) |
NEBIUS_API_KEY |
Presentation slide images |
PEXELS_API_KEY |
Stock images |
RAPIDAPI_KEY |
LinkedIn profile import |
OPENAI_API_KEY |
PDF / manual LinkedIn import |
GROQ_API_KEY |
Campaign generator |
Copy .env.example to .env (or .env.local) and fill in at least the required keys.
Yes. Set the following in your .env file:
NEXT_PUBLIC_ENABLE_STRIPE=falseThis disables all payment-related features. The rest of the application — AI generation, document export, credits system — works normally without Stripe.
If you are using a cloud Supabase project:
- Open the Supabase Dashboard.
- Go to Table Editor and manually truncate or delete rows.
- Re-run any seed scripts in the
supabase/directory if provided.
If you are using the Supabase CLI locally:
# Reset the database (drops all data and re-applies migrations)
npx supabase db reset
# Re-apply migrations only
npx supabase db push
⚠️ Warning:db resetdestroys all local data. Make sure you don't need it before running this command.
To get a working local environment with the fewest dependencies:
- Node.js 18+ and npm installed.
- A free Supabase project (for auth and database).
- A free Google Gemini API key (for AI features).
- Stripe disabled (
NEXT_PUBLIC_ENABLE_STRIPE=false).
# 1. Clone and install
git clone https://github.com/<your-username>/DraftDeckAI.git
cd DraftDeckAI
npm install
# 2. Create environment file
cp .env.example .env
# Edit .env — fill in Supabase + Gemini keys, set NEXT_PUBLIC_ENABLE_STRIPE=false
# 3. Start dev server
npm run devOpen http://localhost:3000 and you're ready to contribute.
Use the conventional prefixes below:
| Type | Format | Example |
|---|---|---|
| Feature | feature/<description> |
feature/ai-prompt-optimization |
| Bug fix | fix/<description> |
fix/resume-export-error |
| Documentation | docs/<description> |
docs/create-faq-md |
| Chore | chore/<description> |
chore/dependency-updates |
Always branch from main and keep your branch up to date:
git checkout main
git pull upstream main
git checkout -b docs/create-faq-md- Get assigned — Comment on the issue you want to work on and wait for assignment.
- Fork & branch — Fork the repo and create a branch using the naming convention above.
- Make changes — Implement your work and verify locally (
npm run lint && npm run build). - Commit — Use conventional commits: e.g.,
docs(faq): create FAQ.md for users and contributors. - Open a PR — Target the
mainbranch. Fill out the PR template, link the issue withFixes #<number>, and include screenshots if applicable. - Respond to review — Maintainers typically review within 24–48 hours.
For the full PR process, see CONTRIBUTING.md → Pull Request Process.
- Add the GSSoC 2026 label to your PR description.
- Reference the issue number using
Fixes #<issue>. - Maintainers tag qualifying PRs for GSSoC leaderboard tracking.
- See CONTRIBUTING.md → GSSoC for more.
Symptom: 401 Unauthorized or Invalid API Key when using AI features.
Fix:
- Open your
.env(or.env.local) file. - Verify the key has no leading/trailing spaces or quotes:
# ✅ Correct GEMINI_API_KEY=AIzaSyD...your-key # ❌ Wrong — no quotes around the value GEMINI_API_KEY="AIzaSyD...your-key"
- Confirm the key is active in the provider's dashboard (Google AI Studio or Mistral Console).
- Restart the dev server after any
.envchange:# Stop the server (Ctrl+C), then: npm run dev
Symptom: Failed to fetch or Supabase client not initialized errors.
Fix:
- Check that all three Supabase variables are set in
.env:NEXT_PUBLIC_SUPABASE_URL=https://<project-id>.supabase.co NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGci... SUPABASE_SERVICE_ROLE_KEY=eyJhbGci...
- Ensure the URL starts with
https://and does not have a trailing slash. - Verify the project is active (not paused) in the Supabase Dashboard.
- If using a free Supabase plan, the project may auto-pause after inactivity — click Restore in the dashboard.
Symptom: npm install fails with dependency resolution errors.
Fix:
# 1. Clear npm cache
npm cache clean --force
# 2. Delete existing modules and lockfile
rm -rf node_modules package-lock.json
# 3. Re-install
npm install
# 4. If peer dependency conflicts persist, use legacy resolution
npm install --legacy-peer-depsTip: Make sure you are running Node.js 18+ (
node -vto check).
Symptom: npm run build fails locally or during CI/CD deployment.
Common causes and fixes:
| Cause | Fix |
|---|---|
| Missing environment variables | Add all required env vars in the hosting dashboard (Vercel → Settings → Environment Variables). |
| TypeScript errors | Run npm run lint locally and fix all reported issues before pushing. |
| Module not found | Run npm install and commit the updated package-lock.json. |
| Out of memory | In Vercel, set NODE_OPTIONS=--max-old-space-size=4096 in environment variables. |
# Test the production build locally before deploying
npm run buildSymptom: Clicking "Generate" does nothing, or you see a generic error message.
Fix:
- Check your credits — You may have 0 credits remaining. Wait for the monthly reset or upgrade your plan.
- Verify the API key — See Invalid API Key error above.
- Check the browser console — Open DevTools (F12) → Console tab for detailed error messages.
- Rate limits — AI providers enforce rate limits. If you hit them, wait a few minutes and retry.
- Network issues — Ensure your browser can reach the AI provider (not blocked by VPN, firewall, or ad-blocker).
- Restart the dev server — If running locally, stop and restart with
npm run dev.
| Document | Description |
|---|---|
| README.md | Project overview, quick start, and tech stack |
| CONTRIBUTING.md | Detailed contribution guide and dev setup |
| SECURITY.md | Security policies and best practices |
| SYSTEM_ARCHITECTURE.md | Technical architecture overview |
| CHANGELOG.md | Version history and release notes |
| Code_of_Conduct.md | Community guidelines |
Still have questions? Open an issue or join our WhatsApp community for help.
Built with ❤️ by the DraftDeckAI community ✨
A: A completely blank screen or browser runtime error usually indicates an environment variable initialization failure. Because DraftDeckAI relies on external infrastructure layouts (such as Supabase database schemas and Gemini AI configurations), the Next.js framework engine can throw blocking layout exceptions on startup if these keys are undefined.
To systematically bypass this local block, follow these exact diagnostic steps:
The system engine cannot parse arguments directly from blueprints. You must copy the seed layout manually:
- Find the
.env.examplefile in the root directory layout of the repository. - Create a clone copy of this file in the exact same root folder.
- Rename the file copy precisely to
.env.local. - Pro-tip: Even if you do not possess active API credentials, keeping the empty placeholder definitions intact allows the schema validations to compile successfully without throwing fatal layout breaks.
If components were previously compiled under missing configurations, build errors can persist in your active terminal session state. Refresh the local package engine sequence:
- Kill your current terminal instance thread by hitting
Ctrl + C. - Clear out module configurations and request a fresh installation setup:
npm install && npm run dev - Open your browser to
http://localhost:3000and purge the client browser cache by pressingCtrl + F5(orCmd + Shift + Ron Mac).