2026Nuxt.js

Photographer Starter

  • Nuxt.js

About the project

Photographer Starter is a reusable website template for professional photographers, designed to showcase visual work without getting in the way. The goal was a dark, minimal layout that puts the client's imagery first, while being completely redeployable for different clients without touching the source code. All site content, including colors, fonts, copy, video, event listings, and galleries, is configurable via NUXT_PUBLIC_* environment variables. On Vercel, setting variables in the project panel is enough to fully rebrand the site on the next deploy. Colors are applied as CSS custom properties, making the theme switchable without any rebuild. The project is built on Nuxt 4 with file-based routing, shared layouts, and auto-import. It includes two pages: a homepage with a full-screen video hero and an adaptive event grid (portrait/landscape), and an event detail page with a photo gallery. On mobile, the video is replaced by a static image for compatibility. Every section animates on scroll via a custom Vue directive with progressive stagger. It's designed as a commercial starting point: a photographer or studio can purchase the template and configure it entirely from the Vercel dashboard, without needing a developer for content or branding updates.

Highlights

  • Multi-page template (Home, Event Detail) with shared Nuxt layout
  • 100% configurable content via NUXT_PUBLIC_* environment variables: no code changes needed
  • Full-screen video hero with static image fallback on mobile
  • Adaptive event grid with automatic portrait/landscape detection
  • Scroll animations via IntersectionObserver with progressive stagger
  • CSS custom properties design system: fully rebrandable per client
  • One-click deploy on Vercel with Nuxt auto-detection