Skip to content

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Repository files navigation

Excuse My French

Learn French, freely.

An exercise page: the sentence to transform, written on Seyès paper

A French grammar exercise generator (sentence transformation, conjugation, pronouns, negation, dictation, vocabulary) built around an engine that produces exercises endlessly, finds your weak points, and picks exactly what you should work on next. In your browser, and nowhere else.

A flashcard: a picture and four French words A dictation: a Listen button and a line to fill
My weaknesses: exercises to revisit, with the dominant error type Adaptive practice: session length and the target success rate

By notion: mastery measured notion by notion


Use the hosted app:

APP: https://excusemyfrench.org/

Or install locally:

npm install
npx playwright install chromium   # once, for the tests
npm run dev                       # http://localhost:5173/
npm test                          # the Playwright suite

The pedagogical content, exercises, dictionary, conjugations, vocabulary, notions, explanations, lives in content/ as JSON and Markdown: readable, editable, and reusable without touching the engine.

The architecture is described in CLAUDE.md.

The values

  • Made with love: first for one person, then for everyone.
  • Open source: obvious here
  • Local first: your progress stays in your browser as long as you decide it to, and most of the app works with no internet connection (you can use it as a PWA)
  • AI/ML for good: your level is estimated statistically; weaknesses are detected per grammar concept; the exercises offered are neither too hard nor too easy.
  • Learning over retention: no mechanic that optimises time spent in the app without serving the learning. Your dopamine is precious; save it for learning.

Licences

Everything under content/ is CC BY-SA 4.0. Everything else in this repository is AGPL-3.0-or-later.

content/ is the pedagogical corpus: exercises, dictionary, conjugations, vocabulary, notions, placement questions and explanations. It is published as-is into dist/content/ at build time, to be read and reused without the engine. The rest, the generation engine, the analysis, the interface and the tooling, is software: a software licence fits it, and a Creative Commons licence does not, as Creative Commons itself recommends.

One architectural invariant keeps the boundary legible: human-authored educational material meant to be shown or reproduced as content belongs in content/. Algorithms may of course carry linguistic rules; nobody chases a constant or an if.

Material the app produces, generated exercises and sentences, printed worksheets, is made available under CC BY-SA 4.0, to the extent that any rights subsist in it. A worksheet printed for a class is the teacher's.

  • LICENSE: GNU AGPL v3 or later, for the software.
  • content/LICENSE: CC BY-SA 4.0, for the corpus.
  • package.json declares AGPL-3.0-or-later: that field describes the package, and the corpus exception is the one stated here.

Contributions are accepted under the licence of the files they touch: CC BY-SA 4.0 for content/, AGPL-3.0-or-later everywhere else. No copyright assignment, no CLA. To date the author is the sole copyright holder of the project.

Credits

OpenMoji the flashcard and vocabulary pictures CC BY-SA 4.0
Handlee the handwriting on the exercise page SIL Open Font License 1.1
Bootstrap 4 the CSS base MIT
React the interface MIT

The first two are vendored in the repository rather than loaded from a CDN, so the app works offline and tells no one which exercise you are doing. Their licences travel with them, in public/openmoji/LICENSE.txt and public/fonts/Handlee-OFL.txt.


Hoping you enjoy Excuse My French, and that it serves you well.

Onur Çelebi

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages