Skip to content

shayannab/Promptory

Repository files navigation

[# Promptory

Promptory Logo

Stop Losing Your Best AI Prompts

Your personal prompt library with AI-powered tools to create, organize, and perfect every prompt.

Live Demo License


🎯 The Problem

Ever spent 20 minutes scrolling through ChatGPT history looking for that one perfect prompt? You're not alone.

Before Promptory:

  • ❌ Prompts scattered across chat history, notes apps, and random text files
  • ❌ Wasting 2+ hours per week searching for old prompts
  • ❌ Recreating the same prompts from scratch
  • ❌ No way to track what actually works

With Promptory:

  • ✅ All prompts in one searchable library
  • ✅ AI auto-categorizes and tags everything
  • ✅ Find any prompt in seconds
  • ✅ Track performance and optimize what works

✨ Features

🤖 AI-Powered Creation

Generate descriptions, shorten or expand prompts instantly. Never stare at a blank screen again.

📁 Auto-Organization

AI automatically categorizes and tags your prompts. Zero manual sorting required.

🔍 Smart Search

Find any prompt instantly with powerful search and filters. No more endless scrolling.

📊 Performance Analytics

Track usage, success rates, and see what prompts work best over time.

One-Click Enhancement

Improve any prompt with AI refinement - make it better, longer, or more concise.

🔗 Share & Collaborate

Make prompts public or keep them private. Share your best work with others.


🚀 Quick Start

Live Demo

Try Promptory now: https://promptory-six.vercel.app/

Local Development

# Clone the repository
git clone YOUR_REPO_URL_HERE
cd promptory

# Install dependencies
npm install

# Set up environment variables
cp .env.example .env
# Add your Supabase and Groq API keys

# Run development server
npm run dev

Open http://localhost:5173 in your browser.


🛠️ Tech Stack

  • Frontend: React 18 + Vite
  • Styling: Tailwind CSS
  • Animations: Framer Motion
  • Database: Supabase (PostgreSQL)
  • Authentication: Supabase Auth
  • AI Integration: Groq API
  • Routing: React Router v6
  • Icons: Lucide React

🎨 Design System

Promptory features a unified design system with:

  • Glassmorphism UI with backdrop blur
  • Smooth animations and micro-interactions
  • Dark/Light mode support
  • Responsive design for all devices
  • Accessible components with WCAG compliance

🗂️ Project Structure

promptory/
├── src/
│   ├── components/        # Reusable UI components
│   │   ├── ui/           # Base UI components (Button, Badge)
│   │   └── assets/       # Logo and static assets
│   ├── pages/            # Main page components
│   │   ├── Home.jsx
│   │   ├── Dashboard.jsx
│   │   ├── AddPrompt.jsx
│   │   ├── EditPrompt.jsx
│   │   └── StatsDashboard.jsx
│   ├── utils/            # Utility functions and contexts
│   │   ├── supabaseClient.js
│   │   ├── groqClient.js
│   │   ├── UserContext.jsx
│   │   └── ThemeContext.jsx
│   └── App.jsx
├── public/
└── index.css             # Global styles and Tailwind

⚙️ Environment Variables

Create a .env file in the root directory:

VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
VITE_GROQ_API_KEY=your_groq_api_key

🗄️ Database Schema

Prompts Table

create table prompts (
  id uuid primary key default uuid_generate_v4(),
  user_id uuid references auth.users not null,
  title text not null,
  description text not null,
  category text not null,
  tags text[],
  usage integer default 0,
  performance integer default 0,
  is_public boolean default false,
  created_at timestamp with time zone default timezone('utc'::text, now()),
  updated_at timestamp with time zone default timezone('utc'::text, now())
);

-- Row Level Security
alter table prompts enable row level security;

create policy "Users can view their own prompts"
  on prompts for select
  using (auth.uid() = user_id);

create policy "Users can insert their own prompts"
  on prompts for insert
  with check (auth.uid() = user_id);

create policy "Users can update their own prompts"
  on prompts for update
  using (auth.uid() = user_id);

create policy "Users can delete their own prompts"
  on prompts for delete
  using (auth.uid() = user_id);

create policy "Anyone can view public prompts"
  on prompts for select
  using (is_public = true);

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📝 License

This project is licensed under the MIT License - see the LICENSE file for details.


🙏 Acknowledgments


📧 Contact


⭐ Star this repo if you find it helpful!

Made with ❤️ by Shayanna

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published