A modern, production-ready Next.js application for managing AI prompts with advanced features and professional UI/UX.
- π Smart Search & Discovery - Advanced search with filters, tags, and AI-powered recommendations
- π Browse & Organize - Grid/list view, categories, favorites, and personal collections
- β Community Ratings - Rate and review prompts to help others discover quality content
- π€ Export Functionality - Export prompts to JSON, CSV, or Markdown formats
- π₯ User Management - Authentication with Google/GitHub OAuth
- π¨ Professional UI/UX - Dark theme with glassmorphism effects and smooth animations
- β‘ Next.js 14+ with App Router for optimal performance
- π· TypeScript for type safety and better developer experience
- π¨ Tailwind CSS with custom design system and animations
- π NextAuth.js for secure authentication
- ποΈ Prisma ORM with SQLite database (production-ready for PostgreSQL)
- π React Query for efficient data fetching and caching
- π Framer Motion for smooth animations and micro-interactions
- π± Responsive Design - Mobile-first approach with accessibility compliance
- Node.js 18+
- npm or yarn
- Git
- Clone the repository
git clone <your-repo-url>
cd prompt-repository-saas- Install dependencies
npm install- Set up environment variables
cp .env.example .env.localEdit .env.local with your configuration:
# Next.js
NEXTAUTH_SECRET=your-nextauth-secret-key-here
NEXTAUTH_URL=http://localhost:3000
# Database
DATABASE_URL="file:./dev.db"
# OAuth Providers (Optional - for authentication)
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GITHUB_CLIENT_ID=your-github-client-id
GITHUB_CLIENT_SECRET=your-github-client-secret- Set up the database
# Generate Prisma client
npm run db:generate
# Push schema to database
npm run db:push
# Seed with sample data
npm run db:seed- Start the development server
npm run devVisit http://localhost:3000 to see your application!
src/
βββ app/ # Next.js App Router pages
β βββ api/ # API routes
β βββ prompts/ # Prompt browsing pages
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Homepage
βββ components/ # React components
β βββ ui/ # Reusable UI components
β βββ navbar.tsx # Navigation component
β βββ hero.tsx # Landing page hero
β βββ features.tsx # Features section
β βββ prompt-card.tsx # Prompt display card
β βββ ...
βββ lib/ # Utility functions
β βββ prisma.ts # Prisma client
β βββ auth.ts # Authentication config
β βββ utils.ts # Helper functions
prisma/
βββ schema.prisma # Database schema
βββ seed.ts # Database seeding script
- Primary: Blue (#3B82F6) to Purple (#8B5CF6) gradients
- Secondary: Various accent colors for categories
- Background: Dark gradients with glassmorphism effects
- Text: White primary, gray secondary with proper contrast ratios
- Glass Cards: Subtle transparency with backdrop blur
- Gradient Buttons: Smooth hover states and micro-interactions
- Typography: Inter font family with consistent sizing scale
- Spacing: 4px base unit (4, 8, 12, 16, 20, 24px)
- Animations: Framer Motion for page transitions and interactions
- User: Authentication and profile information
- Prompt: Core prompt data with content, metadata, and relationships
- Category: Prompt categorization with colors and icons
- Favorite: User bookmark system
- Rating: Community rating and review system
- Users can create multiple prompts
- Prompts belong to categories
- Users can favorite and rate prompts
- Many-to-many relationships for complex data modeling
GET /api/prompts- List prompts with filtering, search, and paginationPOST /api/prompts- Create new promptGET /api/prompts/[id]- Get specific prompt detailsPUT /api/prompts/[id]- Update prompt (owner only)DELETE /api/prompts/[id]- Delete prompt (owner only)
GET /api/categories- List all categories with prompt countsPOST /api/categories- Create new category (admin only)
GET /api/search- Advanced search across promptsGET /api/prompts/trending- Get trending promptsGET /api/prompts/featured- Get featured/curated prompts
- Push code to GitHub
- Connect repository to Vercel
- Set environment variables in Vercel dashboard
- Deploy automatically on push
# Build the application
npm run build
# Start production server
npm startFor production, update DATABASE_URL to PostgreSQL:
DATABASE_URL="postgresql://user:pass@host:5432/dbname"npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
npm run db:generate # Generate Prisma client
npm run db:push # Push schema changes
npm run db:seed # Seed database with sample data- ESLint - Code linting and formatting rules
- Prettier - Consistent code formatting
- TypeScript - Strict type checking enabled
- Husky - Git hooks for code quality (optional)
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
- Follow TypeScript best practices
- Write meaningful commit messages
- Test your changes thoroughly
- Update documentation as needed
- Follow the existing code style and patterns
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React framework for production
- Tailwind CSS - A utility-first CSS framework
- Prisma - Modern database toolkit
- Radix UI - Low-level UI primitives
- Framer Motion - Production-ready motion library
- Lucide React - Beautiful & consistent icons
Built with β€οΈ for the AI community
For questions or support, please open an issue or contact the development team.