Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A fast, customizable photography portfolio template built with Astro, featuring YAML-driven galleries, lightbox zoom, and automatic GitHub Pages deployment.

A dark portfolio & blog theme for Astro with a live 5,000-particle Three.js background, blog system, and glassmorphism UI.
Astro Photography Portfolio is a free, open-source (MIT) photography portfolio template for Astro that turns a folder of images plus a YAML gallery file into a fast, fully responsive static website, with automatic image optimization and one-command GitHub Pages deployment.
Astro Photography Portfolio is a modern portfolio template built on the Astro web framework and styled with TailwindCSS. The input is your photos, stored in src/gallery/<album> directories, and gallery metadata in src/gallery/gallery.yaml; the output is a static, performant photography site with multiple album pages, a responsive lightbox, and an About page. It is created by rockem and includes a live demo at https://rockem.github.io/astro-photography-portfolio. The template relies on Sharp for build-time image optimization and GLightbox for full-screen image zoom.
src/gallery/gallery.yaml; the built-in generator script (npm run generate) can create this file automatically from the images in each album folder.astro.config.ts sets the site URL and base path for GitHub Pages; site.config.mts defines owner name, title, favicon, and profile image for the About page.src/pages/about.astro component can be edited to change biography content, and the profile image is configured in site.config.mts.astro.config.ts with your domain and repository name, the Deploy Astro Site workflow builds and publishes the site automatically.src/gallery/<album>, run npm run generate, and set image metadata in gallery.yaml to produce distinct galleries with titles and descriptions.npm install (or yarn install) and start the development server with npm run dev (or yarn dev).src/gallery/<album>, optionally run npm run generate to auto-create gallery.yaml, then edit the YAML to set titles and metadata.astro.config.ts and site.config.mts with your own details, and push the repository to trigger the Deploy Astro Site workflow.Place your image files in a new folder under src/gallery/, then update src/gallery/gallery.yaml with the album and image metadata. For a head start, run npm run generate so the script creates the gallery.yaml entries automatically from the files in the directory.
Yes, the template is open source under the MIT License, and the repository includes a LICENSE file. There are no license fees, and you can use it for personal or commercial projects while keeping the license notice.
Yes, a provided GitHub Action named Deploy Astro Site builds the project and publishes it to GitHub Pages. You only need to set the correct site and base values in astro.config.ts for your repository's GitHub Pages domain.
The template uses Astro as the static site framework, TailwindCSS for styling, TypeScript for typed configuration, Sharp for image optimization, and GLightbox for the responsive lightbox gallery. It also includes GitHub Actions workflows for quality checks and deployment.
Basic knowledge of Astro and web development is listed as a prerequisite. Most customization happens in YAML for galleries, TypeScript config files for site settings, and an Astro component for the About page.
