Note on creating Anki Vocab Generator

tl;
dr
ChaGPT is indeed pretty good at coding simple stuff. It helped me build a tool to solve a tiny inconvenience I experienced as a language learner. Sharing my process of building the tool in this article.
Berlin, Germany
2024

This is a short note on creating a tool called Anki Vocab Generator. It's a tool for language learners that does two things:

  1. Generates a vocabulary list of 20 words in a given language.
  2. Imports those words as cards into Anki (a flashcards app based on spaced repetition).

The tool removes the manual steps of looking for new words and adding them to Anki.

I created this tool because I was curious to try, and because I actually had a problem. I was too lazy to make my own Spanish vocabulary lists and then manually add them to Anki.

The process

Planning

When I understood the two problems I had, I realized that there must be an easy way to create a solution. Easy enough to build it myself without searching for such a solution online.

Obviously, ChatGPT solves the problem of creating vocabulary lists. The problem of moving those lists to Anki required an API that would allow creating decks and cards. I found Anki-Connect - an add-on that lets you do a bunch of operations programmatically.

Now my task was trivial: marry ChatGPT and Anki-Connect so that the former generates the lists based on the user's input, and the latter moves those lists to Anki.

Writing specs

I would've not been able to create this tool without ChatGPT, because I don't have enough technical knowledge. To use ChatGPT effectively, I knew that I needed to explain my solution idea properly in order to get clear implementation instructions. My approach was the following:

  1. Explain the idea and ask for an overview of implementation steps.
  2. Dive into each step in detail.

This is my initial prompt -> https://chat.openai.com/share/fb55a2e2-a243-4c60-9966-c28693c29aef. The structure I followed was a) explain in a human language what needs to happen, and b) explain how it should work under the hood in as much detail as I could. The idea with point b is to give the AI a more specific direction and keep it closer to the technologies I have some knowledge about.

Implementation

Once I knew the steps I needed to take, it took me exactly 58 minutes to go from nothing to a first working prototype. The rest of the effort (about 3-4 hours) was tweaking and iterating on the tool playing with styles, cleaning up the flashcard values, and adding the loading state.

Release

The good thing about a tool that does only two things is that testing before the release takes about five minutes. After this was done, I uploaded the project to Github and that was it!