Analyze • Improve • Optimize your AI prompt
A powerful AI prompt engineering tool that analyzes and rewrites prompts for clarity, tone, and effectiveness.
Supports Gemini • Groq • OpenAI • Ollama
- Prompt Enhancement — Analyze and rewrite prompts with clarity + completeness scoring
- Audience Tuning — Adjust tone: Technical, Simple, Executive, Creative, Child
- Gemini
- Groq
- OpenAI
- Ollama (local models)
- Diff Viewer — Word-level side-by-side comparison
- Test Prompt — Run prompts directly against LLMs
- Auto-Tagging — Prompts automatically tagged by type and tone
- Prompt History — Full version history with clarity score tracking
- Folders — Organize prompts into color-coded collections
- Template Library — Pre-built templates for writing, coding, data analysis, image generation, and more
- Model usage breakdown
- Prompt quality averages
- 14-day activity chart
- Google & GitHub OAuth authentication
- Privacy mode to skip saving history
- Cross-device cloud sync via Supabase
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| UI | React 19, Tailwind CSS 3.4, Radix UI |
| State | Zustand 5 (localStorage + Supabase sync) |
| Database | Supabase PostgreSQL via Prisma 5 |
| Auth | Auth.js v5 (Google + GitHub OAuth) |
| Language | TypeScript (strict) |
| Icons | lucide-react |
git clone https://github.com/your-username/prompt-enhancer.git
cd prompt-enhancer
npm installCreate a project at https://supabase.com
Go to
Project Settings → Database → Connection Pooling
- Copy the Transaction Pooler URL (port 6543).
If your password contains special characters like
@, encode them as%40.
Run this query in Supabase SQL Editor.
CREATETABLEIF NOT EXISTS "UserData" (
"id"TEXTNOT NULL DEFAULT gen_random_uuid()::text,
"userId"TEXTNOT NULL,
"entries" JSONB NOT NULL DEFAULT '[]',
"folders" JSONB NOT NULL DEFAULT '[]',
"analytics" JSONB NOT NULL DEFAULT '[]',
"createdAt"TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
"updatedAt"TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
CONSTRAINT"UserData_pkey"PRIMARY KEY ("id")
);
CREATEUNIQUE INDEXIF NOT EXISTS "UserData_userId_key"ON"UserData"("userId");Create .env.local
# Auth.jsAUTH_URL=http://localhost:3000AUTH_SECRET=# Google OAuthAUTH_GOOGLE_ID=AUTH_GOOGLE_SECRET=# GitHub OAuthAUTH_GITHUB_ID=AUTH_GITHUB_SECRET=# SupabaseDATABASE_URL=DIRECT_URL=Generate secret:
npx auth secretnpm run devOpen
http://localhost:3000
| State | Behavior |
|---|---|
| Not logged in | Data stored locally |
| Logged in | Data synced from Supabase |
| Changes | Auto-save after 1.5 seconds |
| New device | Prompts load automatically |
src
├ app
│ ├ api
│ │ ├ analyze
│ │ ├ analyze-groq
│ │ ├ analyze-openai
│ │ ├ analyze-local
│ │ ├ test-prompt
│ │ └ db/sync
│
│ ├ login
│ └ profile
│
├ components
│ ├ editor
│ ├ analytics
│ ├ api-request
│ ├ history
│ ├ templates
│ └ layout
│
├ store
├ lib
├ types
└ data
| Route | Description |
|---|---|
POST /api/analyze | Enhance prompt via Gemini |
POST /api/analyze-groq | Enhance prompt via Groq |
POST /api/analyze-openai | Enhance prompt via OpenAI |
POST /api/analyze-local | Enhance prompt via Ollama |
POST /api/test-prompt | Run raw prompt against active LLM |
GET /api/ollama-test | Check Ollama connectivity |
GET /api/db/sync | Load user data from Supabase |
POST /api/db/sync | Save user data to Supabase |
PromptCraft v1.0 is the first public release and is actively being improved.
- Performance optimization for prompt analysis
- Improved diff viewer rendering
- Better error handling for API providers
- UI responsiveness fixes
- Expanded analytics metrics
These will be addressed in upcoming releases.
💡 Contributions, feedback, and suggestions are welcome.
Future improvements planned:
- Prompt benchmarking system
- Prompt sharing marketplace
- Team collaboration
- Browser extension
- VS Code extension
Contributions are welcome.
- Fork the repository
- Create a feature branch
- Commit your changes
- Submit a pull request
MIT License
If you find PromptCraft useful:
⭐ Star the repository 🐛 Report issues 💡 Suggest new features

