alexsparkes 4d508b8ae3 fix(background): fix api pack cache cycling and stuck empty packs
- Increase concurrent fetches from 8 to 20 per cache refresh for
  a larger, more varied photo pool
- Deduplicate photos by URL before storing so concurrent random
  fetches don't fill the cache with the same image
- On fetch failure, still update timestamps and add pack to
  api_packs_ready so checkAndRefreshAPIPacks retries it on the
  next cycle instead of leaving it stuck at photos:[] forever
- checkAndRefreshAPIPacks now also picks up packs in api_pack_cache
  with 0 photos that were never added to api_packs_ready (covers
  packs that failed their initial install-time fetch)
- Raise the low-water refresh threshold from 3 to 5 photos to
  match the new queue size

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-04 19:18:10 +01:00

Mue Header

Mue

A fast, open and free-to-use browser extension that gives a new, fresh and customisable tab page to modern browsers.

muetab.com

Chrome Edge Firefox

🤔 Why Mue?

  • Beautiful and Minimalist Design
  • Customisable Layout
  • Widgets (such as weather, notes, bookmarks and more)
  • Privacy-Focused - does not track your browsing activity
  • Extensible with the Mue Marketplace
  • Open Source under the BSD-3 License

🌶️ Installation

Mue can be downloaded on the following browsers:

and can be manually sideloaded on others using the files on GitHub Releases

🚀 Demo

A fully-featured demo of the tab extension is available in-browser at demo.muetab.com

💻 Development

Install dependencies with bun install, and then you can run any of the following scripts as needed:

  • bun run dev[:host] - start development server
  • bun run build - build production copy of Mue
  • bun run lint[:fix] - run linter
  • bun run pretty - run prettier
  • bun run translations - migrate old translation format to new
  • bun run translations:percentages - update translation completion percentages from Weblate

Contributing

We welcome contributions! Please read CONTRIBUTING.md for guidelines on:

  • Development workflow
  • Branch strategy (dev → beta → main)
  • Commit message format
  • Pull request process

For maintainers, see docs/RELEASE_PROCESS.md for release procedures.

🐳 Docker development

Hot reload is available while coding.

  • docker build -t mue-app . - build the image

  • docker volume create dev-bun-app - create a volume for the app

  • docker run -p 5173:5173 mue-app - run the container

  • docker run -p 5173:5173 \ -v $(pwd):/app \ -v dev-bun-app:/app/node_modules \ mue-app - run the container

Navigate to http://localhost:5173

🌍 Translations

We use Weblate for translations. To get started, please visit the project and look for the latest version to start translating Mue into your langauge.

Attribution

Pexels, Unsplash - Stock photos used for offline mode
Undraw - Welcome modal images

Languages
JavaScript 78.8%
SCSS 19.7%
HTML 0.7%
Swift 0.5%
CSS 0.3%