Skip to content

Latest commit

Β 

History

13 Commits

Folders and files

Repository files navigation

🍌 Banana Nano Prompt Gallery

A modern, visually stunning AI prompt gallery showcasing 1084+ carefully curated AI-generated artworks.

πŸ‡¨πŸ‡³ δΈ­ζ–‡η‰ˆ README | Next.js TypeScript Tailwind CSS Cloudflare R2

✨ Features

🎨 Design & Experience

  • Unique Design: Playful Pop-Art x Futurism style with Banana Yellow + Neon Purple color scheme
  • Custom Font System: Syne (display) + Outfit (body) + Space Mono (code)
  • Smooth Animations: Framer Motion powered silky interactions and page transitions
  • Responsive Layout: Perfect support for mobile, tablet, and desktop devices

πŸ” Powerful Functionality

  • Real-time Search: Quick search across titles and prompt content
  • Tag Filtering: Filter cases by style, model, and other tags
  • Bilingual Support: Chinese/English automatic switching with intelligent language detection
  • Detail Modal: Click cards to view large images and complete prompts
  • One-click Copy: Quickly copy prompts to clipboard

⚑ Performance Optimization

  • CDN Acceleration: 1303+ images distributed globally via Cloudflare R2 CDN
  • Image Optimization: Next.js Image component automatic optimization
  • Code Splitting: On-demand loading for fast first-screen rendering
  • Data Caching: Smart caching strategy

πŸš€ Developer Experience

  • TypeScript: Type-safe with excellent development experience
  • Component-based: Clear component structure and code organization
  • Incremental Upload: R2 image incremental upload tool avoids duplicate uploads

🎯 Tech Stack

Technology Version Purpose
Next.js 15.5.9 React framework, App Router
React 19.0 UI library
TypeScript 5 Type safety
Tailwind CSS 3.4 Styling framework
Framer Motion 11.15 Animation library
AWS SDK 3.962 R2 storage client
Cloudflare R2 - Image CDN storage

Font System

  • Syne (700, 800) - Headings and display text
  • Outfit (300-700) - Body and UI text
  • Space Mono (400, 700) - Code and prompts

πŸ“¦ Installation & Usage

Requirements

  • Node.js 18+
  • npm or yarn

Quick Start

# 1. Clone repository
git clone https://github.com/gotoBest/banana-nano-prompt.git
cd banana-nano-prompt

# 2. Install dependencies
npm install

# 3. Start development server
npm run dev

# 4. Open browser
# http://localhost:3000

Build Production Version

# Build
npm run build

# Start production server
npm run start

πŸš€ Deployment

Vercel Deployment (Recommended)

Deploy with Vercel

  1. Click the button above
  2. Import GitHub repository
  3. Vercel auto-detects Next.js configuration
  4. Click "Deploy"

Environment Variables (Optional)

If you need to configure CDN or other features:

# R2 CDN domain (images already configured as https://gotovpn.win)
NEXT_PUBLIC_R2_CDN_URL=https://your-cdn-domain.com

🎨 Design System

Color Scheme

--color-banana: #FFE135;      /* Banana Yellow */
--color-neon-pink: #FF6B9D;   /* Neon Pink */
--color-neon-purple: #B829DD; /* Neon Purple */
--color-bg-dark: #0F0E1E;     /* Dark Background */
--color-bg-card: #1A1033;     /* Card Background */

Font Hierarchy

--font-display: 'Syne', sans-serif;
--font-body: 'Outfit', sans-serif;
--font-mono: 'Space Mono', monospace;

Component Features

  • Glass Card: Frosted glass effect cards
  • Neon Glow: Neon glowing borders
  • Skeleton Shimmer: Loading screen animation
  • Hover Effects: 3D tilt and zoom effects

πŸ“ Project Structure

banana-nano-prompt/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ globals.css          # Global styles and CSS variables
β”‚   β”‚   β”œβ”€β”€ layout.tsx           # Root layout (font loading)
β”‚   β”‚   └── page.tsx             # Main page
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Header.tsx           # Top navigation bar
β”‚   β”‚   β”œβ”€β”€ PromptCard.tsx       # Case card component
β”‚   β”‚   β”œβ”€β”€ Modal.tsx            # Detail modal
β”‚   β”‚   └── MetadataUpdater.tsx  # SEO metadata update
β”‚   β”œβ”€β”€ contexts/
β”‚   β”‚   └── LanguageContext.tsx  # Language switch context
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”œβ”€β”€ prompts.json         # 1084 cases data
β”‚   β”‚   β”œβ”€β”€ title-en.json        # English translations
β”‚   β”‚   └── id-title.json        # ID-title mapping
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ data.ts              # Data loading
β”‚   β”‚   └── i18n.ts              # Internationalization
β”‚   └── types/
β”‚       └── index.ts             # TypeScript type definitions
β”œβ”€β”€ public/
β”‚   └── images/                  # Image folder (migrated to R2)
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ upload-images-to-r2.js  # R2 upload script
β”‚   β”œβ”€β”€ update-image-urls-to-r2.js # URL update script
β”‚   └── download-images.js      # Image download script
β”œβ”€β”€ .env.local.example           # Environment variables template
β”œβ”€β”€ next.config.js               # Next.js configuration
β”œβ”€β”€ tailwind.config.ts           # Tailwind configuration
└── package.json

πŸ“Š Data Statistics

  • Total Cases: 1084 AI prompt cases
  • Image Count: 1303+ high-quality images
  • Storage: Cloudflare R2 CDN
  • Data Size: ~2MB (excluding images)
  • Supported Languages: Chinese, English

πŸ”§ R2 CDN Management

Upload Images to R2

# First time or incremental upload
npm run r2:upload

# Update image URLs
NEXT_PUBLIC_R2_CDN_URL=https://your-cdn.com npm run r2:update-urls

Features

  • βœ… Incremental Upload: Automatically skips already uploaded files
  • βœ… Record Tracking: r2-upload-record.json tracks upload history
  • βœ… R2 Sync: Automatically syncs existing files from R2
  • βœ… Progress Display: Real-time upload/skip progress

🌍 Internationalization

Supported Languages

  • πŸ‡¨πŸ‡³ Chinese (Simplified)
  • πŸ‡ΊπŸ‡Έ English

Auto Detection

  • Automatically switches based on browser language
  • Chinese users see Chinese by default
  • Other languages default to English
  • Manual switching takes effect immediately

🎯 Use Cases

  • βœ… AI artists finding inspiration
  • βœ… Prompt engineers reference and learning
  • βœ… Designers exploring AI art styles
  • βœ… Developers learning Next.js best practices

πŸ› οΈ Development Commands

# Development
npm run dev          # Start development server

# Build
npm run build        # Build production version
npm run start        # Start production server

# Image Management
npm run download-images      # Download images
npm run r2:upload            # Upload to R2
npm run r2:update-urls       # Update image URLs

# Code Check
npm run lint          # ESLint check

🀝 Contributing

Contributions, issues, and feature requests are welcome!

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

πŸ“ Changelog

v1.0.0 (2026-01-06)

  • βœ… Initial release
  • βœ… 1084 AI prompt cases
  • βœ… Bilingual support (Chinese/English)
  • βœ… Responsive design
  • βœ… R2 CDN integration
  • βœ… Incremental upload functionality

πŸ“„ License

MIT License - see LICENSE file for details

πŸ™ Acknowledgments


Made with 🍌 by gotoBest

⭐ If this project helps you, please give it a Star!

πŸ“§ Questions or suggestions? Welcome to submit Issue

Releases

Packages

Contributors

Languages