Skip to content

gchampeau/dysmaths

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

168 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dysmaths

Dysmaths screenshot:

Dysmaths screenshot

Dysmaths is a web app for writing and organizing math and geometry work in a simpler, more visual way, to be used in school or for homework.

It is designed for children who need extra support with writing, especially children with specific learning differences such as:

  • dyspraxia
  • dysgraphia
  • and other needs that make handwriting or structured notation harder

Dysmaths helps users:

  • write math directly in the browser
  • work with geometry as well as algebra and other math content
  • work with a cleaner, more guided layout
  • use a school-style long division tool
  • edit math blocks without relying on handwriting
  • optionally use a dyslexia-friendly font
  • import an image or a PDF page as the sheet background
  • create multi-page documents
  • import and export documents as .dysmaths files
  • preview math clearly before exporting or printing
  • use the app like a lightweight installable web app

The goal is to make math work less frustrating and more accessible, while keeping it close to the way mathematics is written on paper.

Official website: Official website · Created by Guillaume Champeau

The repository currently includes documentation for the long-division block in docs/division-written.md.

Features

  • browser-based math workspace
  • structured visual math editor
  • long division support
  • multilingual interface
  • export-friendly document generation
  • PWA support

Tech Stack

  • Next.js 15
  • React 19
  • TypeScript
  • next-intl
  • Lexical
  • MathLive
  • KaTeX

Getting Started

Prerequisites

  • Node.js 20 or newer
  • npm

Install

npm install

Run locally

npm run dev

Build for production

npm run build

Start the production server

npm run start

Optional analytics configuration

Umami analytics is optional and only loads in production when both public environment variables are set.

Copy .env.example to .env.local and configure:

NEXT_PUBLIC_UMAMI_SRC=https://umami.your-website.com/script.js
NEXT_PUBLIC_UMAMI_WEBSITE_ID=your-website-id

If these variables are missing, the Umami script is not injected.

Lint the project

npm run lint

Project Structure

  • app/ - Next.js app routes, layouts, manifest, and service worker endpoint
  • components/ - reusable UI and math editing components
  • docs/ - feature documentation
  • i18n/ - locale routing and request configuration
  • messages/ - translation content
  • public/ - static assets, including MathLive fonts
  • scripts/ - project-specific runtime helpers
  • types/ - custom TypeScript declarations

Contributing

Contributions are welcome. Please read CONTRIBS.md before opening a pull request.

License

This project is licensed under the GNU Affero General Public License v3.0. See LICENSE for the full text.

Star History

Star History Chart

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors