What is a Flashcard App?

A flashcard app is a study tool that leverages the benefits of traditional flashcards in a digital format. These apps allow users to create their own flashcards on various subjects, and often include features such as progress tracking, multimedia support, and synchronization across multiple devices.

What is a Spaced Repetition Systems or SRS?

Spaced Repetition Systems (SRS) are a method of learning that involves gradually increasing intervals of time between subsequent reviews of previously learned material. This method is proven to be an effective way to increase the speed of learning and the amount of information that can be retained.

What are Flashcard apps and SRS used for?

Flashcard apps and SRS can be used in a variety of educational contexts. In traditional education, students can use these tools to study for exams, learn complex concepts, and reinforce classroom learning. Flashcard apps are particularly useful for subjects that require memorization, such as history, biology, or medical studies.

Flashcard apps in Language Education

In language education, flashcard apps and SRS can be instrumental in learning new vocabulary, grammar rules, and idioms. Language learners can create flashcards with words or phrases on one side and their translations on the other, reviewing them regularly to enhance their language skills.

Flashcard apps to prepare for exams

For exam preparation, including standardized tests like the SAT, ACT, GRE, or professional certification exams, flashcard apps provide an efficient way to review and remember key concepts, formulas, definitions, and more.

The spaced repetition system helps ensure that the material is committed to long-term memory.


In this post, we offer you the best there is of Flashcard and SRS supported apps for Windows, Linux, macOS, and the web.

1. Memorize

Memorize is a native GNOME app that stores your flashcard sets. It enables you to create, edit, view, and study sets. Use the test mode to create preparation exams. Additionally, you can easily import and export existing Quizlet sets.

Download and Install

  • You can download this app easily from Flathub as a Flatpak package.
GitHub - david-swift/Memorize: Study flashcards in a native GNOME app
Study flashcards in a native GNOME app. Contribute to david-swift/Memorize development by creating an account on GitHub.
Install Memorize on Linux | Flathub
Study flashcards

2. Skola

Skola a is a web-based spaced repetition app featuring normal, double-sided, and cloze cards.

It supports rich text content and uses a learning algorithm with fsrs.js for free spaced repetition scheduling. The app includes a card managing tool and offers light, dark, and system modes.

GitHub - h16nning/skola: A web based spaced repetition app
A web based spaced repetition app. Contribute to h16nning/skola development by creating an account on GitHub.

3. Mnemosyne

Mnemosyne is a free, open-source, spaced-repetition flashcard program designed for efficient learning. It also serves as a research project into the nature of long-term memory, offering users the option to contribute anonymous data about their learning process.

Features

  • User-friendly flash card program with a simple interface
  • Support for rich content, including pictures, sounds, and movies
  • Integration with Latex for rendering formulas
  • Integration with Google Translate and Google Text-to-Speech
  • Generation of two types of cards: 'recognition' and 'production'
  • Flexible card browser for sorting and tagging cards
  • Comprehensive statistical data to track learning process
  • Full control over card studying, with options to focus on subsets of cards
  • Different learning modes and a cramming mode for intensive studying
  • Import feature compatible with various formats, including Anki, SuperMemo, and CueCard
  • Extensive configurability, allowing control over each element in the cards
  • Extensive plugin architecture, allowing the extension and modification of the program
  • Built-in sync mechanism for syncing data across devices
  • Webserver feature for reviewing cards through a web browser
  • Bi-directional syncing between several devices
  • Different learning schedulers
  • Supports custom user-scripts and plugins

4. Platforms

  • Windows
  • macOS
  • Linux
  • Android
Welcome to the Mnemosyne Project | The Mnemosyne Project
GitHub - mnemosyne-proj/mnemosyne: Mnemosyne: efficient learning with powerful digital flash-cards.
Mnemosyne: efficient learning with powerful digital flash-cards. - mnemosyne-proj/mnemosyne

5. Carden (Web and Browser Extension)

Carden is a Chrome Extension that transforms consumed content into long-term knowledge. It allows users to create flashcards, view detailed statistics, earn points and level up. It employs the evidence-based SM2 algorithm for spaced repetition, and enables flashcards to be organized into decks.

Features

  • Spaced repetition based on the evidence-based SM2 algorithm
  • Ability to create flashcards in context
  • Organization of flashcards into decks
  • Points and leveling up system
  • Cross-compatibility with apps like Anki, Quizlet, Brainscape, and more
  • Import and export flashcards as .txt and .csv files
  • In-depth statistics view and download
  • Self-hosting option
GitHub - alyssaxuu/carden: Flashcards with spaced repetition and gamification 🌱
Flashcards with spaced repetition and gamification 🌱 - alyssaxuu/carden

6. Anki

Anki is an efficient study program that supports various content types, including images, audio, videos, and scientific markup.

It can be used in various scenarios such as learning a language, studying for exams, memorizing names and faces, brushing up on geography, mastering long poems, and practicing guitar chords.

Features

  • Supports a variety of content types, including images, audio, videos, and scientific markup
  • Can be used for various purposes, such as learning languages, studying, memorizing, etc.
  • More efficient than traditional study methods
  • Offers AnkiWeb synchronization service for syncing cards across multiple devices
  • Highly customizable from card layout to review timing
  • Optimized to handle decks of 100,000+ cards
  • Fully extensible with a large number of available add-ons
  • Open source, ensuring the safety of your data

Android Features

  • Night mode
  • Whiteboard
  • Progress widget
  • Detailed statistics
  • Syncing with AnkiWeb
  • Write answers (optional)
  • Text-to-speech integration
  • More than 6000 premade decks
  • Spaced repetition (supermemo 2 algorithm)
  • Supported contents: text, images, sounds, MathJax
  • Add cards by intent from other applications like dictionaries

Downloads

Anki - powerful, intelligent flashcards

7. TubeCards

TubeCards is a cross-platform spaced-repetition app integrated with YouTube, providing high-quality flashcards for learning from favorite YouTubers. It uses a science-based Spaced Repetition method for knowledge retention.

The app has an intuitive user interface and is available on multiple platforms including Google Play, App Store, Windows Store, Mac App Store, and Flathub.

Download

  1. Android: Google Play
  2. Mac App Store
  3. iOS App Store
  4. Microsoft App Store
  5. Linux: Flathub
Install Space on Linux | Flathub
Spaced Repetition for Flashcards

8. FlashMe

FlashMe is a terminal-based flashcard application designed for efficient studying. It offers a user-friendly interface, customizable settings, and allows users to navigate through questions and reveal answers with simple keyboard commands.

GitHub - burgr033/flashMe: terminal based flash card application written in Go utilizing the awesome bubble tea framework
terminal based flash card application written in Go utilizing the awesome bubble tea framework - burgr033/flashMe

9. Midterm: Notes & Flashcards

Midterm for Linux is completely free to use. It is a note-taking app with study tools to help you study better. You can use it to prepare for exams.

Features

  • Write notes with quizzes for studying (cloze deletion, image occlusion inspired from Anki).
  • Easily organize your notes and flashcards
  • Sync notes with your phone and/or tablet.
  • Study offline (offline accessible).
  • Dark mode.
  • Powerful visual editor.
  • Keep track of notes to study before exams.
  • Collaborate and study with your friends.
  • Support nested folders.
  • Add unlimited courses
Install Midterm: Notes & Flashcards on Linux | Flathub
A free note-taking app for studying.

10. Echo

Echo is a free and open-source flashcard memorization app aimed at aiding quick and efficient learning for students, professors, language learners, and anyone wishing to memorize something.

Echo uses a modified version of the SM2 spaced-repetition algorithm, allowing for efficient memorization over time, self-quizzing, and cramming. Among these methods, spaced-repetition is proven to be the most effective.

The app is written using JavaScript and Electron which means it can run on Windows, Linux and macOS.

GitHub - danilolekovic/echo: a flashcard memorization app, for improving your retention and learning
a flashcard memorization app, for improving your retention and learning - danilolekovic/echo

11. KWordQuiz

KWordQuiz is a general purpose flash card program. It can be used for vocabulary learning and many other subjects. It provides an editor and five different flashcard quiz modes. It uses the KVTML file format and contributed files can be downloaded from within the application.

You can download it from Flathub, Snap or install it directly from your Linux repo.

KWordQuiz
Flash Card Trainer
Install KWordQuiz on Linux | Flathub
Flash Card Trainer

12. StudyMD

StudyMD is an application that transforms your Markdown-Summaries into flashcards for efficient studying.

It is built using JavaScript and uses Electron to distribute apps for Linux, Windows and macOS.

GitHub - jotron/StudyMD: Flashcards from Markdown. Built with React and Electron
Flashcards from Markdown. Built with React and Electron - jotron/StudyMD

13. Lazycard

Lazycard is a simple flashcard application utilizing spaced repetition and cards are formatted with Markdown.

It uses Electron so you can build it, and run it on Windows, Linux, and macOS.

Features

  • Write cards with Markdown
  • Import and export topics (JSON)
  • Export to HTML for easy sharing
  • Simple database (JSON)
GitHub - hikikones/Lazycard: A simple flashcard application where cards are formatted with Markdown.
A simple flashcard application where cards are formatted with Markdown. - hikikones/Lazycard

14. Swift Mind

Swift Mind is an open-source macOS native app for creating and running flashcards.

GitHub - Rminsh/Cards: 🗂️ Simple flash cards app for iOS and macOS
🗂️ Simple flash cards app for iOS and macOS. Contribute to Rminsh/Cards development by creating an account on GitHub.

15. Kommit

Kommit is an application designed to aid in memorization. Drawing inspiration from Anki and other spaced-repetition learning systems, it presents flashcards at optimal times to reinforce memory and reduce study time.

Features

  • Practice orally with text-to-speech
  • Record audio snippets
  • Organize with card tags
  • Collaborative feature: Write the front, someone else writes the back
  • Accessible on mobile, tablet, and desktop devices
  • Works offline
  • Automatic cloud sync with remoteStorage or Fission
  • Keyboard shortcuts for efficient workflow
  • Import and export JSON data
  • Blind-friendly with text labels on all elements
  • No behavioral analytics or cross-site trackers
  • Full ownership over your data in a 0data app
  • Open-source: public code for reading and modification
Kommit
Augment your memory.
GitHub - rosano/kommit: Augment your memory.
Augment your memory. Contribute to rosano/kommit development by creating an account on GitHub.

16. Flashcards 

The Flashcards application, is an open-source free macOS native appp that is written in SwiftUI.

It allows users to create, edit, and delete cards for memorization. Users can organize cards into categories, train with a timed game, filter cards by category, and change category images. The app also offers the option to retry incorrect cards, earn points and levels based on game results, and choose and unlock heroes to play with.

GitHub - vaIerika/Flashcards: Application to memorise information in a game form (SwiftUI)
Application to memorise information in a game form (SwiftUI) - vaIerika/Flashcards

17. Scholarsome

Scholarsome is a web-based, open-source studying system that uses flashcards to aid memorization.

Unlike other services that paywall core features, Scholarsome offers an equal alternative without compromising on features, while keeping user data secure locally.

Features

  • Create your own study sets 🏗️
  • Share your sets with other users 🤝
  • Import sets from Anki, Quizlet, and CSV files 🔼
  • Export sets to Anki, Quizlet, and CSV files 🔽
  • Study flashcards in multiple learning modes, mimicking real-world flashcards 📖
  • Create quizzes using fill-in-the-blank, true/false, and multiple choice questions ✏️
  • Edit your sets 🛠️
  • Change set visibility 🔓
GitHub - hwgilbert16/scholarsome: Web-based interactive flashcard learning software
Web-based interactive flashcard learning software. Contribute to hwgilbert16/scholarsome development by creating an account on GitHub.

18. HardV

HardV is a robust flashcard program designed for Unix-like systems, including Linux and macOS.

Key features of HardV

  • Customizability with your preferred programming language
  • CLI mode by default, with options to configure it as a TUI program or to view images in a GUI window
  • Ability to open an editor, send content to an online judging system, and schedule the next quiz time based on the judging result
  • Implements various study methods such as keyboard shortcut practice, cloze deletion, text-to-speech review, and typing in the answer
  • Input files are user-friendly and can be easily parsed by both humans and Unix utilities like grep, sed, and awk
  • Metadata, such as scheduled time, is written back to input files, giving you full control over your data
  • Respects contents of input files, allowing you to layout your card files using empty lines
  • Acts as a Unix filter in the default mode, making it easy to be called by other programs. For example, HardV can be piped to a voice synthesizer for an audio quiz.
GitHub - dongyx/hardv: A Powerful Flashcard Program for Linux, macOS, and Other Unix-like Systems
A Powerful Flashcard Program for Linux, macOS, and Other Unix-like Systems - dongyx/hardv

19. Flashcards (iOS)

The iOS mobile app, Flashcards, allows users to toggle between questions and answers, choose from multiple choice answers, and reset the screen. It also provides features to create, edit, store, and delete flashcards. The app remembers the last set of flashcards used and displays multiple choice answers in a random order.

However, the app is not officially released, but you can download the source-code and built it for your iPhone.

GitHub - coraxyc/Flashcards: iOS mobile app that toggles between questions and answers on flashcards. You can choose multiple choice answers and click outside the buttons to reset the flashcard screen. You can also navigate to a screen to input your flashcard questions and answers.
iOS mobile app that toggles between questions and answers on flashcards. You can choose multiple choice answers and click outside the buttons to reset the flashcard screen. You can also navigate to…

20. Flashcards

Flashcards is a macOS application designed for studying with flashcards. It offers features such as "slides" for studying processes, a hidden information reveal, web image and Markdown support, priority sets, customization options, keyboard-only navigation, and synchronization via Supabase.

GitHub - david-swift/Flashcards-macOS: A native macOS app for studying efficiently
A native macOS app for studying efficiently. Contribute to david-swift/Flashcards-macOS development by creating an account on GitHub.

21. FreeCallApp

FreeCallApp, a tech-powered learning platform, offers a seamless interaction with its smooth interface, enhanced code reliability, robust backend services, and secure database management.

Inspired by Professor Robert Allen Bjork's memory research, it's designed for ambitious learners in various fields, aiming to simplify the mastery of complex concepts.

Features

  • Tech-powered learning platform
  • Seamless interaction with smooth interface
  • Enhanced code reliability
  • Robust backend services
  • Secure database management
  • Inspired by Professor Robert Allen Bjork's memory research
  • Designed for ambitious learners in various fields
  • Aims to simplify the mastery of complex concepts
  • Uses Free Recall method for deeper learning
  • Customized learning paths adapting to user's unique learning style
  • Provides insightful progress tracking with detailed analytics
  • Comes with a powerful feature-rich REST-API

Tech Stack

  • Go
  • React
GitHub - kryptokazz/FreeCallApp: Flash card alternative
Flash card alternative . Contribute to kryptokazz/FreeCallApp development by creating an account on GitHub.

22. a-flash-deck

This is a free and open-source Java mobile app that enables you to create and play flashcards.

Features

  • Easily add deck and cards
  • Add notification timer to periodically asking you question
  • Support dark mode and light mode
  • Easily export & share your decks to your friends
  • Record voices and attach images for the cards
  • Create shortcut to show random card from deck for casual study (Android 8 and above)
  • Flash bot to smartly suggest list of card to test you
GitHub - rh-id/a-flash-deck: A simple Flash Card application to assist in learning and remembering something.
A simple Flash Card application to assist in learning and remembering something. - rh-id/a-flash-deck

23. Flashpack (Self-hosted)

Flashpack is a study tool designed to cater to math-based questions. It features scriptable cards that generate variable content, aiding in understanding and preventing memorization of specific values. It also supports AsciiMath for rendering complex math expressions.

GitHub - Cabidge/flashpack: A flash card app for desktop made with Tauri and SvelteKit
A flash card app for desktop made with Tauri and SvelteKit - Cabidge/flashpack

24. lrn (CLI)

lrn is a command-line tool designed for learning through repetition. It allows users to answer a series of self-prepared questions in two modes: match mode, where you type an answer to a question which is then checked against the correct answer, and cards mode, where you flip between the question and the correct answer and decide yourself whether you knew it or not, similar to flashcards.

However, lrn does not support spaced-repetition algorithms, schedules, categories, tags, styles, etc. Its design philosophy is to remove any final barriers between the user and the learning process, eliminating any last chances for procrastination by tweaking the learning tool itself.

GitHub - krychu/lrn: Command-line tool for learning by repetition.
Command-line tool for learning by repetition. Contribute to krychu/lrn development by creating an account on GitHub.

25. OpenCards

OpenCards is a free flashcard learning software that uses PowerPoint presentations or Markdown files as flashcard sets, with slide titles as questions and slide contents as answers.

It incorporates state-of-the-art memorization and scheduling algorithms to aid learning. Unlike other flashcard tools, OpenCards aims to be simple and user-focused.

Features

  • Easy to use: Just create flashcards as you’re used to create PowerPoint slides
  • Allows for efficient memorization of vocabulary, pictures (faces, geography, mushrooms), sounds (birdsongs, intervals, chords), and all other kinds of factual knowledge (exams, phone numbers, etc. etc.)
  • Intelligent learning algorithms that know when you should review which flashcards.
  • Absolutely free and open source! No spyware or ads.
  • Runs on all major operating systems (Windows, MacOS, Linux)
  • Create flashcards like you’re used to create slides for presentations
  • Allows to use any Powerpoint-file as flashcard-set without any conversion
  • Superior flashcard-file management
  • Use tables, charts, formulas, Unicode, nice background images and much more for your flashcards
  • Customize the learning procedure based on your individual learning habits.
  • Graphical visualization of learning success
  • Localized to many languages including German, French, Dutch, Spanish, Italian, Greek, Portuguese, Bulgarian and many more.
  • Import new flashcards from CSV-files
OpenCards
A free flaschard learning application for PowerPoint and MarkDown files

26. ForgetMeNot (Android)

ForgetMeNot is an Android app designed for memorizing information through flashcards, developed with a focus on simplicity, usability, and speed to ensure high efficiency in memorization.

Features

  • Import/export of files.
  • Support of CSV, Tab text or any other kind of Delimiter-Separated Values.
  • Intervals (Spaced repetition). You can specified your own interval scheme for each deck.
  • Several testing methods. There are 'Self testing', 'Testing with variants', 'Spell check'.
  • Pronunciation of the text via TTS. You can choose languages for questions and answers, autospeaking of them.
  • Hiding the text of a question to stimulate improvement of listening skills that is very useful in foreign language learning.
  • Card inversion.
  • Hints in the form of masking letters.
  • 'Motivational timer' that will make you concentrate on your studies (optionally).
  • Saving settings of deck as presets and reusing them in order to avoid routine work on settings.
  • Editing and searching cards right in the exercise.
  • 'Walking mode' that enables you do the exercise without looking at the screen.
  • 'Autoplaying mode'. In this mode questions and answers are pronounced sequentially. You can combine your own activities and repetition of teaching material.
  • Catalog of pre-made decks. The catalog contains many decks for language learning, which includes basic sets of words, thematic words and phrases, whole sentences.
  • Grouping decks into separate lists
  • Customizing the card appearance
  • Dark theme
  • Backup

Download

GitHub - tema6120/ForgetMeNot: A flashcard app for Android.
A flashcard app for Android. Contribute to tema6120/ForgetMeNot development by creating an account on GitHub.

27. hascard

This is a free and open-source minimal command line (CLI) utility for reviewing notes. 'Flashcards' can be written in markdown-like syntax. It is written for Haskell and supports many card types, LaTeX files, multiple choice questions, and many more.

The app can be installed for Windows, Linux, and macOS.

GitHub - Yvee1/hascard: flashcard TUI with markdown cards
flashcard TUI with markdown cards. Contribute to Yvee1/hascard development by creating an account on GitHub.

28. SuperMemo

SuperMemo is a free and open-source JavaScript/TypeScript implementation of the SuperMemo 2 (SM2) algorithm for spaced based repetition flashcards.

supermemo
A JavaScript/TypeScript implementation of the SuperMemo 2 (SM2) algorithm for spaced based repetition flashcards.. Latest version: 2.0.17, last published: 3 years ago. Start using supermemo in your project by running `npm i supermemo`. There are no other projects in the npm registry using supermemo.
GitHub - Maxvien/supermemo: 🧑‍🎓 A JavaScript/TypeScript implementation of the SuperMemo 2 (SM2) algorithm for spaced based repetition flashcards.
🧑‍🎓 A JavaScript/TypeScript implementation of the SuperMemo 2 (SM2) algorithm for spaced based repetition flashcards. - Maxvien/supermemo

29. Flashdown

Flashdown is a Node.js flashcard app with a command line interface that stores data in human-readable and editable plain text files.

GitHub - SteveRidout/flashdown: A terminal based Flashcard app using plain text files
A terminal based Flashcard app using plain text files - SteveRidout/flashdown

30. FLA.SH

This is a script inspired by nixcasts that replicates the Anki flashcard system in a simple manner using plain text documents and a shell script. It aims to enhance study through active recall and spaced repetition.

GitHub - tallguyjenks/fla.sh: 💥 flashcards in your terminal
💥 flashcards in your terminal. Contribute to tallguyjenks/fla.sh development by creating an account on GitHub.

31. Vocage

Vocage is a terminal-based vocabulary-learning tool that uses a spaced-repetition algorithm for presenting flashcards. It allows for efficient learning by presenting difficult words more often and familiar words less frequently.

While it's ideal for language learning, it can be used for any subject that benefits from flashcard study. The software's goal is to maintain simplicity and focus on its core function.

Features

  • Data is stored in a simple plain-text tab-separated values format (TSV). So you can edit your cards in your favourite text editor or spreadsheet program (use CSV export and set delimiter to tab and quotes to none). Vocage itself does not provide editing facilities.
    • All lines starting with # are considered comments. This also serves to quickly disable some cards without actually deleting them.
  • Your learning progress is stored right inside the TSV files, simply by adding one column for the deck a card is in, and one for when it is due. This keeps everything in one place (no external configuration/library files) and makes it easy to process with external tools. You could keep your vocabulary sets in git, if you want.
  • Configuration is done via command line parameters that can also be stored as comments at the end of the TSV file for quick loading:
    • The columns are defined either as a header line on the very first line (in upper case!), or more explicitly using --columns.
    • You determine what columns to show on which side of the card using --showcards, which can be invoked multiple times, once per side. Traditionally there's a front side and a back side to a card, but you can define as many sides as you want.
    • Define deck names and their intervals.
    • Sane defaults; if no configuration is specified some sane defaults will be used.
  • Load multiple vocabulary files (TSV) together, provided they have the same column layout. This allows you to use files as an easy grouping mechanism (e.g. a file per level, per domain, or per word class).
  • The 'fancy' TUI can be disabled by setting the --minimal parameter, in case you want to interact with vocage from shell scripts or other software.
  • Proper unicode support
  • Colour support, each column gets a colour (can be disabled in --minimal mode)
  • Arrow keys and vim-style movements (hjkl)
  • Written in Rust; fast & efficient
GitHub - proycon/vocage: A minimalistic spaced-repetion vocabulary trainer (flashcards) for the terminal
A minimalistic spaced-repetion vocabulary trainer (flashcards) for the terminal - proycon/vocage