Skip to content

Repository files navigation

PromptWhiz

An open-source library for discovering, creating, and sharing AI prompts.

license last-commit top language


Overview

PromptWhiz is a full-stack web app where users can discover, publish, and copy AI prompts. Sign in with Google, write a prompt, tag it, and share it with the community. Browse and search the archive by tag or username.

The UI is built with a dark editorial aesthetic — Syne display font, JetBrains Mono for prompt content, and an acid lime accent palette.


Features

  • Google OAuth sign-in via NextAuth.js
  • Create, edit, and delete your own prompts
  • Browse the feed — all community prompts in a masonry grid
  • Search by tag or username with debounced filtering
  • Copy to clipboard any prompt in one click
  • Profile pages — view your own or any other user's prompts
  • Responsive — works on mobile and desktop

Tech Stack

Layer Technology
Framework Next.js 13 (App Router)
Auth NextAuth.js (Google OAuth)
Database MongoDB + Mongoose
Styling Tailwind CSS + custom CSS variables
Fonts Syne, JetBrains Mono (Google Fonts)

Project Structure

PromptWhiz/
├── app/
│   ├── api/
│   │   ├── auth/[...nextauth]/   # NextAuth handler
│   │   ├── prompt/               # GET all, POST new
│   │   ├── prompt/[id]/          # GET, PATCH, DELETE by id
│   │   └── users/[id]/posts/     # GET prompts by user
│   ├── create-prompt/            # Create page
│   ├── update-prompt/            # Edit page
│   ├── profile/                  # Own profile
│   ├── profile/[id]/             # Other user's profile
│   ├── layout.jsx                # Root layout + Nav
│   └── page.jsx                  # Home feed
├── components/
│   ├── Feed.jsx                  # Search + masonry grid
│   ├── Form.jsx                  # Shared create/edit form
│   ├── Nav.jsx                   # Navigation bar
│   ├── Profile.jsx               # Profile layout
│   ├── PromptCard.jsx            # Individual prompt card
│   └── Provider.jsx              # NextAuth session provider
├── models/
│   ├── prompt.js                 # Prompt schema
│   └── user.js                   # User schema
├── styles/
│   └── globals.css               # Design tokens + component styles
└── utils/
    └── database.js               # MongoDB connection

Getting Started

Prerequisites

Installation

git clone https://github.com/leonardoo210399/PromptWhiz.git
cd PromptWhiz
npm install

Environment Variables

Create a .env.local file in the root:

MONGODB_URI=your_mongodb_connection_string

GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=your_nextauth_secret

Run

npm run dev

Open http://localhost:3000.


Roadmap

  • Like / bookmark prompts
  • Comments on prompts
  • Prompt version history
  • Collections / folders
  • More OAuth providers (GitHub, Discord)

Contributing

Fork the repo, create a branch, and open a pull request. All contributions welcome.


License

MIT — see LICENSE for details.

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages