๐ Live Demo: https://image-explorer-web-app.vercel.app/
A modern and interactive image discovery platform powered by Pexels, Pixabay & Unsplash APIs with performance optimization.
Image Explorer is a modern web application designed to make image discovery simple, fast, and enjoyable.
Users can search for high-quality images using keywords, explore results from multiple image APIs, upload their own images, preview images in a beautiful modal, and download images instantly.
The project also includes a simple authentication system using LocalStorage, allowing users to create an account and maintain a personalized session.
๐ Built with pure HTML, CSS and JavaScript โ no frontend framework required.
The Home Page serves as the primary hub for ImageLens, allowing users to discover, search, and explore high-resolution images seamlessly.
- Hero Search Bar: Instant image search with real-time query suggestions.
- Featured Collections: Curated categories and trending visual topics.
- Responsive Grid: Dynamic layout optimized for desktop, tablet, and mobile viewing.
Powered by Code With Vishesh
- โจ Beautiful gradient UI with particle animations
- ๐ Instant search across 3 image APIs (Pexels, Pixabay, Unsplash)
- ๐จ Modern dark theme with vibrant accents
- ๐ซ Smooth animations and transitions
- ๐ฑ Fully responsive design
- โก Lightning-fast image loading
Finding the right image shouldn't feel complicated.
Image Explorer brings multiple useful features together in one clean interface:
๐ Search Images
โ
๐ Fetch Results
โ
๐ผ๏ธ Explore Gallery
โ
๐๏ธ Preview Full Size
โ
โฌ๏ธ Download Image
Whether you're looking for wallpapers, nature photography, technology images, travel inspiration, or creative assets โ Image Explorer gives you a smooth way to discover them.
Search for images using simple keywords.
Image Explorer fetches results dynamically from:
- ๐ธ Pexels API
- ๐ Pixabay API
- ๐จ Unsplash API (via secure Express proxy)
Results from all 3 providers are merged and displayed instantly in a responsive gallery.
Explore images through a clean and modern gallery interface.
- Responsive grid layout
- Image hover animations
- Smooth transitions
- Lazy image loading
- Dynamic API results
- Beautiful image cards
- Mobile-friendly layout
Users can upload their own images directly into the application.
Uploaded images are automatically added to the gallery and can be viewed alongside API results.
Click any image to open a larger preview.
The modal provides:
- Full-size image preview
- Photographer information
- Image source
- Download option
- Close interaction
- Smooth opening animation
Download images directly from the image preview modal.
No unnecessary navigation.
One click โ Download.
Image Explorer includes a simple authentication system.
- ๐ User Signup
- ๐ User Login
- ๐ช Logout
- ๐พ Session management
- ๐ค Personalized user experience
User account and session information is stored using:
LocalStorage
โ ๏ธ This authentication system is designed for learning/demo purposes. Production applications should use secure server-side authentication and password hashing.
The interface focuses on a clean and interactive user experience.
- โจ Gradient headings
- ๐ Modern color combinations
- ๐ช Clean cards
- ๐ฏ Interactive buttons
- ๐ซ Hover animations
- ๐ Smooth transitions
- ๐ฑ Responsive design
- ๐ผ๏ธ Image-focused layout
- โก Fast interactions
| Technology | Purpose |
|---|---|
| ๐ง HTML5 | Structure & semantic markup |
| ๐ต CSS3 | Styling, animations & responsive design |
| ๐จ JavaScript ES6+ | Application logic & DOM manipulation |
| ๐พ LocalStorage | Authentication & session data |
| ๐ธ Pexels API | High-quality image search |
| ๐ Pixabay API | Image search & discovery |
| ๐จ Unsplash API | Professional photo search |
| ๐ฉ Node.js + Express | Backend proxy server |
| ๐ Environment Vars | Secure API key management |
Pexels provides high-quality stock photography and image search capabilities.
Used in this project for:
- Image searching
- Photographer information
- Image previews
- Image URLs
Pixabay provides a large collection of images that can be searched dynamically.
Used for:
- Image discovery
- Search results
- Image previews
- Additional image sources
Unsplash provides beautiful, high-quality professional photography.
Integration Method: Secure Express proxy server (API key kept server-side)
Used for:
- Professional photo search
- Extended image library
- Photographer attribution
- Enhanced search results
A Node.js/Express backend proxy server forwards Unsplash API requests securely:
- ๐ API key stored on server (never exposed to client)
- ๐ Endpoint:
http://localhost:3000/api/unsplash/search - โก Handles rate limiting and error handling
- ๐ก Merges Unsplash results with Pexels & Pixabay
Why? Protecting sensitive API keys from browser exposure ensures security and prevents abuse.
The application includes multiple performance enhancements:
- ๐ฆ Lazy Loading: Images load only when visible in viewport
- ๐ฏ Responsive Images: Correct image sizes for different screens (srcset/sizes)
- ๐ Async Decode: Images decode off main thread using
decoding="async" - ๐ Incremental Rendering: Gallery renders images in adaptive chunks (8-20 per batch)
- โฑ๏ธ Scroll Throttling: Scroll events debounced with requestAnimationFrame (rAF)
- ๐๏ธ IntersectionObserver: Auto-load pagination when reaching end of feed
- ๐ซ AbortController: Prevents stale requests from outdated searches overwriting results
- ๐พ Search Caching: Repeated searches use cached results (instant display)
Result: Lightning-fast image loading even with large result sets!
The application follows a complete workflow:
โโโโโโโโโโโโโโโโโโโโ
โ User Searches โ
โโโโโโโโโโฌโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโ
โ JavaScript Logic โ
โโโโโโโโโโฌโโโโโโโโโโ
โ
โโโโโโโโโโโโโโผโโโโโโโโโโโโโ
โผ โผ โผ
โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ
โ Pexels API โ โ Pixabay API โ โ Express Proxyโ
โ (Direct) โ โ (Direct) โ โโ Unsplash APIโ
โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ โโโโโโโโฌโโโโโโโโ
โ โ โ
โโโโโโโโโโฌโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโโโโโโ
โ Merge Results โ
โ (Dedup + Sort) โ
โโโโโโโโโโฌโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโ
โ Incremental โ
โ Chunk Rendering โ
โ (8-20 at a time) โ
โโโโโโโโโโฌโโโโโโโโโโ
โ
โโโโโโโโโโดโโโโโโโโโโโโโ
โผ โผ
๐๏ธ Preview โฌ๏ธ Download
Key Features in the Flow:
- โ All 3 APIs queried in parallel
- โ Results merged into single feed
- โ Incremental rendering for performance
- โ IntersectionObserver for auto-load pagination
- โ AbortController to prevent stale updates
Image-Explorer/
โ
โโโ index.html
โโโ style.css
โโโ script.js
โ
โโโ assets/
โ โโโ images/
โ โโโ icons/
โ
โโโ README.md
If your project uses a different folder structure, update this section according to your actual files.
To run the project locally, you need API keys from:
- ๐ธ Pexels
- ๐ Pixabay
- ๐จ Unsplash (optional - for enhanced results)
Add your Pexels and Pixabay API credentials inside the JavaScript:
const PEXELS_KEY = "YOUR_PEXELS_API_KEY";
const PIXABAY_KEY = "YOUR_PIXABAY_API_KEY";The Unsplash API is served via a secure Express proxy server.
Set the environment variable before running the server:
# Windows PowerShell
$env:UNSPLASH_ACCESS_KEY="YOUR_UNSPLASH_ACCESS_KEY"
cd server
npm install
npm startOr use the provided startup script:
.\start-server.ps1 -UnsplashKey "YOUR_UNSPLASH_ACCESS_KEY"- โ Pexels & Pixabay keys: OK to embed in frontend (they're public keys)
- ๐ Unsplash key: MUST be server-side only (via environment variable)
โ ๏ธ Never commit secrets to GitHub โ use.envfiles or environment variables- ๐ก๏ธ Production: Use proper secrets management (Heroku Config Vars, AWS Secrets Manager, etc.)
git clone https://github.com/Code-With-Vishesh/Image-Explorer-Web-App-.git
cd Image-Explorer-Web-App-Move into the server directory and install dependencies:
cd server
npm installWindows PowerShell:
$env:UNSPLASH_ACCESS_KEY="your_unsplash_key_here"macOS/Linux (Bash):
export UNSPLASH_ACCESS_KEY="your_unsplash_key_here"npm startExpected output:
Unsplash proxy listening on http://localhost:3000
Open index.html in your browser or use VS Code Live Server:
# Using Live Server extension in VS Code
Right-click index.html โ Open with Live ServerOpen DevTools (F12) โ Network tab โ Search for an image
You should see API calls to:
- โ
api.pexels.com(Pexels) - โ
pixabay.com/api(Pixabay) - โ
localhost:3000/api/unsplash/search(Unsplash via proxy)
cd Image-ExplorerAdd your Pexels and Pixabay API keys according to your JavaScript configuration.
You can simply open:
index.html
in your browser.
For the best development experience, use VS Code + Live Server.
๐ Live Demo: https://image-explorer-web-app.vercel.app/
Image Explorer is designed to work across different screen sizes.
๐ฅ๏ธ Desktop
โ
๐ป Laptop
โ
๐ฑ Tablet
โ
๐ฑ Mobile
The layout automatically adapts to different screen sizes using responsive CSS.
This project helped implement several important JavaScript concepts:
- DOM Manipulation
- Event Listeners
- Fetch API
- Async/Await
- Promises
- JSON Handling
- API Integration
- LocalStorage
- Dynamic HTML Generation
- Modal Components
- File Upload Handling
- Error Handling
- Responsive UI interactions
Building Image Explorer helped me improve my practical understanding of:
I learned how to create responsive and interactive interfaces using HTML and CSS.
I practiced real-world JavaScript concepts including API requests, asynchronous programming, DOM manipulation, and event handling.
I learned how to work with third-party APIs and dynamically display external data inside a web application.
I learned how browser storage can be used to save user information and maintain sessions.
I improved my understanding of modern layouts, animations, hover effects, responsive design, and user interaction.
The project can be extended with many exciting features.
- โค๏ธ Like / Favorite Images
- โญ Save Favorite Images
- ๐๏ธ Create Image Collections
- ๐ Dark / Light Mode
- ๐ Advanced Filters
- ๐ Image Orientation Filters
- ๐จ Color-based Search
- ๐ Search History
- ๐ Backend Authentication
- โ๏ธ Cloud Image Storage
- ๐ค User Profiles
- ๐ง AI-powered Image Search
- ๐ฑ Progressive Web App Support
This project uses browser LocalStorage for demonstration purposes.
It should not be considered a secure authentication system for production applications.
For a production-ready application, authentication should be handled using:
Frontend
โ
Backend API
โ
Authentication System
โ
Secure Database
Passwords should never be stored as plain text.
Contributions are welcome!
If you have an idea that can improve Image Explorer:
git forkgit checkout -b feature/your-featureImprove the project or add a new feature.
git commit -m "Add new feature"git push origin feature/your-featureSubmit your Pull Request on GitHub.
If you found this project useful or interesting, consider giving it a โญ on GitHub.
It really helps and motivates me to build more projects! โค๏ธ
Passionate about building modern, responsive and interactive web applications.
๐ผ๏ธ Image Search
โก Real-Time API Integration
๐ค Image Upload
โฌ๏ธ Instant Download
๐ Authentication
๐พ LocalStorage
๐จ Modern UI
๐ฑ Responsive Design
๐ Pure JavaScript
Built to learn. Built to improve. Built to create.
โญ If you like this project, don't forget to star the repository!
ยฉ 2026 Vishesh Jaiswal โ Image Explorer



