Mathigon Open Source

Help us build the future of education!

Open Source Libraries

These JavaScript libraries power Mathigon, and maybe they are also useful for your own projects.


JavaScript utility function and classes, including array and string helper functions, type checking and event classes.


Powerful mathematics, statistics and geometry library, containing everything from number theory to random numbers, expression parsing and linear algebra classes.


Simplifying browser APIs – from DOM manipulation to web components, event handling, animations, routing, multi-threading and AJAX requests.

Open Educational Resources

All our textbook chapters are open source. You can browse the code on GitHub, or run your own local server to preview changes or additions (instructions). Every chapter consists of a few different components, which are documented here:


Mathigon’s content is written in a special flavour of Markdown that makes it very easy to add interactivity, styling and custom markup.

Step Functions

Every step in a chapter can be linked to custom JavaScript code that sets up interactivity, events or personalisation.

Other Components

There are many other components: styling, glossaries, biographies, hints, and more.

Contribute to Mathigon

We welcome additions, corrections or other contributions from the community! Please contact us if you have any questions, or ideas what you want to work on.

To make any changes you need to create a GitHub account. Then you can send us Pull Requests with your changes, which we'll review and deploy. If you are unfamiliar with Git, start by reading about how to set up Git on your computer, and how to contribute code to public repos.

There are also non-technical ways to support Mathigon: from marketing and publicity to testing, and proof-reading new content.

One of the most requested features is translations into other languages. Due to technical challenges this is not possible at the moment, but it's definitely on our roadmap for the future.