Back to rankings

kantord/LibreLingo

Pythonlibrelingo.app

๐Ÿข ๐ŸŒŽ ๐Ÿ“š a community-owned language-learning platform

language-learningeducationforeign-languagespaced-repetitionsecond-language-acquisitionflashcardssvelteagplv3hacktoberfestpythonhacktoberfest2022
Star Growth
Stars
2.6k
Forks
257
Weekly Growth
โ€”
Issues
167
1k2k
Feb 2020Mar 2022May 2024Jul 2026
ArtifactsPyPIpip install librelingo
README

[!IMPORTANT] The repository will be archived until further notice. I am currently not maintaining LibreLingo. A few better-maintained forks exists, such as LibreLingoRelive. I am not directly affiliated with that fork or any other fork.



LibreLingo
a community-owned language-learning platform


This project is using Percy.io for visual regression testing. GitHub release (latest by date) Build status Matrix call Mastodon

About

LibreLingo's mission is to create a modern language-learning platform that is owned by the community of its users. All software is licensed under AGPLv3, which guarantees the freedom to run, study, share, and modify the software. Course authors are encouraged to release their courses with free licenses.

If you want to know why I built LibreLingo, I recommend reading my article on dev.to.

Table of Contents
  1. About
  2. Using LibreLingo
  3. Developing LibreLingo
  4. Milestones
  5. Roadmap
  6. Contribution
  7. License
  8. See also
  9. Donate

Using LibreLingo

Web app

LibreLingo offers an official web app, which is very lightweight and written in Javascript using Svelte framework and pouchDB by the way, to try out LibreLingo courses interactively right in your browser, no installation required!

Features

  • :bow_and_arrow: practice using interactive exercises
  • :juggling_person: spaced repetition
  • :bar_chart: save and monitor progress
  • :arrows_counterclockwise: synchronise progress across multiple devices
  • :iphone: works on various devices such as phones, tablets and desktop computers
  • :people_holding_hands: owned by you, the community
  • :dove: most courses are free, as in freedom and also as in beer

Screenshots

librelingo-yaml-loader

librelingo-yaml-loader is a Python ๐Ÿ package that lets you load LibreLingo courses to create software based on LibreLingo. To see an extensive tutorial, check out this article.

Setup

librelingo-yaml-loader can be installed using pip:

pip install librelingo-yaml-loader

Loading courses in a Python program

You can use librelingo-yaml-loader to load YAML-based LibreLingo courses in your Python program.

from librelingo_yaml_loader import yaml_loader

course = yaml_loader.load_course("./path/to/my/course")

load_course returns a Course() object.

librelingo-json-export

librelingo-json-export is a Python ๐Ÿ package that contains modules that let's you export LibreLingo courses into JSON files that will be read by the web app. This might be useful if you want to deploy YAML-based LibreLingo courses as a web app.

Setup

librelingo-json-export can be installed using pip:

pip install librelingo-json-export

Exporting courses to JSON

librelingo-json-export has a command line program that can export YAML-based LibreLingo courses into the JSON format used by the web app.

Usage:
  cli.py [OPTIONS] INPUT_PATH OUTPUT_PATH
    Convert a YAML course into a JSON course.
Options:
  --dry-run / --no-dry-run --help
    Show this message and exit.

Developing LibreLingo

Want to contribute to LibreLingo? Or create your own fork? Perhaps you want to use it in your creative project?

To get started with running the development environment on your computer and understanding the software architecture, head to our development documentation.

Milestones

  • ๐Ÿ Demo course content in Spanish for English speakers
  • ๐Ÿ Some basic building blocks of course content implemented
  • ๐Ÿ Developers can use course editor
  • ๐Ÿ Basic theme/branding
  • ๐Ÿ Course progress can be properly synchronised across devices
  • ๐Ÿ Course editor can be accessed by all course contributors
  • ๐Ÿ At least the basics of the Spanish course are ready
  • ๐Ÿ Most of the course building blocks are implemented
  • ๐Ÿ All of the basic building blocks of courses are implemented
  • ๐Ÿ Spaced repetition implemented

Roadmap

  • Officially releasing Basque course
  • Make it possible to contribute to courses through GitHub
  • Improving course creation UX over Github

Projects

Contribution

Become a contributor

are you a developer?

You can help LibreLingo by testing it and submitting feature requests or bug reports: here. If you want to get in touch, you can use my contact details on my GitHub profile. Go through the dev docs here.

Still got questions? Our Matrix/FreeNode IRC channel is #LibreLingo, join the dev community there and feel free to ask anything.

  • Matrix: #LibreLingo on matrix.org
  • IRC: connect to irc.freenode.net with your favourite client and join #LibreLingo

are you a linguaphile?

Learning new language is an awesome experience right? If you wanna let others experience that too, make a course on LibreLingo! Get started here.

We are working on the process of creating courses, to make it more streamlined, if you have an idea to make it better, do share with us, create an issue. Note: You are always encouraged to release the courses under a free license.

are you a wordsmith?

Translate the LibreLingo UI(LLUI) to make it more accessible, you can start here.

Attributions

Mascot

The mascot is designed by @almostdesigner.

Creative Commons License
Mascot images are released under Creative Commons Attribution-ShareAlike 4.0 International License.

Contributors

All Contributors

Thanks goes to these wonderful people (emoji key):

Daniel Kantor
Daniel Kantor

๐Ÿ’ป
Klemen Skerbiลก
Klemen Skerbiลก

๐Ÿค”
Mirek Mazel
Mirek Mazel

๐Ÿค”
Chris Babcock
Chris Babcock

๐Ÿค”
Liaizon Wakest
Liaizon Wakest

๐Ÿค”
Trolli Schmittlauch
Trolli Schmittlauch

๐Ÿค”
Jรฉrรดme Deuchnord
Jรฉrรดme Deuchnord

๐Ÿค”
Felix Ableitner
Felix Ableitner

๐Ÿ›
Navan Chauhan
Navan Chauhan

๐Ÿš‡ ๐Ÿ’ป ๐ŸŽจ ๐Ÿ“–
Roshan Jossy
Roshan Jossy

๐Ÿค” ๐Ÿ’ป ๐Ÿ“–
ledgelight
ledgelight

๐Ÿค”
Francis Tyers
Francis Tyers

๐Ÿค” ๐Ÿ“–
titanix
titanix

๐Ÿค”
Michael Moroni
Michael Moroni

๐ŸŒ
pssandhu
pssandhu

๐ŸŽจ
Stefan Lobbenmeier
Stefan Lobbenmeier

๐Ÿ›
kylepollina
kylepollina

๐Ÿ’ป
slesingerm
slesingerm

๐Ÿค” ๐Ÿ› ๐Ÿ‘€
iasonasma
iasonasma

๐Ÿ’ป โš ๏ธ
Caroline Delesalle
Caroline Delesalle

๐ŸŽจ
borbota
borbota

๐Ÿ›
decentral1se
decentral1se

๐Ÿ“– ๐Ÿค”
James Adams
James Adams

๐Ÿ›
Arnold Schrijver
Arnold Schrijver

๐Ÿค”
Dale Visser
Dale Visser

๐Ÿ›
oscarfrancois
oscarfrancois

๐Ÿ“–
dhelmr
dhelmr

๐Ÿ’ป
Matt
Matt

๐Ÿ‘€ ๐Ÿ› ๐Ÿšง ๐Ÿ’ป ๐Ÿ“–
Jean-Andrรฉ Santoni
Jean-Andrรฉ Santoni

๐Ÿค” ๐Ÿ“– ๐ŸŽจ
Lucas Campos Teixeira e Nascimento
Lucas Campos Teixeira e Nascimento

๐Ÿ“– ๐Ÿค” ๐Ÿ›
Pooja Desur
Pooja Desur

๐Ÿ“–
Wesley Mutwiri
Wesley Mutwiri

๐Ÿ’ป
Simon B.
Simon B.

๐Ÿค”
Karthik Shetty
Karthik Shetty

๐Ÿšง
Joshua Ide
Joshua Ide

๐Ÿ’ป
Jobe Dylbas
Jobe Dylbas

๐Ÿ’ป
Dรกvid Kristiรกn Luteranฤรญk
Dรกvid Kristiรกn Luteranฤรญk

๐Ÿค” ๐Ÿ’ป
Sai Sandeep Mutyala
Sai Sandeep Mutyala

๐Ÿ’ป
Artur Bauer
Artur Bauer

๐Ÿ’ป
Etza
Etza

๐Ÿ’ป
Kyle Mumma
Kyle Mumma

๐Ÿ’ป ๐Ÿค”
zinovik
zinovik

๐Ÿ’ป
Himank Pathak
Himank Pathak

๐Ÿ’ป ๐Ÿ›
x4th
x4th

๐Ÿ’ป
Christian Dimas
Christian Dimas

๐Ÿ’ป
Marco Ciampa
Marco Ciampa

๐Ÿ›
Joshua | DC7IA
Joshua | DC7IA

๐Ÿ›
Reyzadren
Reyzadren

๐Ÿค”
Andreas
Andreas

๐Ÿ“–
Marco H
Marco H

๐Ÿ–‹
Dan OReilly
Dan OReilly

๐Ÿค”
Douglas Ferlini
Douglas Ferlini

๐Ÿ’ป
Michael Nock
Michael Nock

๐Ÿ’ป ๐Ÿค”
davidak
davidak

๐Ÿค”
adnan360
adnan360

๐Ÿ–‹ ๐Ÿค” ๐Ÿ“–
Lamdarer
Lamdarer

๐Ÿ“–
Luther
Luther

๐Ÿค”
Nart Tlisha
Nart Tlisha

๐Ÿ›
Binyamin Aron Green
Binyamin Aron Green

๐Ÿ“–
Stรฉphane Guillou
Stรฉphane Guillou

๐Ÿค”
Mohammad-Ali A'Rร‚BI
Mohammad-Ali A'Rร‚BI

๐Ÿ–‹
RGBradley
RGBradley

๐Ÿ–‹ ๐Ÿค”
Cameron Radmore
Cameron Radmore

๐Ÿ–‹ ๐Ÿ’ป
Zeb Burke-Conte
Zeb Burke-Conte

๐Ÿ“– ๐Ÿ’ป ๐Ÿ›
Florian CUNY
Florian CUNY

๐Ÿค”
uberstar100
uberstar100

๐Ÿค”
Gabe D
Gabe D

๐Ÿ› ๐Ÿ’ป
Ekaterina Mozheiko
Ekaterina Mozheiko

๐Ÿ’ป
Gerardo Alcantara
Gerardo Alcantara

๐Ÿ’ป
JP Damas
JP Damas

๐Ÿ’ป
frostedkitsune
frostedkitsune

๐Ÿค” ๐Ÿ“–
sinhalaquiz
sinhalaquiz

๐Ÿ› ๐Ÿ’ป
Peter Cruckshank
Peter Cruckshank

๐Ÿ’ป
Gabor Szabo
Gabor Szabo

๐Ÿ› ๐Ÿ’ป ๐Ÿค” ๐Ÿ“–
dimkard
dimkard

๐Ÿ’ป
Dushyant Bhardwaj
Dushyant Bhardwaj

๐Ÿ’ป
Piotr Idzik
Piotr Idzik

๐Ÿ’ป
Amine Louzar
Amine Louzar

๐Ÿ’ป
Najmieh Sadat Safarabadi
Najmieh Sadat Safarabadi

๐Ÿ’ป
Ben
Ben

๐Ÿ–‹
CutThroat
CutThroat

๐Ÿ’ป
Rodrigo Pova
Rodrigo Pova

๐Ÿ’ป
Yulia
Yulia

๐Ÿ’ป
Sandra
Sandra

๐ŸŽจ ๐Ÿ’ป
Daniel Gallagher
Daniel Gallagher

๐Ÿ’ป
Frey0-0
Frey0-0

๐Ÿ’ป
rsk2
rsk2

๐Ÿ’ป
Joel Niemelรค
Joel Niemelรค

๐Ÿ“–
Jeremy Kenny
Jeremy Kenny

๐Ÿ’ป
Abbi-Hackbardt
Abbi-Hackbardt

๐Ÿ’ป
Daniel Moreno
Daniel Moreno

๐Ÿ’ป
Bianca Davies
Bianca Davies

๐Ÿ“–

This project follows the all-contributors specification. Contributions of any kind welcome!

Contributors who don't have a GitHub account.

Since All Contributors relies on GitHub accounts to show user info, it's not possible to use it to credit people who don't have a GitHub account. This place is intended as a list of people who contributed without registering for a GitHub account.

License

LibreLingo is licensed under the AGPL-3.0 license. In addition, course content and other creative content might be licensed under different licenses, such as CC. This image shows a summary of the licensing of our dependencies:

FOSSA Status

See also

  • omnilingo, listening-based language learning

Help us to keep going

Related repositories
mengxi-ream/read-frog

๐Ÿธ Read Frog - Open Source Immersive Translate | ๐Ÿธ ้™ช่ฏป่›™ - ๅผ€ๆบๆฒ‰ๆตธๅผ็ฟป่ฏ‘

TypeScriptnpmGNU General Public License v3.0browser-extensionchrome-extension
readfrog.app
8.6k589
microsoft/ailab

Experience, Learn and Code the latest breakthrough innovations with Microsoft AI

C#MIT Licensecomputer-visioncustom-vision
ailab.microsoft.com/experiments/
7.8k1.4k
cheatsnake/backend-cheats

๐Ÿ“ƒ White paper for Backend developers

MIT Licensebackendcheat-sheets
5k508
umlx5h/LLPlayer

The media player for language learning, with dual subtitles, AI-generated subtitles, real-time translation, and more!

C#GNU General Public License v3.0asrwhisper
llplayer.com
3.9k229
lingdojo/kana-dojo

Aesthetic, minimalist platform for learning Japanese inspired by Duolingo and Monkeytype, built with Next.js and sponsored by Vercel. Beginner-friendly with plenty of good first issues - all contributions are welcome!

TypeScriptnpmGNU Affero General Public License v3.0japaneselearn-japanese
kanadojo.com
3k2.8k
wotakumoe/wotaku

An otaku index for everything! โญ Star the project if you like it!

TypeScriptnpmOtheranimemanga
wotaku.wiki
2.9k138
5mdld/anki-jlpt-decks

ใ€egg rollsใ€‘JLPT N1๏ฝžN5 ไธ€ไธ‡่ฏ Anki ็‰Œ็ป„ใ€็ฎ€๏ผ็นใ€‘ใ€่ฏญ้Ÿณ๏ผ†ไพ‹ๅฅใ€‘๏ผ›Anki๏ผŒๆ—ฅ่ฏญ๏ผŒๆ—ฅๆ–‡๏ผŒๆ—ฅๆœฌ่ชž๏ผŒ็‰Œ็ป„๏ผŒๅก็ป„๏ผŒ็‰Œ็ต„๏ผŒๅก็ต„๏ผŒ่ƒฝๅŠ›่€ƒ๏ผŒๆ—ฅๆชข

HTMLOtherankijapanese
ankiweb.net/shared/info/832276382
2.8k97
hahahumble/speechgpt

๐Ÿ’ฌ SpeechGPT is a web application that enables you to converse with ChatGPT.

TypeScriptnpmMIT Licensechatbotchatgpt
speechgpt.app
2.7k379
echo-loop/Echo-Loop

Echo Loop ๆ˜ฏไธ€ๆฌพ็ง‘ๅญฆใ€้ซ˜ๆ•ˆ็š„ AI ่‹ฑ่ฏญๅฌ่ฏด่ฎญ็ปƒ App๏ผŒ้€š่ฟ‡็›ฒๅฌใ€็ฒพๅฌใ€่ทŸ่ฏปใ€ๅค่ฟฐๅ’Œ้—ด้š”ๅคไน ๏ผŒ่‡ชๅŠจ้ฉฑๅŠจๅญฆไน ่€…ๆŠŠๆฏไธ€ๆฎต้Ÿณ้ข‘็œŸๆญฃ็ปƒๆ‡‚ใ€็ปƒ็†Ÿใ€็ปƒๅˆฐไผš่ฏดใ€‚

DartGNU Affero General Public License v3.0english-learninglanguage-learning
echo-loop.top
2.1k207
typedgrammar/typed-japanese

๐ŸŒธ Learn Japanese grammar with TypeScript

TypeScriptnpmMIT Licensejapaneselanguage-learning
typedgrammar.com
1.9k23
mre/the-coding-interview

Programming exercises, code katas and puzzles for your job interview training - or just for fun.

PythonPyPIMIT Licenseinterview-practiceinterview-test-task
1.7k415
LuteOrg/lute-v3

LUTE = Learning Using Texts: learn languages through reading.

PythonPyPIMIT Licenselanguage-learninglute
luteorg.github.io/lute-manual/
1.5k154