Gathering Ref is a modern web application designed to help users gather images and photos for reference and create mood boards. Whether you're collecting visual inspiration for design projects, creative briefs, interior design, fashion, art direction, or any creative endeavor, Gathering Ref provides a comprehensive platform to organize and manage your visual references in one place.
- Image Collection: Gather and upload images or photos from various sources for reference
- Mood Board Creation: Create and organize visual mood boards for projects
- Reference Organization: Categorize and tag images for easy searching and retrieval
- Public Sharing: Make galleries public so others can view your references and mood boards
- User Management: Secure authentication system for personalized user experiences
- πΌοΈ Image Upload & Collection - Upload and gather images for reference from various sources
- π¨ Mood Board Creation - Create visual mood boards to organize and showcase your references
- π Reference Organization - Categorize and tag images for easy searching and retrieval
- π Authentication System - Complete auth flow with Supabase (register, login, forgot password, reset password)
- π Dashboard - Personalized user dashboard to manage your references and mood boards
- βοΈ Settings - User profile and application settings
- π¨ Modern UI - Clean, responsive design with Tailwind CSS
- π Secure - Server-side rendering with proper security measures
- π± Responsive - Mobile-first design approach
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS
- Database/Auth: Supabase
- Icons: Custom SVG icons
- Font: Custom font optimization with next/font
-
Clone the repository:
git clone https://github.com/MFarhadA/gathering-ref.git cd gathering-ref -
Install dependencies:
npm install
-
Set up Supabase:
- Create a new project at Supabase
- Follow the setup guide in SUPABASE_SETUP.md
- Copy your Supabase URL and anon key
- Update your environment variables (see below)
-
Set up environment variables: Create a
.env.localfile in the root directory with:NEXT_PUBLIC_SUPABASE_URL=your_supabase_url NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser.
- Push your code to GitHub
- Import project to Vercel
- Add environment variables:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEY
- Deploy!
Build the application:
npm run buildStart in production:
npm startβββ app/ # Next.js App Router pages
β βββ api/ # API routes
β βββ auth/ # Authentication pages
β βββ components/ # Reusable components
β βββ dashboard/ # Dashboard page
β βββ g/ # Group/gathering pages
β βββ login/ # Login page
β βββ register/ # Registration page
β βββ settings/ # Settings page
β βββ forgot-password/ # Forgot password page
β βββ reset-password/ # Reset password page
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ lib/ # Utility functions and Supabase client
β βββ utils.ts # Utility functions
β βββ supabase/ # Supabase configuration
βββ public/ # Static assets
βββ styles/ # Global styles
βββ config files # TypeScript, ESLint, Tailwind configs
- Image Upload: Upload and store images for reference
- Reference Collections: Organize images into collections
- Tagging System: Tag and categorize images for easy retrieval
- Search: Find references quickly across your library
- Visual Mood Boards: Create boards to organize visual references
- Drag & Drop: Easily arrange images on mood boards
- Public Galleries: Make mood boards public so anyone can view them
- Registration: Create account with email/password
- Login: Secure login with session management
- Password Reset: Forgot and reset password functionality
- Session Management: Automatic session handling via Supabase
- Personalized user experience
- Quick access to your references and mood boards
- User-specific content
- Profile management
- Account settings
- Preference configuration
For detailed Supabase configuration, see SUPABASE_SETUP.md.
| Variable | Description |
|---|---|
NEXT_PUBLIC_SUPABASE_URL |
Your Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY |
Your Supabase anonymous key |
The project uses Tailwind CSS. You can customize the design by editing:
tailwind.config.ts- Tailwind configurationapp/globals.css- Global styles- Component files - Individual component styles
The project uses custom fonts optimized with next/font. Configure fonts in app/layout.tsx.
This project is open source and available under the MIT License.
Contributions are welcome! Please feel free to submit a Pull Request.
For support, email support@gatheringref.com or open an issue on GitHub.
Built with β€οΈ using Next.js, Supabase, and Tailwind CSS