Building an Anki-Compatible AI Flashcard Generator

By Charlie Groves

As a computer science student, I have to learn a lot of content to perform well in exams. Here’s the pipeline I use to learn content effectively:

1. Actually Understanding the Content

This is the most important step. The best way I’ve found to do this is by finding YouTube videos that explain topics — they are usually leagues above the quality of lectures.

2. Flashcards (Active Recall & Spaced Repetition)

This is the most effective way to remember content for exams. I use Anki.

3. Past Exam Papers

Once I understand the content and have memorized it, I do past exam papers to practice applying the knowledge.

Building a Flashcard Generator to Save Time

A big bottleneck in this process is creating flashcards. It’s a very manual process and can take a long time. To save time, I built a flashcard generator that uses AI to generate flashcards from text. It’s not perfect, but it’s a good starting point. I generate the flashcards, go through them, edit them to make them more accurate, and delete the ones that are not useful.

Tech stack: RailsTailwindCSSAWS S3OpenAI GPT-4o mini for generating flashcards.

Check out the flashcard generator tool at StudyCardsAI - it’s free start.

Exporting to Anki

One requirement was easy export to Anki. I found the Anki2 gem and created a simple download in the decks controller:


def download
  deck = Deck.find(params[:id])
  name = deck.name
  filename = "#{name}.apkg"
  output_path = "#{Rails.root}/tmp/#{filename}"

  anki = Anki2.new(name:, output_path:)

  deck.flashcards.each do |flashcard|
    question = flashcard.question
    answer = flashcard.answer
    anki.add_card(question, answer)
  end

  anki.save

  send_file output_path, type: "application/apkg", filename:
end
              

This approach has greatly streamlined my study process, and I hope it might help others too!