NeuronCanvas
Contribute

Contribute

NeuronCanvas is source-available and built in the open, free for noncommercial use under the PolyForm Noncommercial License, with a paid commercial license available. It only grows one module at a time, so the most valuable contributions right now are focused, well-scoped ones.

Figure 01 - the contribution loop04 stations

01 / 05

Eight things that would genuinely help

This is a small project with one maintainer, so the most useful contributions are the well-scoped ones. Roughly in order of how much difference they make:

Group A - No code required
  1. 01

    Tell me where an explanation fails.

    You read a concept page, hit a paragraph you had to re-read three times, and can say roughly why. Quote the sentence in an issue. This takes two minutes and it's the most valuable thing anyone sends me, because I can't see my own blind spots in material I already understand.

    Open an issue
  2. 02

    Report a broken interaction.

    A slider that won't drag with a stylus, a canvas that overflows on a narrow phone, a colour pair that fails contrast in light mode. Include the device and the browser and it's usually fixable the same week.

    Report a bug
  3. 03

    Check the maths.

    If you know a topic well and an explanation here is imprecise in a way that will mislead someone later, say so, including which simplification is acceptable and which isn't. Correctness complaints get priority over everything else.

    Open an issue
  4. 04

    Draft a concept page.

    Modules are written before they're built. A clear plain-language draft of “what is a convolution kernel,” with notes on what the interactive should let you do, is a real head start even if you never touch the code.

    See the module structure below
Group B - Code
  1. 05

    Build a module.

    Convolutional networks, RNNs, GANs and transformers are all planned and unstarted. Each follows the same component system as Neural Networks, so most of the scaffolding already exists - the work is the teaching, not the plumbing. Open an issue first; scoping this together saves everyone a rewrite.

    Discuss a module
  2. 06

    Improve a shared component.

    Sliders, network canvases and loss charts live in src/components/ui, src/components/viz and src/components/playground. Accessibility, animation and mobile-behaviour fixes here improve every module at once, including the ones that don't exist yet.

    Browse the components
  3. 07

    Fix a rough edge.

    Unclear labels, a confusing control, an interaction that's fine on desktop and awkward on a phone. Small and concrete is the easiest first contribution and always welcome.

    Good first issues
  4. 08

    Translate.

    The concept-page text is short by design, which makes it a good translation target, but i18n support isn't built yet. If translation is what you want to do, say so in an issue; it moves up the queue when someone's actually waiting on it.

    Register interest

02 / 05

Getting it running locally

It's a standard Next.js app with no database, no environment variables, no API keys and no external services. Clone it and it runs.

Terminal
git clone https://github.com/anandsundaramoorthysa/neuroncanvas
cd neuroncanvas
npm install
npm run dev

That's the entire setup - the site comes up on localhost:3000. Every page you can visit is a file under src/app, every reusable piece is under src/components, and the curriculum's structure (module list, page order, groupings) is plain data in src/lib/curriculum. Nothing is generated at build time from anything you can't read.

03 / 05

How a module is put together

Every module is the same three things: an ordered list of pages as data, one file per concept page, and a set of interactive demos those pages embed. Neural Networks is the reference implementation - seventeen pages and eighteen demos - and a new module is a copy of that shape with different content.

Module structure
src/lib/curriculum/
modules.ts module list, taglines, time estimates
neural-networks.ts the 17 pages, in order, each tagged with a group
src/app/learn/[module]/
single-neuron/page.tsx one file per concept page
...
playground/page.tsx the module's full playground
src/components/playground/
SingleNeuronDemo.tsx one component per interactive
... 18 of them for this module

The hard part is never the wiring - the shells, navigation, prev/next and layout all come from shared components. The hard part is deciding the order the ideas go in, and building an interactive that's honest enough to be worth putting on the page. Budget accordingly, and open an issue before you start.

04 / 05

What happens after you open a pull request

Honest expectationsOne reviewer

One person reviews these, in evenings and at weekends, so here are honest expectations. You'll usually hear something within a week. If a change is small and clearly right, it gets merged. If it rewrites how a concept is explained, expect a conversation first - the teaching decisions on this site are deliberate and the reasoning is usually worth talking through before the code changes.

Nothing gets closed without a reason, and "this doesn't fit the direction" counts as a reason I owe you rather than one I get to leave implied. If a pull request has gone quiet for more than two weeks, a nudge on the thread is welcome and not rude.

05 / 05

Licence and conduct

  1. 01

    How contributions are licensed

    NeuronCanvas is dual-licensed: free to read, fork and reuse for noncommercial purposes under the PolyForm Noncommercial License 1.0.0, with a separate paid licence for commercial use. Contributions are covered by the same terms as the rest of the project - CONTRIBUTING.mdhas the exact wording, and it's worth reading before a first pull request rather than after.

    Read CONTRIBUTING.mdRead the licence

  2. 02

    How people are expected to behave

    The project follows a standard code of conduct: be decent to people, assume the person asking a beginner question is exactly who this site is for, and take disagreements about teaching decisions as disagreements about teaching decisions. Report anything that needs reporting through a repository issue.

    Read the Code of Conduct

The best first step is an issue, not a pull request.

Whether you want to build a whole module or you just found one sentence that didn't make sense, starting a thread is the right move - it costs you two minutes and it means nobody builds the same thing twice.