Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A customizable, responsive image portfolio website template, built with Eleventy and Tina CMS.

Modern responsive portfolio and blog theme for Hugo, styled with Tailwind CSS 4.x, featuring accordion sections and Pagefind search.
Halide is a static image portfolio website template for photographers and visual artists, built with Eleventy and Tina CMS and ready for one-click deployment to Netlify.
Halide is a minimal, responsive image portfolio website template that generates static HTML from Markdown and YAML content using the Eleventy static site generator. It takes project entries written as Markdown files with YAML frontmatter and source images in JPEG format, then outputs a fast, framework-free site with responsive images in AVIF, WebP, and JPEG formats. The template is maintained by Dan Urbanowicz and is published under the MIT license.
/projects and global settings in _data/settings.yaml.srcset and sizes attributes in the generated <picture> markup./admin/ interface with GitHub as the content store, or skip CMS and edit Markdown/YAML directly.settings.yaml; dark mode is included.Halide stores project content as Markdown files in /projects and source images in /assets/uploads. On build, Eleventy processes each source image with the Eleventy Image plugin to create up to 12 resized and reformatted variants (JPEG, WebP, AVIF), caches the generated images, and outputs a static site to the _site folder. Settings like site metadata, image widths, and whether to enable AVIF live in _data/settings.yaml; the Tina CMS admin at /admin/ edits the same content through a visual interface backed by GitHub.
Yes, Halide is open source under the MIT license. The required third-party services — GitHub, Netlify, and Tina Cloud — each offer free plans sufficient for typical portfolio sites.
No. You can edit _data/settings.yaml and create project .md files manually. You would then change the Netlify build command from the Tina CMS wrapper to plain eleventy and run npx eleventy --serve locally.
The first build (or any rebuild after clearing the image cache) can be slow because Halide can generate up to 12 image variants per source image, and AVIF encoding is resource-intensive. Disabling AVIF in settings.yaml is a workaround to speed it up.
No. Only source images are checked into git. Generated responsive variants are cached between builds on Netlify; if the cache expires, they are regenerated from the source automatically.
