Fresh Cards 2.4 is out now, with improved performance, sync, and reliability

Fresh Cards 2.4 is finally here! This update took a long time since there were numerous under the hood changes to improve the app’s performance and reliability.

There were a few issues with sync taking longer than normal on devices that hadn’t synced in a while. Sync should be a bit faster now and more reliable. Additionally, if you quit the app during a sync, when you return to the app, sync will continue from where you left off. In previous versions of Fresh Cards, the app would often restart the sync from scratch if you quit too early. This led to syncs potentially never finishing.

Anki import has been improved. This is a bit technical, but basically the old import code mistakenly used the notes table in the Anki deck to generate cards. The new version will now properly use the cards table along with the notes table to generate a card for each cloze and each template. This means more Anki decks will be compatible for import.

The app still does not handle HTML and css templates correctly, but I have plans to improve Anki compatibility to 100%. It will take a bit more time to get there, though.

I hope you enjoy these updates. As always, feel free to reach out to me with bug reports or requests. The best way to do that is via our Discord.

Fresh Cards v2.3 brings better tags support and more!

Hey, Fresh Cards 2.3 is here! This update has a bunch of new things, so let’s jump right in.

Better tags editing

The Mac version now lets you assign tags quickly using the context menu. Just select one or more cards and then right-click (or ctrl-click) to see the new tag actions.

You can assign tags from a known list of tags for the deck, including from a most-recently used list. You can also bring up an editor to bulk add multiple tags, just hit the “Add tags…” menu item. Finally, when a single card is selected, you can edit the tags assigned to it directly.

Okay, so maybe you’re wondering what the big with tags is. Well, tags are awesome because you can filter by tag using the search field and when you hit the play button to start a lesson, the lesson will use only cards that match that tag!

Here’s a great example where I’ve filtered by verbs in the deck and now I can start a lesson to review just my verbs.

Oh, continuing the above example, I can see which verbs I already have in my deck. Next time I go “shopping” for new verbs, I can see at a glance which ones I already have.

So, go forth and assign those tags!

Drag text directly from the web to import cards

The next really cool feature added to the Mac version is support for import via dragging text.

Next time you see a list of foreign words and phrases online, you may be able to simply drag and drop said list into Fresh Cards to import them directly into your language deck.

Here’s an example. Open up this page in a tab:

Scroll down to the word list and select some of the rows.

Now drag and drop that selected text into Fresh Cards. You’ll be presented first with the CSV settings screen. This is a screen that lets you pick the “delimiter” character (this just helps the app figure out where the columns are in the text you dragged). It also lets you choose which column in the table should be the front and which should be the back. The app will generally auto-detect the character, so just pick which column you want as the front and which you want as the back.

Once you hit the Preview button, you’ll the cards as they’ll appear when imported.

How cool is that?

If you see text like in the screenshot below (taken from as opposed to in table format, you can import it as well.

Since this isn’t a table, the app will import it as-is without needing to go through the whole “what delimiter should I use?” screen. Here’s how the above looks in the import preview:

One more thing: dragging and dropping is kind of inconvenient sometimes, so you can use the clipboard instead. Just highlight the text as before, but then just do cmd-C to copy it into the clipboard. Then, in Fresh Cards, select “Import from Clipboard” in the File menu to start the import. It works the same way as drag and drop.

This feature is still a work in progress, so if you find text that can’t be imported properly, let me know! (Email support at

Drag cards directly into text editors

There’s a new way to export cards: just drag and drop into a text editor. This is a great way to quickly share cards with your friends. Just select one or more cards and then drag them into a text editor. Here’s an example where I dragged the selected cards into the TextEdit app:

Selected a couple of cards…
Then dragged into TextEdit…

This is just a simpler way of exporting cards without having to create an export deck. Now that it’s in the text editor, I could copy/paste into social media or a blog, for instance.

Reviewed-only filters for Cram and Strength modes

If you’re using Cram or Strength mode, you can now filter by reviewed-only. This means you won’t see “new” cards that you have never reviewed.

This feature is on both macOS and iOS.

Learn more…

Okay, that’s it for the major updates for v2.3.

If you want to see a complete list of features as they’re added, be sure to check out the changelog page. There’s also now a roadmap page so you can see what’s coming up next for the app. There are still a ton of features I want to add. (Also, excuse the mess of these new pages. I’m working on them still!)

By the way, if you like Fresh Cards, be sure to tell your friends! This is an indie dev project written by one person — me, Allen — so sharing it with your friends on all the socials is much appreciated.

See you next time!

Improve your recall speed with the latest Fresh Cards update

I’m excited to announce that the latest Fresh Cards update, v.2.2.2 is out now. You can download it or update your copy directly from the App Store.

This update reintroduces Match Game, a great way to review several cards at once. If you’re not familiar with this feature, it allows you to play a game where you try to match the front and back cards as quickly as possible. I’ve found that this is 1) a great way to get a quick overview of how well I can recall cards in a deck, and 2) an awesome way to practice quick recall.

If you’re learning Japanese, one of the things you must learn early on is how to read hiragana and katakana. Match Game is an excellent way to practice both.

Match Game is back!

Because of the ticking clock, Match Game helps motivate you to try to recall cards quickly. And honestly, sometimes regular flashcard review just isn’t enough. Even though spaced repetition is great, it can be too slow and reviewing each card too infrequent for something like character recognition. With Match Game, you can practice reviewing the cards over and over again, working to improve your recognition muscles.

By the way, if you’re learning Japanese and are looking for a good hiragana deck to use with Fresh Cards, this Anki deck works well and includes recorded audio for pronunciation help. If you need help with importing the Anki deck, be sure to check out the help page.

But wait, there’s more…

This update also introduces a dark mode theme on macOS, and improves the dark mode colors on iOS. I think you’ll find this new theme is much more beautiful.

You and me both.

I hope you enjoy this update! As always, let me know what you think.

Customize Your Spaced Repetition Algorithm

Hi, my name is Allen and I’m an indie dev who makes the flashcard app called Fresh Cards. Today, I’m incredibly excited to share that version 1.16 of the app is out. This version of the app focuses on the core learning aspect of the app by adding two new features: Drills and custom Spaced Repetition algorithms.

Fresh Cards encouraging you to do a lesson


When I released the app nearly six months ago, I originally intended it to be a purely spaced repetition flashcard app. The app would let you review a set of cards per day, just how many would be configurable by you. Which cards to review would be a mix of “due” cards and “new” cards. The due cards would be cards scheduled for review using a spaced repetition algorithm. The new cards would be cards that have never been reviewed before. Each day, you’d come back to the app and review a small set.

After releasing the app, it became clear that spaced repetition wasn’t for everyone. Many users want to review cards whenever they like. Just as you would real flashcards, they want to pick up a set of cards and go through them as many times as needed. But the app wouldn’t let them do that! In fact, the only real negative review of the app so far has been from a user complaining the app chooses the review for them.

I’ve noticed a small number of users refunding the app as well. They don’t send feedback about what was wrong, but I speculate that they probably ran through a few lessons and found they couldn’t review any more. To them, the app probably felt broken. Even early beta testing revealed that many users wanted ad-hoc reviewing.

So, it was clear some adjustments were needed.

I still think spaced repetition is incredibly valuable, but I do understand the need to freshen up your memory here and there outside of the schedule. Additionally, if you’re prepping for an exam, it’s incredibly useful to go through the deck in its entirety to make sure you really know the material.

So, how to combine the power of spaced repetition with the need for ad-hoc reviews? Drills!

As of v1.16 of Fresh Cards, you can now do both. Do your lessons daily to learn new cards and refresh old ones that are becoming “forgotten”. Then, as needed, jump into Drills mode and review even more cards. You can think of lessons as your “in-class” material and the drills as “homework”.

If you want to cram for an exam or just make sure you remember all the material, try drilling through the entire deck!

I’m incredibly proud of the user experience on this new feature. The way it works is you pick a number of cards you want to drill on, then you’re presented with the lesson UI we know and love. Go over your cards as much as you’d like. When you finish the drill, the current “deck” for the drill will be updated so that the cards you just drilled are put into a discard pile. If you do another drill, the next set of cards from the top of the deck will be picked up and you can drill again.

A drill in session with a discard pile

If you drill the Hard Cards deck, whenever you pick from the top of the deck, you’ll get the most difficult cards based on your most recent scores. Within the drill itself, the cards will be shuffled.

This is the first version of drills, so expect even more customizability and ease of use in the future. I already have ideas of how to improve it!

Custom Spaced Repetition Algorithms

Okay, now let’s talk briefly about the other new feature: custom spaced repetition algorithms. Yes, you can absolutely provide your own spaced repetition algorithm with v1.16 of the app. Go into the app preferences and you can add new algorithms or view existing ones. I’ve even created a page to help you test out your algorithm. I call it the Spaced Repetition Schedule Simulator.

Want to learn more about writing your own algorithm? I’ve written up an article about how to do just that. It’s a complicated topic, so check out the article to learn more.

The spaced repetition algorithm viewer

After you’ve added a new algorithm, you can go into a specific deck’s settings to select it for that deck. This means you can custom fit the algorithm for the information you’re trying to learn.

Finally, on the topic of spaced repetition algorithms, version 1.16 of the app has beefed up the internal algorithm used for scheduling. Once I got deep into learning how other algorithms work, I improved the one that I wrote for the app. You can even check out the code for it within the app. If you have suggestions for improving it, please reach out and let me know!

So, that’s it for now. Fresh Cards 1.16 is a big release. I hope you enjoy it!

Let me close out by asking, what do you think about spaced repetition vs. ad-hoc drilling? Do you prefer one over the other? Let me know on twitter: @freshcardsapp