Case 12 / 17 · Photo platform · 2026

Rawly

A modern web app for sharing photos, with albums, social features and an admin panel.

https://rawly.ru

  • 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

  1. Design (1 day) — DB structure, role model, email services, API architecture
  2. Backend (4 days) — Express API, JWT auth, image upload and processing via Sharp, Resend email
  3. Frontend (5 days) — React Router v7, landing, dashboard, albums, profiles, search, notifications
  4. Social features (3 days) — Likes, comments, follows, notifications, a moderation admin panel
  5. Testing and deployment (1 day) — QA, query optimisation, dark mode, responsiveness, deployment

Next project: Dating WebApp