Because of the complex queries that would have to be used to perform spaced repetition, I decided early on that I wanted to use a SQL database for this project. I didn't want to spend an incredible amount of time developing a backend and maintaining servers however, so I chose to go with my absolute favorite SQL SaaS, Supabase. This provided me with a prebuilt authentication flow, a Postgres database, a capable storage solution for image uploads, and lightning-fast Edge Functions for additional backend code.