Skip to content
/ musee Public

Fast, responsive , self-hosted image gallery. Ships minimal JS to the client.

License

Notifications You must be signed in to change notification settings

obviyus/musee

Repository files navigation

Logo

Musée

GitHub package.json version Website GitHub commit activity

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.

demo

[ Live Demo ]

✨ Features

  • 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

📸 Live Examples

Feel free to make a PR to add your own.

🏗 Development

  1. Install dependencies.
$ npm install

Load your images in the src/assets/images/original directory.

  1. Start development server
$ npm run dev

🚀 Deployment

Deployment (for now) is done to Cloudflare Pages. Documentation is available here: https://developers.cloudflare.com/pages/framework-guides/astro/

Contributing

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.