npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gallery-server

v1.8.2

Published

Beautiful and powerful yet simple local image viewer on your PC or mobile.

Downloads

51

Readme

Beautiful Local Image Viewer

Beautiful and powerful yet simple local image viewer on your PC or mobile.

中文版文档

Install 🆓

No installment required!

Use 🌱

  1. Serve the local photos.
bunx gallery-server --folder /path/to/photos --no-footer

or:

pnpx gallery-server --folder /path/to/photos
npx gallery-server --folder /path/to/photos

For more usage:

bunx gallery-server -h
  1. Open http://localhost:xxxx/ in your favorite browser or share with your friends http://a.b.c.d:xxxx?token=${token}.

Enjoy on PC 💻

demo-page-album

Enjoy on Mobile Phone 📱

Photos from pixabay API of Yosemite.

Features 🌟

  1. 📱 Photos in your PC can be viewed in your mobile phone's browser! So your can download photos on your PC to mobile phone.
  2. 🔐 Security on privacy to prevent eavesdropping. API or images without token are forbidden, but you can still share with your friends by sending him the token.
  3. 🎭 Light and dark theme.
  4. 🎞️ Videos also supported!
  5. 🖼️ More than one galleries can be served at the same time.
  6. 📚 A lot of gallery features. Check it at react-images.

Technical features

  • It is both a server and a client application, as well as a command-line application!
  • Tech stack:
    • pnpm v9, Node.js v22 (builtin --watch 🎉),
    • ESLint v9, Biome v2 (for formatting instead of Prettier), Bun v1.2 (for test),
    • Vite v7,
    • TypeScript v5, Koa v2.

FAQ 🙋‍♂️

  1. Q: Why 403 forbidden

    {
      "code": 403,
      "message": "Forbidden. `token` required. Please redirect to https://github.com/legend80s/gallery-server#faq for more information."
    }
    • A: You see this message because you are not the gallery owner. Ask the owner for the token and append it to the resource URL.
  2. Photos in node_modules will be ignored for performance.

Develop 👨‍💻

  1. install
pnpm i
  1. start api server
pnpm dev:server --folder='/path/to/photos'
# pnpm ds --folder='/path/to/photos'
  1. start webpack devServer
pnpm dev:client
# pnpm dc

Notice: Install all the dependencies into ./package.json's devDependencies not ./client/package.json. The package.json in client exits only for scripts

For example if you want change to another gallery (react-bnb-gallery):

# enter project root not ./client/
cd project_root

pnpm install --save-dev react-bnb-gallery

# start webpack devServer
pnpm dev:client

# start api server
pnpm dev:server -- --folder=/path/to/photos

Publish 📦

pnpm version patch / minor / major

Run tests 🧪

pnpm test

Author 👤

👤 legend80s

🤝 Contributing

Contributions, issues and feature requests are welcome!

Feel free to check issues page.

Todos ☑️

  • [x] Any port. use unoccupied port.
  • [ ] Build with remote client to support a wide range of client gallery.
  • [x] Use network IP. mimic create-react-app.
  • [x] Show help Information on cli -v -h.
  • [x] Viewable on mobile.
  • [x] Adapt to mobile.
  • [ ] Image lazy load.
  • [x] Security on privacy. only url with token is shareable.
  • [x] Port customizable.
  • [x] Token customizable.
  • [x] Serve multiple folders in one cmd.
  • [x] Token can be optional when viewed on owner's browser.
  • [ ] Electron App.
  • [x] npm to pnpm.
  • [x] Node.js v16 to v22 (LTS 2025-7-10).
  • [ ] ~~Koa v2 to v3.~~ No migration because nothing big changed.
  • [x] ~~React v16 → React v19~~. No migration to React.js v19 because react-images and react-photo-gallery are not v19 supported and not maintained.
  • [x] Webpack v4 → Vite v7: Performance gain build 26s5s.
  • [ ] Show thumbnail for first render performance.
  • [ ] Next.js.
  • [ ] TRPC - share backend request typings with client.
  • [ ] FastAPI python.
  • [ ] Save UI state (theme) to server using sqlite.

Show your support ⭐️

Give a ⭐️ if this project helped you!


This README was generated with ❤️ by readme-md-generator