HOW IT WORKS
How BedsideLingo decides when a phrase comes back
BedsideLingo uses spaced repetition, powered by an open-source algorithm called FSRS. This page explains what that means and who built the pieces we rely on.
By the BedsideLingo team. Last updated November 8, 2026.
The short version
- You answer how easily you remembered a phrase. The app uses that answer to pick the next review date.
- Phrases you know well come back after longer gaps. Phrases you forget come back sooner.
- The scheduling algorithm, FSRS, is open source. We credit its authors and license below.
What spaced repetition is
Memory fades over time, and it fades fastest right after you learn something. Reviewing a phrase just before you would forget it strengthens the memory far more than reviewing it too early or too late.
Spaced repetition turns that into a schedule. Each time you recall a phrase, the next review is pushed further away. Each time you forget it, the gap shrinks again. Over time you spend your practice on the phrases that need it, instead of on the ones you already know.
How FSRS works
FSRS stands for Free Spaced Repetition Scheduler. It models each phrase you practise using three ideas about memory:
- Difficulty: how hard this phrase is for you to remember.
- Stability: how strongly the phrase is stored in your memory. The higher it is, the more slowly you forget it.
- Retrievability: how likely you are to recall the phrase right now. It is highest just after a review and drops as time passes.
After every answer, FSRS updates its estimate for that phrase. A correct answer raises stability, so the next gap is longer. A wrong answer lowers it, so the phrase returns sooner. The scheduler then sets the next review for roughly the moment your chance of remembering falls to a target level. The library BedsideLingo uses aims for about 90 percent by default.
FSRS builds on earlier research. Its authors describe it as springing from MaiMemo’s DHP model, which is a variant of the DSR model (difficulty, stability, retrievability) proposed by Piotr Wozniak.
How BedsideLingo uses it
- You practise and answer. Each phrase shows up, you try to recall it, and you say how it went.
- Your answer sets the next date. The app passes your answer to FSRS, which returns the next due date. Reviews that are due come first in a practice session.
- Progress is kept per phrase and per language. Learning French and learning Spanish keep separate schedules, and so do the two directions of a phrase.
- “I’ve learned it” is your call. If you are sure of a phrase, you can mark it learned. The app then checks back after a few months, a gap you can change in Settings.
- Bedside playback is separate. Playing a phrase at the bedside never counts as a review and never changes your schedule.
- Everything stays on your device. The scheduling runs locally, with no account and no upload.
One limit: BedsideLingo uses FSRS with its default settings and with randomised spacing turned off, so the schedule is predictable. It does not yet tune the settings to your own review history.
Open source and credits
The source code of FSRS and its libraries is public, and anyone may use, study and modify it under the license terms.
- FSRS is developed by the Open Spaced Repetition community. The project describes itself as an independent open-source project driven by its community, and as springing from MaiMemo’s DHP model.
- ts-fsrs is the TypeScript implementation of FSRS that BedsideLingo uses (version 5.4.2), published by the same community at github.com/open-spaced-repetition/ts-fsrs. The package lists ishiko as its author. According to its documentation, this version implements FSRS-6.
- The algorithm’s home is free-spaced-repetition-scheduler, where the model and its documentation are kept.
We are grateful to everyone who built and maintains these projects. BedsideLingo is not affiliated with or endorsed by them.
ts-fsrs license
ts-fsrs is released under the MIT License:
MIT License Copyright (c) 2026 Open Spaced Repetition Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Frequently asked questions
What is FSRS?
FSRS stands for Free Spaced Repetition Scheduler. It is an open-source scheduling algorithm that estimates how well you remember each item and picks the next review date accordingly.
Is FSRS open source?
Yes. FSRS is developed in the open by the Open Spaced Repetition community, and the TypeScript library BedsideLingo uses, ts-fsrs, is released under the MIT license, which is a permissive open-source license.
Does BedsideLingo send my reviews anywhere?
No. Scheduling runs on your device. Your reviews, ratings and progress are stored only on your device. See the privacy policy for details.
What do the answer buttons mean?
After you see a phrase, you say how easily you remembered it. In the simple mode the choices are Again and Good. Again means you forgot it, so it comes back soon. Good means you recalled it, so it comes back after a longer gap. The detailed mode adds Hard and Easy.
Does playing a phrase at the bedside change my schedule?
No. Playing a phrase in Bedside never counts as a review. Only your answers during practice affect when a phrase comes back.
Is the schedule personalised to me?
Not yet. BedsideLingo uses the algorithm’s default settings, which are the same for everyone. It does not tune the settings to your own review history.