Skip to content

Of Mixing and Matching

Mix’n’match is one of my more popular tools. It has grown over the years in both functionality and data size. It currently contains >260M entries in over 6300 catalogs. The code base has been growing organically with the data size. I felt it was time to modernize some things.

First, the speed. Some pages, most notably the landing page, would load details on all active catalogs in the database. On every load. This was not sustainable. The updated version has some layout simplification, but shows the same information as before, and reduces the (uncached) loading time from ~35 to 1.8 seconds (YMMV).

The interface was updated to bootstrap5, and many interfaces have ever so slightly changed, for the better I think.

I have also taken pains to support mobile better. This includes moving the “mobile game” from its own, separate site to integrate into Mix’n’match.

Finally, under the hood, this is my first tool where I moved from my home-grown Vue module loading system to proper ES6 components. While this will make little difference to users, it is an important step towards maintainability. It also allowed me to write JavaScript unit tests.

Please give the new version a spin, and let me know about issues and suggestions in the issue tracker.

One Comment

  1. CesarB wrote:

    When I now open the site, it just shows
    ✕ Request failed: error loading dynamically imported module: https://mix-n-match.toolforge.org/vue-components/site_stats.js

    Friday, March 27, 2026 at 20:27 | Permalink