Enzo Porrino Photography
A photography portfolio that opens with a zoom and updates itself from Google Drive
A photography portfolio built around a single idea: let the work breathe. A scroll-driven zoom parallax opens the site, the projects grid lets the photographs do the talking, and a Google Drive backend lets Enzo publish new shoots just by uploading folders — no CMS, no login.
- Client
- Enzo Porrino
- Industry
- Photography • Creative
- Role
- Designer & Frontend Developer
- Timeline
- 2026
- Services
- UX/UI Design, Frontend Development, Creative Direction
- Stack
- Next.js 16, React 19, GSAP, Lenis, Google Drive API
Context and Idea
Enzo is a photographer with a strong visual identity — and the brief reflected it: he didn't want another portfolio that felt like a template. He wanted a site that opened with the same impact as one of his shots, then stepped aside to let the work speak. The second challenge was practical: he wanted to keep the site alive — adding shoots, reorganising projects — without ever opening a CMS or asking a developer to push code.
Challenges
- Open the site with impact without overwhelming the photography that follows
- Make a long-form gallery feel navigable, not endless
- Give Enzo a way to publish new shoots without touching code
- Serve high-resolution photographs without compromising load times
The Solution
The home opens with a scroll-driven zoom parallax: nine images sit fixed on screen and, as you scroll, each one scales and translates at its own rate, exploding outward into a depth-of-field composition. It's the visual equivalent of a shutter opening. Below it sits a quiet projects grid — masonry layout, lazy-loaded covers, video previews that play on hover (desktop) or autoplay on mobile. Click a card and you land on the project page: a scroll-driven gallery on the left, sticky title in the middle, and a MiniMap navigator on the right that tracks your scroll position — so you always know where you are inside a 30-image series. Behind the scenes, projects are synced from Google Drive at build time: Enzo names a folder 'Nome IT:: English Name', drops in photos, and the site picks it up on the next deploy. No CMS, no login.
A hero that opens like a shutter
The home doesn't fade in — it explodes outward. Nine images sit fixed on screen and, as you scroll, each one scales and translates at its own rate, with multipliers running from ×4 to ×10. The animation is tied to Lenis's smooth-scroll progress rather than raw scroll events, so the easing always matches the page's motion.
A MiniMap to navigate the work
Each project page can hold dozens of images. Instead of a long scroll into the void, a fixed MiniMap on the right tracks your position, lets you jump to any frame, and gives the series a sense of structure — like flipping through a photo book with your thumb on the edge.
Quiet pages, deliberate type
Outside the hero, the rest of the site holds its breath. The About page is a portrait, three paragraphs, and a copy-to-clipboard email. The footer reveals itself with a clip-path slide as you reach the bottom. OrticaLinear for UI, Playfair for headings — the typography carries the personality the layout deliberately doesn't.
Development and Technologies
Built on Next.js 16 with the App Router and React 19, with GSAP driving the zoom-parallax hero and Lenis handling smooth scroll. The hero ties its scale animations to Lenis's scroll MotionValue, not raw window scroll — so the parallax stays in sync with the eased scroll position instead of stuttering on raw events. Two separate components handle desktop and mobile to avoid transform conflicts. Hero images use Next.js's automatic AVIF/WebP conversion with responsive sizes; the projects grid and project galleries lazy-load with skeleton placeholders. A persistent transition overlay keeps route changes seamless — no flash of unstyled content. The CMS layer is the unusual part: a Google Drive API integration runs at build time via a custom generate-projects.js script, parsing folder names with a custom 'IT:: EN' syntax to produce bilingual content. Cover versioning busts CDN cache when Enzo updates an image.
Results
- A portfolio that feels like the photographer, not a template
- Zero-friction publishing: new projects appear by dropping folders into Drive
- An immersive opening that gives way to quiet, photograph-first pages
- A bilingual site (IT/EN) maintained with no CMS overhead
Conclusion
The Enzo Porrino portfolio works because it gets out of the way. The hero opens with intention, the grid lets each project hold its own space, and the publishing flow runs on a folder Enzo already uses every day. The photographs do the rest.