Client work · Web

Anmon's Makeover Studio

Production websites for beauty and creative businesses.

A Next.js website for Anmon's Makeover Studio with an admin-curated Instagram gallery, plus two related builds: MATEA Beauty Salon (mateasalon.com) and a portfolio for Kaniz Fatema Anmon.

Next.jsTailwindPrismaPostgreSQL

Problem

Studios and salons want their latest Instagram work on their own website, without setting up Meta's OAuth app flow and without broken images when Instagram's image links expire.

Solution

Built a Next.js 15 site with Tailwind CSS v4 and Prisma/PostgreSQL where the owner curates which Instagram posts appear. Selected images are downloaded and served from the site itself so they never expire, with rate-limit handling and a secure admin area.

System architecture

  1. Next.js app with an admin area where the owner picks which Instagram posts to show.
  2. Selected images are downloaded and stored by the site, then served from its own domain.
  3. Prisma and PostgreSQL store the gallery and admin data.
  4. MATEA Beauty Salon runs on the same foundation, with 5 switchable gallery layouts.
  5. Kaniz Fatema Anmon's portfolio is a pixel-faithful port of a design-tool export to Next.js 16.

Backend logic

  • Session checks run inside each server route handler, not only in middleware.
  • Image serving is protected against path-traversal attacks.
  • Instagram fetching handles rate limits so the gallery keeps working.
  • MATEA's admin login is rate-limited and uses constant-time comparison.
  • Patched React Server Components and Next.js image-optimizer RCE vulnerabilities across these sites on the same day.

Tech stack

Frontend

  • Next.js 15 / 16
  • Tailwind CSS v4

Backend

  • Next.js route handlers
  • Prisma

Database

  • PostgreSQL

Security

  • Server-side session checks
  • Rate-limited admin login

Outcome / impact

  • Owners update their site's gallery without a developer.
  • Gallery images keep working after Instagram links expire.
  • The portfolio's hero image dropped from 7.9 MB to 56 KB, with accessibility gaps fixed along the way.

Result: Three sites delivered: Anmon's Makeover Studio, MATEA Beauty Salon (mateasalon.com), and Kaniz Fatema Anmon's portfolio.

Related writing