TL;DR — Quick Summary
- Client: Marianna — premium wedding and portrait photographer, Nyíregyháza, Hungary
- Stack: Next.js 15 + React 19 + Tailwind CSS 4, deployed on modern infrastruktúra
- Development time: 14 days (AiSolve.me guarantee met)
- Lighthouse score: 97 Performance / 100 Accessibility / 100 Best Practices / 98 SEO
- Result: +37% inquiries, +89% organic search traffic after 3 months
Project Background: What Marianna Needed
Marianna is a wedding and portrait photographer working in Nyíregyháza and the surrounding Szabolcs-Szatmár-Bereg county region. Her previous website was built with a generic template builder — it didn't reflect the premium quality of her work at all. Images loaded slowly, the gallery was broken on mobile, and there was no way to request a quote or consultation online.
The new portfolio needed to excel in three areas: visual presentation (photos must be the hero), technical performance (100+ images loading fast), and business functionality (an online booking flow that actively generates leads).
Key Metrics
Design Challenges: A Premium Look for Photography
Dark backgrounds are almost mandatory for photography portfolios — and for good reason. On a dark background, image contrast and color saturation appear more vivid, the viewer's eye focuses on the photographs rather than the website. The design challenge wasn't simply having a dark background — it was finding the perfect balance between darkness and readability while hitting WCAG AA contrast ratios throughout.
Whitespace: The Secret Weapon of Premium Design
In mid-to-high-end brand design, whitespace is not waste — it's a premium signal. Marianna's portfolio intentionally uses generous breathing room between images, creating a luxury feel and allowing each photograph to stand on its own as the viewer moves through the gallery.
Technical Challenges: 100+ Images Loading Fast
The solution was a four-layer image optimization strategy: format conversion to WebP + AVIF via Next.js Image (60-80% file size reduction vs JPEG); viewport-aware sizing with sizes prop and srcset so mobile gets small images and desktop gets large; lazy loading via Intersection Observer so only visible images load; and Base64 LQIP blur placeholders that eliminate layout shift and provide a smooth loading animation.
The blur placeholder is especially important for UX: instead of blank gray rectangles, a blurry but instantly-visible miniature sets the layout structure. This also eliminates Cumulative Layout Shift (CLS), which directly affects both Lighthouse scores and Google ranking.
React 19 Features Used in the Project
Server Components: Zero Client JS for the Gallery
With React 19 Server Components, the gallery data structure (image list, categories, metadata) is rendered entirely on the server and arrives in the browser as HTML. This means zero client-side JavaScript is needed for the gallery's initial appearance — dramatically improving First Contentful Paint (FCP). Interactive elements like the lightbox, category filtering, and image transitions are client components, but load only the minimum necessary JavaScript, and only when interaction is needed.
Optimistic Updates in the Booking System
React 19's optimistic updates are used in the inquiry form: when a visitor submits a request, the UI immediately shows a success state — without waiting for the server response. If a server error occurs, the UI elegantly rolls back and shows an error message. This pattern creates a perceived 200–500ms response time improvement that users noticeably feel as snappier.
SEO for Photographers: Google Images and Structured Data
For a photography portfolio, Google Images is an underused but highly valuable traffic source. With proper implementation, Marianna's images appear in search results for queries like "wedding photographer Nyíregyháza" and "portrait photographer Szabolcs county".
Alt text strategy: Every portfolio image has a descriptive, keyword-rich alt text — not "img_1234.jpg", but "wedding photo Nyíregyháza outdoor ceremony Marianna Photography". This gives Google's crawler context for understanding image content. Schema.org structured data: ImageObject and LocalBusiness schemas are implemented, including business hours, location, and service types — positively affecting Google Maps and local search results. Open Graph images: Every gallery category has a unique OG image — when shared on social media, a beautiful, representative preview image appears automatically.
Business Results — 3 Months Post-Launch
Want a Premium Portfolio? Request a Free Consultation!
Tell us what work you want to showcase and what clients you want to attract — we'll respond within 24 hours with a tailored plan. 0 HUF upfront, 14-day delivery, 90+ Lighthouse.
Request a Consultation →Készen állsz a saját weboldaladra?
Ingyenes konzultáció során átbeszéljük, hogyan segíthetünk vállalkozásodnak növekedni egy modern, gyors és konverzióoptimalizált weboldallal. 14 nap alatt kész, 0 Ft induló költséggel.

![AI-Built Webshop: extrahasznaltruha.hu — Next.js + PostgreSQL + Stripe [Case Study]](/_next/image?url=%2Fimages%2Fblog%2Fextrahasznaltruha-webshop-case-study.webp&w=3840&q=75)
![PiheLux: Luxury Webshop with 100/100 Lighthouse Score — Built in 1 Week [Case Study]](/_next/image?url=%2Fimages%2Fblog%2Fpihelux-launch-week.webp&w=3840&q=75)



