check_circleEvery feature below is free

Everything FlexLex does.

The complete list — nine study modes, an SM-2 spaced-repetition scheduler, OCR that reads printed pages and your handwriting, offline translation and spell check, AI stories built from your own words, and a data model where nothing ever leaves your phone. No feature is behind a paywall, and none of it needs an account.

9
study modes, all free
SM-2
spaced repetition per word
2
OCR engines merged for handwriting
$0
no account, no sign-up
01 · Study modes

Nine ways to drill the same set.

Every mode runs on the same words, has its own setup and results screen, and feeds the same spaced-repetition scheduler. The mode that finally makes a word stick isn’t the same for everyone, so you get all of them.

style
Flashcards
Flip, swipe, shuffle. Swipe one way for “knew it”, the other for “didn’t”.
stylus_note
Write
Type it from memory. Every synonym on the card is accepted.
checklist
Multi Choice
Four options — the wrong three come from your own set, so they’re plausible.
assignment
Test
A graded, mixed-format exam over the whole set.
extension
Match
A full-screen mixed grid against the clock. Pick 2, 3 or 4 columns.
bolt
Rush
Fast timed drill with lives. Wrong answers cost one.
graphic_eq
Spell
Letter for letter, with audio.
school
Learn
Adaptive: recognition → recall → production, and back again when you slip.
auto_stories
Story
Your words, written into a short story tonight.
AI

event_repeatPlus a Review queue — the spaced-repetition inbox that shows only what’s due today, across every set.

tune

Shared across every mode

A word picker so a session can be aimed at exactly the words you want. Status filters for new, hard, don’t know, know and starred. Direction control — term to translation or the reverse. Star any word to build a manual focus list. Images on cards. And text-to-speech in the set’s own language on every card.

Synonym-aware checking: a card reading big; large; huge accepts any of the three, so you’re not marked wrong for knowing a different correct answer.

02 · Capture & import

Get words in without typing them.

Typing vocabulary by hand is the reason most people quit flashcards. So most of FlexLex is about skipping that part entirely.

photo_camera

Scan a printed page

Photograph a textbook page, a printed word list or a worksheet and FlexLex pulls the vocabulary out. Recognition runs on the device with Google ML Kit — no upload, and it works with no signal.

table_chart

Table reconstruction, not text soup

Raw OCR hands back a jumble of lines. FlexLex reads the bounding boxes: it looks for two distinct horizontal clusters — a term column and a translation column — splits on the largest gap, and pairs entries by nearest vertical position. A two-column vocabulary table comes back as real term/translation pairs. If there’s no column layout to find, it falls back to row grouping instead of guessing.

draw

Handwriting OCR — two engines, merged

Your own handwritten notes work too. On Android, FlexLex preprocesses the image on a background thread and then runs PaddleOCR and Google ML Kit in parallel, merging the two results — because handwriting is exactly the case where any single engine is unreliable. On iOS it bridges to Apple’s Vision recogniser. Models are loaded once and kept warm.

burst_mode

Multi-page merging & an editable review

Shoot several pages in a row and they merge into one import. Nothing is added blind: every extracted pair lands in an editable review list first, where you fix, split, swap sides or delete rows before they become a set.

table_view

Import a spreadsheet

Drop in .xlsx (Excel), .csv, .tsv or .json and it becomes a set, with column mapping handled for you and no row limit in the app.

language

Build a set in your browser

flexlex.app/create builds or imports a set on the web, lets you study it right there in the browser, and sends it to your phone as a single link or a QR code. No account, and nothing is uploaded.

bookmark_add

Save words as you browse

Words picked up elsewhere on the phone land in a Saved from web shelf, with the language detected on-device, ready to be filed into the right set later. And when you do type a card by hand, FlexLex offers an on-device translation suggestion for the other side.

03 · Spaced repetition

A real SM-2 scheduler, on every word.

Not a vague “smart review”. FlexLex implements SM-2 (SuperMemo 2) — the same classic algorithm behind Anki’s default scheduler — and runs it per word, from every mode, with no separate SRS mode you have to remember to open.

function

What each word carries

An ease factor (starts at 2.50, floored at 1.30), an interval in days, and a repetition count — plus its own lifetime accuracy. Every answer you give, in any of the nine modes, maps to an SM-2 quality score and updates that word’s state.

trending_up

How the interval grows

First success: +1 day. Second: +6 days. After that the interval is multiplied by that word’s ease factor every time — days become weeks, weeks become months. Miss it and repetitions reset to zero and the word comes straight back.

The ease factor itself is adjusted after every answer, so a word you keep fumbling stays permanently more frequent than one you own.

inbox

The Review queue & knowledge status

A due-today queue across every set, so you open the app and it decides what to show you. Each word also gets a derived knowledge status — new, don’t know, hard, know — computed from its repetitions and ease, which drives the filters and the per-set “learned” percentage.

Today

die Wolke — got it wrong, so it’s back tomorrow.

+1 day

Right this time. Next review moves out to six days.

+6 days

Right again. The gap is multiplied by the word’s ease factor.

+3 weeks

Still right. It’s yours — see you in a couple of months.

auto_stories04 · Story mode

Your words. One story. Written tonight.

Every other app drills words in isolation. FlexLex takes the words you picked and writes a short story around them, at your level, then highlights them so you can tap anything you don’t recognise.

tune

You set the brief

Choose the CEFR level (A1 through C2), which words to weave in — all, hard, don’t know, know or starred — and how many. The story streams in as it’s written, so the first sentence appears immediately instead of after the whole thing is done.

touch_app

Tap any word — translated on your phone

Your words are highlighted in the finished text. Tapping one shows its translation, produced on the device by the offline translation models. Nothing is fetched to read the story back.

key

It runs on your own AI key — deliberately

Story mode generates with Google Gemini using your own free Google AI Studio key, which the app asks for the first time you open it and stores in the phone’s secure keystore. No key ships inside the app. That means the AI bill is yours and free, and we never sit in the middle of your data.

It is also the only part of FlexLex that sends any user content anywhere, and it’s opt-in: with no key set, it simply doesn’t run.

05 · Offline language tools

Translation, speech and spelling — with no signal.

The language machinery most apps put on a server, FlexLex puts on the phone. Download once, then use it on a plane.

translate

On-device translation, 50+ languages

Google ML Kit translation models (Apple’s Translation framework on iOS 17.4+), downloaded per language from a manager screen in Settings and then fully offline. This is what powers tap-to-translate in Story mode and the suggestions when you type a card by hand.

spellcheck

Offline spell check with real Hunspell dictionaries

Not the keyboard’s spell checker. FlexLex downloads genuine Hunspell dictionary and affix files, applies the affix rules to expand every base form into all of its inflections, and stores the result locally — the Czech expansion alone runs to roughly 4 million word forms.

Lookups run in a dedicated long-lived background isolate, so a multi-million-word dictionary never makes the keyboard stutter, and a load guard skips any dictionary too heavy for a given device rather than starving the app. Around 23 languages are covered.

volume_up

Pronunciation in ~27 languages

Tap to hear a word in the set’s own language. FlexLex checks the device actually has voice data for that language first, instead of silently reading a German word with an English voice and teaching you the wrong sound.

ArabicChineseCzechDanishDutchEnglish (US/UK)FinnishFrenchGermanGreekHindiHungarianItalianJapaneseKoreanNorwegianPolishPortuguese (BR/PT)RomanianRussianSlovakSpanishSwedishTurkishUkrainian
palette

Article colour-coding for gendered languages

German der / die / das and its equivalents get colour-coded, and the article can be stripped for sorting so your set alphabetises on the noun. Gender becomes something you see rather than a second thing to memorise. The rules are yours to edit.

public

Any language pair, including the ones nobody covers

You write both sides of every card, so FlexLex works for English–Japanese, Spanish–French, Latin, medical terminology or your chemistry vocabulary. There is no course catalogue to be missing from.

06 · Gamification

The part that gets you back tomorrow.

All of it free, none of it gating a feature.

local_fire_department

Streaks & daily goal

A streak worth protecting and a daily goal in words that you set yourself, with a live progress ring.

trending_up

XP and levels

Tuned so an early level can’t be cleared in one sitting and level 50 takes months, not a weekend.

workspace_premium

11 achievements

Four tracks — streak length, words learned, days studied and overall accuracy — from “Getting Warm” to “Word Hoard”.

diamond

Gems, chests & a spin wheel

Earn gems by studying and spend them in the shop. The wheel’s odds are published inside the app, not hidden.

favorite

Hearts — only in two modes

5 a day, and only Test and Rush spend them. Everything else is unlimited. Run out and the test resumes exactly where it stopped.

vibration

Haptics & sound

Vibration shaped to the event with a strength selector, and sound effects synthesised off the UI thread. Both fully switchable.

notifications_active

A reminder that isn’t a push

The daily nudge is scheduled locally on the phone — no push service, no server. Already hit today’s goal? It re-anchors to tomorrow instead of nagging you.

insights

Statistics

Charts of your study history, accuracy and per-set progress, built from data that never left the device.

07 · Organise & personalise

Make it yours, and keep it tidy.

A vocabulary library gets messy fast. These are the tools for when it does.

folder

Colour-coded folders

Colour tiles, per-folder settings, and a move dialog that lets you create the destination folder on the spot.

checklist_rtl

Bulk editing

Multi-select, move and delete across a set, for the day an import lands 300 rows you need to reshape.

search

Search everything

Find a word across every set you own, plus a per-language dictionary view of your whole vocabulary.

format_paint

Eight accents, three themes

Green, Blue, Purple, Red, Orange, Amber, Teal or Slate recolours the entire app. Light, dark and system, applied before the first pixel is drawn.

image

Images on cards

Attach a picture to any word — for the ones a translation never quite fixes.

help

Onboarding & Tips

A walkthrough on first run and a Tips & Help screen for the features that aren’t obvious.

08 · Data, backup & privacy

Your words never leave your phone.

This is the part FlexLex takes furthest, and the one that’s hardest to retrofit. There is no account system to leak, because there is no account system.

cloud_off

No account. No cloud. No copy of your words anywhere.

Sets, folders, words, progress and settings live in a single local SQLite database on the device. There is no sign-up, no sync and no server-side copy — not as a setting you can turn off, but as an architecture with nowhere to send it.

backup

Backup and one-tap restore

Export every set, folder, image and scrap of progress into a single .flexlex.backup file, and restore it in one tap. Tap that file in a chat app or file manager and it opens straight into the restore flow.

shield

Backups you didn’t have to remember

The first time you open FlexLex after an update that changes the database, it silently writes a full backup to your public Downloads folder. That file survives uninstalling the app entirely. Underneath, the app also snapshots the database before any migration runs and keeps the last two — and migrations are additive-only by policy, with every schema version regression-tested, so an update can’t quietly eat your data.

ios_share

Share a set — with no server involved

A shared set is a link like flexlex.app/s#… where the entire set travels inside the URL fragment — the part of a URL a browser never sends to a server. There’s no upload, no set ID, no database row and nothing that could be logged or leaked. It opens in the app if you have it, and in a browser if you don’t. QR codes too, for the person sitting next to you.

delete_forever

Deleting means deleting

“Delete all data” is an explicit type-to-confirm action in Settings and the only wipe path in the app. Device-transfer restore is deliberately disabled so a fresh install can’t have stale data pushed over it.

09 · Pricing

All of the above costs nothing.

Pro exists, and it sells exactly two things — neither of which is a feature.

Free

$0
forever · no account
  • check_circleAll nine study modes
  • check_circleSM-2 spaced repetition & Review queue
  • check_circleUnlimited sets and words
  • check_circleScan print and handwriting
  • check_circleImport Excel, CSV, TSV and JSON
  • check_circleOffline translation and spell check
  • check_circleStory mode with your own AI key
  • check_circleBackup, export and share links
  • check_circleStreaks, XP, levels, achievements
  • check_circle5 hearts a day for Test and Rush
Download free

Pro

NO ADS
$15
per year
  • check_circleNo ads, anywhere
  • check_circleUnlimited hearts — never interrupted
  • check_circleEverything in Free, obviously
  • check_circleSupports one developer, not a company
Go Pro
10 · The short version

Full spec, on one screen.

Everything above, compressed — for skimming, and for anyone quoting it.

PlatformAndroid 8.0 and up, on Google Play. iOS planned, not yet released.
PriceFree — every feature, no account. Pro is $15/year for no ads and unlimited hearts, and unlocks no features.
Study modesFlashcards · Write · Multiple Choice · Test · Match · Rush · Spell · Learn · Story, plus a due-today Review queue.
Spaced repetitionSM-2 (SuperMemo 2) per word — ease factor, interval and repetition count, updated by every answer in every mode.
Printed OCRGoogle ML Kit text recognition, on-device, with two-column table reconstruction from bounding boxes.
Handwriting OCRPaddleOCR and ML Kit run in parallel and merged (Android); Apple Vision (iOS). Image preprocessing off the UI thread.
Import formats.xlsx, .csv, .tsv, .json, photos, handwriting, web set builder links. No row limit in the app.
Export formats.flexlex.backup full archive, share links, QR codes.
TranslationGoogle ML Kit on-device models, 50+ languages, downloaded per language. Apple Translation on iOS 17.4+.
Spell checkHunspell dictionaries with full affix expansion, ~23 languages, served from a dedicated background isolate.
PronunciationPlatform text-to-speech in ~27 languages, with voice-availability checking before it speaks.
AIGoogle Gemini for Story mode only, via the user’s own free Google AI Studio key. Opt-in, and the only outbound path for user content.
GamificationStreaks, daily goal, XP and levels, 11 achievements, gems, hearts, spin wheel, reward chests, haptics, sound, local reminders, statistics.
Personalisation8 accent colours; light, dark and system themes; per-mode defaults; colour-coded folders.
Data modelLocal SQLite (Drift). No account, no sync, no server-side copy. Additive-only migrations with pre-migration snapshots and an automatic post-update backup to Downloads.
Works offlineEverything except Story-mode generation — including translation, spell check, pronunciation and OCR.

smart_toyMachine-readable versions of this page: /llms.txt and /llms-full.txt.

Download

Start learning today.

Free, no account, no internet required. Download it and start.

Android 8 and up · iOS coming later