View on GitHub


The Flashcard Project is an open source Windows application that simplifies making, managing, and studying learning flashcards.

The Flashcard Project on a Desktop

With The Flashcard Project you can…

• Edit cards on the same screen as they are displayed.

• Save card decks to a database file.

• Export files in machine and human-readable formats.

• Merge card decks.

• Tag cards to allow filtering.

• Delete unwanted tags simultaneously from all cards.

• Display cards randomly or sequentially.

• Flag cards as archived so they will not be shown.

• Reset the deck so all archived and excluded cards are shown.

The Flashcard Project Main Screen

The size-adjustable Windows interface makes it easy to have other applications and study references displayed. This can be useful when studying a computer language so you can switch to a code editor or interpreter for testing and practice.

While other flashcard applications provide extended features, The Flashcard Project offers a simple system that allows content sharing and merging. Because it is simple, the documentation is not lengthy.

There are quality open source flashcard programs with more extensive features such as Anki and Mnemosyne Project. Use The Flashcard Project if you want something simpler on a Windows system.

Open Source Flashcard Software Comparisons

  Anki Mnemosyne Project The Flashcard Project
Content text and rich media text and rich media text only
Installation 280 MB / 800+ files 246 MB / 3000+ files 10,961 KB / one file
Platforms Windows, Linux, Mac, Android Windows, Linux, Mac, Android Windows
File Imports plain text, csv Anki, SuperMemo, CueCard FP YAML format
File Exports plain text files text files (tab separated) FP YAML format (1)
Card Tagging yes - multiple yes - multiple yes - multiple
Sequence Options not configurable (2) random, scheduled (2) random or sequential
Learning Metrics graphed learning data graphed learning data basic (card categories)
Card Categorization “again”, “good”, “easy” 0 - 5 rating scale archive option
License GNU AGPL v3 GPLv2 MIT (3)

(1): Imports and exports are in YAML format, which is both human and machine readable. Card files are also saved to a binary database file.

(2): Cards are displayed based on algorithms that maximize learning efficiency.

(3): This is the most permissive of the three software licenses.


Only one file is needed to use this application. Simply download the Windows executable (fp.exe) file from GitHub Releases and run the program.

You can also download it directly here:


If you want a deck of learning flashcards for Python, download the file “fp-python.db” from the same page or directly here:


Using the Application

Basic instructions are available under the program’s Help menu.

You can edit, add, and delete cards while you are studying. If there is a card you do not want to see again, click the Archive button. The deck can be reset at any time to reactivate the status of archived cards. Otherwise, the deck will be automatically reset once all cards are viewed.

The Flashcard Project provides a way for multiple people to contribute when generating a card deck. To share a deck, the card data can be exported to a human-readable YAML file. The file can be shared and imported by someone else to add the cards to their deck.

Use the application to help with learning for any subject. If you are an instructor, your students could be tasked with producing their own flashcards and submitting them as card files. Their cards can then be consolidated into a single deck that is a useful learning asset for all of your students.


It would be great to receive contributions to the code and documentation so pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

In addition to the software, The Flashcard Project is a curated deck of Python learning flashcards that were generated with the application. You are welcome to contribute to this card deck. To submit flashcard content for Python learning, use the application to export your cards as YAML files. If any of these cards should replace existing cards, you can make a note directly on the cards in uppercase. Any notes will be deleted when your cards are consolidated into the master database.

Most Python learning cards should include example code for answers. Often a line of code is all that is needed. Using a python CLI makes it easy to distinguish the output from the code at every step. Please follow the existing format and include tags to categorize the cards.



About the Author

Links and more about Jeffrey Willits are available at