Open-source project
stared/interactive-machine-learning-list avatar
stared/interactive-machine-learning-list

interactive-machine-learning-list: A Vue Catalogue of Browser-Based ML Demos

A collaborative list of interactive Machine Learning, Deep Learning and Statistics websites

453 stars43 forksJavaScriptMIT

At a glance

What is it?
A no-build Vue site that renders a hand-curated YAML list of interactive machine learning, deep learning and statistics websites. The useful part is the taxonomy and the contribution path; the weak part is that the project is still deciding what belongs on it.
Who is it for?
Adopt it if you want a single page to point students or colleagues at browser-based ML demos, or if you want a small Vue project to fork and re-theme. Do not adopt it if you need a maintained, deduplicated directory with editorial review, because the README itself lists descriptions, sorting and refactoring as outstanding to-dos.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Activity is slowing. The repository last received commits 6 months ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem: interactive ML demos are scattered and hard to find

Interactive explanations of machine learning live in a lot of places: personal sites, university course pages, Google experiment collections, Distill articles, and one-off JavaScript toys. There is no registry. Someone who wants to show a colleague how gradient descent behaves, or how a neural network classifies a handwritten digit, ends up searching and bookmarking. That is the gap this project addresses. It collects links to interactive Machine Learning, Deep Learning and Statistics websites and presents them as one browsable page.

The audience is narrow and specific. It is for teachers assembling course material, for engineers who want to see an algorithm move instead of reading its equations, and for people building their own visualizations who want to know what already exists. The README says the list was started by Piotr Migdał and that anyone is encouraged to contribute, so the second audience is contributors: people who find a good demo and want it listed.

How the site works: YAML in, Vue out, no build step

The README describes the project as "a simple no-build Vue.js website". That phrase is the architecture. There is no bundler in the described workflow: Vue is loaded in the browser, and the content lives in a separate data file, websites.yaml. The README links directly to that file as the place to send pull requests, which means the list and the presentation are decoupled. Editing the catalogue does not require touching component code.

The repository lists Vue among its topics, and the homepage is hosted at p.migdal.pl/interactive-machine-learning-list/. The README credits the main layout and styling to Jakub Fogel. So the data flow is short: a contributor edits websites.yaml, a maintainer merges, and the deployed page reads the updated file. There is no database, no API layer, and no server-side rendering described anywhere in the material.

One field is visible in the README: uses. Entries that depend on a backend are supposed to be tagged with backend-dependent in that field. That is the only schema detail the supplied material confirms. Everything else about the YAML shape (titles, URLs, tags, descriptions) is not shown here, so anyone planning to contribute should read the file itself rather than infer the format from this description.

Getting it running and adding an entry

The material does not include install instructions, a package.json listing, or a documented dev command. The README gives one concrete action: open websites.yaml and submit a pull request. Because the site is described as no-build, the likely local workflow is to serve the directory over a static file server and open the HTML entry point in a browser, but that is an inference from the no-build description, not a command the README states. Treat any specific npm script as unverified until you check the repository.

For contributions, the README sets two conditions. First, the thing should have didactic value, with the stated reasoning that otherwise every service using ML would qualify. Second, front-end JavaScript running in the browser is the clear case; backend-dependent entries are accepted but the README says the author is "still debating" and leans toward being more inclusive. The tag for those entries is backend-dependent, placed in uses.

There is also a preference, explicitly not a requirement, for open-source solutions, on the grounds that people can reuse and learn from the code. The README adds a nuance worth reading twice: mention the repo and open source license only when it is directly relevant, as opposed to additional materials such as exercises for a book or a Python algorithm. That is a real editorial rule, and it is the kind of rule that gets ignored in pull requests.

The inclusion criteria are still a draft, and that shows

The most honest sentence in the README is the one under What goes there?: "Still I am thinking what is the best criterion." A list whose boundary is undecided will drift. Backend-dependent entries are admitted on a didactic-value test, and didactic value is a judgement call with no written rubric. Two reviewers can disagree about the same submission and both be right by the text as written.

The to-do list reinforces this. Descriptions of sites are listed as outstanding, which means entries may appear as links without explanation. Sorting is listed as an open question, with alphabetical offered as a candidate. A share button and code refactoring are also on the list. None of that is fatal for a personal collection, but it does mean the project should not be treated as a finished reference. It is a working list.

A second limitation is structural: a curated link list has no link checker described in the material. Interactive demos are frequently hosted on personal domains and course pages that move or disappear. Nothing in the README indicates automated verification that listed URLs still resolve, so a reader should expect some entries to be stale and should not assume the list is periodically audited.

How it differs from Explorable Explanations and Distill

The README points to several adjacent projects, and the differences matter. Explorable Explanations and Explained Visually are curated collections in the same spirit, but they are editorial sites with their own publishing voice. This project is a data file plus a viewer, which is why the contribution path is a YAML pull request rather than a pitch to an editor.

Distill is a different animal entirely. It is a journal that publishes interactive articles with peer review and its own format conventions. If you want one well-produced explanation of a topic, Distill is the better destination. If you want a broad index of what exists across many sources, the YAML list covers more ground with less depth per entry.

The README also cites Kaggle Past Solutions and D3 Discovery as inspirations for collecting and displaying content. Both are searchable compilations, and D3 Discovery in particular is a discovery tool for a plugin ecosystem. The comparison is useful because it exposes what this project has not built yet: search. The README lists sorting as a to-do and says nothing about a search box, so the current experience is closer to a browsable page than to a queryable index.

Maintenance cost and the MIT licence

The repository is MIT licensed, which is the permissive end of the spectrum: reuse, modification and redistribution are allowed with the licence and copyright notice preserved. For anyone forking the site to build a course-specific list, that is the relevant permission. This is a description of the licence text, not legal advice; if the list is going into a commercial product or a course with its own legal review, have that review done by someone qualified.

The maintenance burden sits in two places. First, the YAML file grows and needs deduplication and pruning, and the README's unresolved questions about criteria and sorting make that job harder than it needs to be. Second, the site itself is described as no-build Vue, which keeps the toolchain small but pushes complexity into the browser and makes it harder to add features like search or filtering without rethinking the setup. The to-do item labelled code refactoring acknowledges this.

The last push recorded for the repository is 2026-03-15, and no releases were retrieved. There is no versioned release channel to track, so an adopter is following the master branch. That is normal for a static site and also means there is no changelog to read before pulling changes.

Who should use it, and what to check first

Use it if you are assembling reading material for a machine learning course and want a starting set of interactive demos, or if you want a small Vue project whose content is a single YAML file and whose structure you can re-theme. The MIT licence makes the second use case straightforward. The no-build setup means you can inspect the whole thing in a browser without a toolchain.

Do not use it as a canonical directory. It is a collaborative list with undecided inclusion criteria, missing descriptions, and no described link checking. If your requirement is that every entry is verified and annotated, this project does not currently promise that, and the README's own to-do list says so.

Before adopting, do three things. Open websites.yaml and read the actual entry schema, since only the uses field is documented in the README. Check whether the deployed page at p.migdal.pl/interactive-machine-learning-list/ matches master, because there is no release tag to pin. And decide whether you are contributing back or forking, because the README's stated preference for open-source entries and its rule about when to mention a licence will shape what your own list looks like if you keep the same criteria.

Editorial conclusion

Adopt it if you want a single page to point students or colleagues at browser-based ML demos, or if you want a small Vue project to fork and re-theme. Do not adopt it if you need a maintained, deduplicated directory with editorial review, because the README itself lists descriptions, sorting and refactoring as outstanding to-dos. Before relying on it, open websites.yaml and check whether the categories and the uses field match what you need, then verify the deployed page at p.migdal.pl/interactive-machine-learning-list/ still builds from master.

Official sources

  1. Issues
  2. License: MIT
  3. Project website
  4. README
  5. stared/interactive-machine-learning-list on GitHub
Community notes

Community notes