A modern, responsive photo blog built with React, featuring masonry layout and lazy loading for optimal performance.
- Masonry grid layout for beautiful photo arrangements
- Lazy loading images for better performance
- WebP image support with fallback
- Photo grouping and filtering
- Responsive design
- Modern image optimization
- React
- Masonry Layout
- Vanilla-LazyLoad
- ImagesLoaded
- Nano Stores for state management
- Clone the repository:
git clone https://github.com/yourusername/MyBlog.git
cd MyBlog- Install dependencies:
npm install- Start the development server:
npm run dev- Place your photos in the
src/imagesdirectory - Update
src/data/photos.jsonwith your photo information:
{
"photoGroups": {
"group-name": [
{
"src": "/path/to/image.webp",
"alt": "Image description",
"caption": "Optional caption",
"date": "2023-12-25"
}
]
}
}- Image lazy loading threshold can be adjusted in
PhotoStream.jsx - Masonry grid settings can be modified in
PhotoStream.jsx
- Modern browsers (Chrome, Firefox, Safari, Edge)
- WebP support with fallback to original formats
- Responsive design for mobile and desktop
MIT License - feel free to use this project for your own photo blog!
Contributions are welcome! Please feel free to submit a Pull Request.