Case 12 / 17 · Photo platform · 2026
Rawly
A modern web app for sharing photos, with albums, social features and an admin panel.
- Development time: 14 days
- Pages: 9+
- API endpoints: 30+
- Email templates: 4
Challenge
There was no simple, modern platform for creating and sharing photo albums with social features and real-time notifications.
Solution
A full-featured web app on React + Express with SQLite. Users create albums, upload photos, interact with content (likes, comments) and get notified about everything that happens.
Highlights
React 19 + Express + SQLite · Email integration · Dark mode · 9+ frontend pages
What was built
- Sign-up with email verification and password recovery by email
- JWT authentication with bcrypt password hashing and rate limiting
- A role system: user and administrator with granular permissions
- Creating and managing albums with visibility control (public/private)
- Photo uploads with automatic thumbnails and optimisation
- Stored metadata: size, width, height, description and photo tags
- Social features: likes and comments on photos
- Notifications about albums, likes, comments and follows
- User profiles: profile pages, avatars, bios
- Search across photos and users, indexed in the DB
- Admin panel: user management, content moderation, stats
- Dark mode with a modern Tailwind CSS design
- Email via Resend: verification, notifications, password recovery
- Image processing: compression and thumbnails via Sharp
- Responsive design for every device
- Animations and transitions with Motion
- CORS support and cache control for the API
- Optimised DB queries with indexes
- Production-ready code with error handling
- React Router v7 for page navigation
- Landing page, dashboard, album view, profiles, search, admin panel, notifications
Stages
- Design (1 day) — DB structure, role model, email services, API architecture
- Backend (4 days) — Express API, JWT auth, image upload and processing via Sharp, Resend email
- Frontend (5 days) — React Router v7, landing, dashboard, albums, profiles, search, notifications
- Social features (3 days) — Likes, comments, follows, notifications, a moderation admin panel
- Testing and deployment (1 day) — QA, query optimisation, dark mode, responsiveness, deployment
Next project: Dating WebApp