Open Source · Free forever · 100% Offline

The language learning engine
built for serious learners.

Forgua is a free, open-source language learning engine with spaced repetition, furigana, pitch accent, kana input, and morphological tokenization — all built in. No account. No server. No subscription.

No account. No install. No server.
Works offline after first load
Desktop app also available
10+ Exercise Types
N5–N3 JLPT Coverage
100% Offline
Free Forever

Built for serious language learners

Every feature is designed for long-term retention, not gamification.

Spaced Repetition (SM-2)

Battle-tested SuperMemo 2 algorithm schedules reviews at the optimal moment. Four-button grading (Again / Hard / Good / Easy) matches how memory actually works.

10+ Exercise Types

Flashcards, multiple choice, fill-in-the-blank, dictation, drag-to-reorder, matching, write answer, sentence build, read aloud, and speech recognition.

CJK First-Class Support

Furigana annotations, pitch accent visualization, romaji-to-kana input conversion, morphological tokenization, and stroke order data — built in, not bolted on.

Language Packs in JSON

Content is pure JSON — no TypeScript required. Community contributors create and share packs using a simple, well-documented schema validated with Zod.

100% Offline

All data lives in IndexedDB on your device. No account, no sync server, no tracking. Works on planes, in the mountains, or anywhere without internet.

PWA + Desktop App

Install directly from your browser as a Progressive Web App, or download native binaries for macOS, Windows, and Linux via Tauri 2.0. One codebase, every platform.

Progress Tracking

Charts, daily streaks, accuracy per category, and full study session history. Know exactly where you stand and what needs more attention.

Audio & Speech

Text-to-speech playback and browser-based speech recognition for pronunciation practice. Works without any additional software.

Get Forgua

Native desktop app for macOS, Windows, and Linux — or install as a PWA right from your browser.

Fetching latest release from GitHub…

You can also open the app in your browser and click "Install" to add it as a Progressive Web App — no download required.  ·  All releases →

Study any language, any level

Community-driven content in pure JSON. No code needed to contribute a new pack.

Language Curriculum Included content Status
Japanese日本語 JLPT N5, N4, N3 Vocabulary, grammar, kanji, kana, readings, guided lessons Complete
EnglishEnglish CEFR A1–C2 Vocabulary, grammar, readings, guided lessons Complete
ItalianItaliano CEFR A1–C2 Vocabulary, grammar, readings, guided lessons Complete
Japanese日本語 JLPT N2, N1 Vocabulary, grammar, kanji, readings Planned
Mandarin Chinese中文 HSK 1–6 Wanted
Korean한국어 TOPIK I & II Wanted
Spanish, French, German…Other languages CEFR A1–C2 Wanted
Want to add a language? Language Packs are pure JSON — no TypeScript needed. Read the Pack Specification and open an issue to discuss your pack.

Up and running in three steps

Install the app

Download the native binary for your OS, or open the web app and click "Install" to add it as a PWA. No account or login required.

Pick a Language Pack

Browse available packs and select your target language and level. The pack loads into IndexedDB — no internet needed after that.

Study with SRS

Forgua schedules your reviews with SM-2. Study daily, grade each card honestly, and watch your retention grow over months and years.

Language Packs
are just JSON

You don't need to know TypeScript or React. If you can write JSON, you can build a Language Pack for any language.

1
Create a Language Pack

The highest-impact contribution. Edit JSON files — any language, any curriculum.

2
Fix bugs or add features

Browse open issues, tackle a bug, or improve an exercise type.

3
Translate the UI

Copy en.json, translate the strings, open a PR. Currently: EN + ES.

4
Star & spread the word

Star the repo, share with language learners, or write about it online.

vocabulary.json
// A single vocabulary entry — that's all you need. { "id": "水", "level": "N5", "characters": "水", "readings": ["みず", "すい"], "meaning": "water", "pitch": 1, "tags": ["noun", "nature"], "examples": [ { "sentence": "水を飲む", "translation": "to drink water" } ] }

Built with modern, open-source tools

100% TypeScript strict mode. Zero proprietary dependencies.

Framework
React 19
Language
TypeScript (strict)
Bundler
Vite 8
Desktop
Tauri 2.0
Styling
Tailwind CSS 4
State
Zustand 5
Database
Dexie.js 4
Routing
React Router v7
Validation
Zod 4
i18n
i18next
PWA
Workbox
Testing
Vitest + RTL
❤️

Support Forgua

Forgua is free and will always be free. If it helps your language learning journey, consider sponsoring development to keep the project growing.