Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Fast, responsive, self-hosted image gallery built with Astro that ships zero client-side JavaScript.

A Hugo theme for building media galleries that mix photos and videoclips in a Pinterest-style vertical layout.
Musée is an open-source, self-hosted image gallery template built on Astro that ships zero client-side JavaScript while preserving a true masonry layout.
Musée is a self-hosted photo gallery template that statically generates a responsive gallery website from a folder of original images. It takes your source images, generates thumbnails, compresses originals, strips metadata during the build, and outputs a site that works fully with JavaScript disabled. The template is built with Astro and styled with TailwindCSS, written in TypeScript, and is authored by obviyus (maintained on GitHub as obviyus/musee). It began as a Remix experiment before being rewritten on Astro, replacing the Ruby-based photo-stream solution the author previously ran.
src/assets/images/original, run bun install and bun run dev, and get a responsive masonry gallery ready for deployment.bun run deploy:personal script.Copy your images into src/assets/images/original (a gitignored directory), run bun install to install dependencies, then bun run dev for development. During the build, Astro pre-calculates masonry column counts per breakpoint, generates thumbnails, compresses originals, and strips metadata — outputting a static site that you can deploy. Files named slug__filename.webp keep slug as the public route; other images receive stable slugs automatically.
Yes. Musée ships zero client-side JavaScript. The masonry layout, lazy-loading behavior, and animations are all pre-rendered at build time and controlled with CSS media queries and pure CSS animations, so the gallery works even with JavaScript disabled in the browser.
Musée is an open-source project hosted on GitHub under the obviyus/musee repository. You can clone it, customize it, and self-host it without paying a license fee. A live demo is available at gallery.obviy.us.
Install the dependencies with bun install, place your original images in src/assets/images/original, then run bun run dev for local development. When you are ready to publish, follow the Astro on Cloudflare Pages documentation and use the provided deploy script.
The build generates thumbnails, compresses the original images, and strips metadata such as EXIF data before deployment. That means location and camera details are not exposed when the site goes live.
Not yet. The repository lists captions, device metadata, and image geo-tag map generation as unchecked roadmap items, so those features are not currently implemented.