Analyze β’ Improve β’ Optimize your AI prompts
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 install-
Create 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.
CREATE TABLE IF NOT EXISTS "UserData" (
"id" TEXT NOT NULL DEFAULT gen_random_uuid()::text,
"userId" TEXT NOT 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")
);
CREATE UNIQUE INDEX IF NOT EXISTS "UserData_userId_key"
ON "UserData"("userId");Create .env.local
# Auth.js
AUTH_URL=http://localhost:3000
AUTH_SECRET=
# Google OAuth
AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
# GitHub OAuth
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=
# Supabase
DATABASE_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

