Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A photography portfolio template using Next.js, TailwindCSS, and Contentful, with Umami analytics and Vercel hosting.
Photo Portfolio V3 is a photography portfolio website codebase by jpvalery, built on Next.js and TailwindCSS, that pulls images and content from Contentful, integrates Umami analytics, and is deployed on Vercel.
Photo Portfolio V3 is the source code behind the photography portfolio at jpvalery.photo, launched in March 2021. It is a Next.js application that statically generates a photo gallery, styled with TailwindCSS, with all images and captions stored as entries in Contentful, a headless CMS. The site is hosted on Vercel and includes Umami analytics for privacy-friendly visitor tracking. The repository is shared as a reference for developers combining these tools.
Photographers — those who want a fast, visually clean portfolio site using a headless CMS, and are comfortable setting up Contentful. Next.js developers — anyone learning how to integrate Next.js with Contentful and deploy on Vercel can study this codebase. Contentful users — developers who want to see a real-world content model and how it maps to a static site.
Photographers: set up a portfolio by recreating the Contentful schema, adding images and descriptions, and deploying the Next.js app to Vercel. Developers: fork the repository and use it as a reference for building JAMstack sites with Next.js and Contentful. Designers: use the TailwindCSS setup as a starting point for a clean, image-focused layout.
The site pulls content from Contentful at build time, so every portfolio entry is a content model in the CMS. Next.js statically generates HTML pages from that content, and the result is deployed to Vercel. Umami analytics is loaded client-side to measure page views.
No. The repository provides the codebase, but the content lives in a private Contentful space. To make the site work, you need to replicate the Contentful schema and populate it with your own images.
It uses Next.js with TailwindCSS for the frontend, Contentful as the headless CMS, Umami for analytics, and Vercel for hosting and deployment.
The project was created by jpvalery, the author of the portfolio at jpvalery.photo. It is based on an earlier iteration by Matthias (iammatthias/.com) from which the first version was adapted.
The previous iteration, launched in January 2019, used Contentful, Netlify, and Gatsby V2. It was based on the work of @iammatthias/.com.
The code is shared publicly on GitHub for reference and learning. The author asks you to give credit and to avoid a mindless copy-paste; there is no mention of a formal license.
