Fast, responsive, self-hosted image gallery. Ships minimal JS to the client.
Musée (pronounced myu-zay) was written primarily to experiment around with https://remix.run/ but now re-written using https://astro.build. Until now I had been using the _ excellent_ waschinski/photo-stream
gallery for hosting my images but felt limited with having to use Ruby. The eventual goal of Musée is to ship ZERO client side JS to the client while maintaining the masonry layout.
Unfortunately, a responsive masonry layout is not possible without the use of client-side JS to determine the window size (used for calculating the number of columns). At least until CSS Grid Masonry becomes available.
- Generate image thumbnails
- Compress original images
- Strip image metadata before deployment
- Typescript support
- Statically Generated
- Uses TailwindCSS
- OpenGraph meta tags
- Captions for images
- Device metadata for images
- Image geo-tag map generation
Feel free to make a PR to add your own.
- Install dependencies.
$ npm install
Load your images in the src/assets/images/original
directory.
- Start development server
$ npm run dev
Deployment (for now) is done to Cloudflare Pages. Documentation is available here: https://developers.cloudflare.com/pages/framework-guides/astro/
I'm relatively inexperienced with React so any and all contributions are welcome.
This repository uses the automated semantic-release
suite of tools to generate version numbers. All commit messages must conform to the Angular Commit Message conventions.