Cached Cards
When I put myself in the shoes of the user, I thought about how much it would suck to pay to audit the same card multiple times. That would be so wasteful and hostile to the consumer.
So I implemented a system called “Cached Cards.” After your cards are audited, the results and metadata are stored permanently. These results can then be retrieved in subsequent audits.
For example, if you audit a deck of 1,000 cards and later update 50 of them, a subsequent audit of those 1,000 cards means you only pay for the 50 changed cards. The cached 950 reappear in your results free of charge.

Because the cache is global, we can do some really cool things. If Alice (in the US) audits a deck of flashcards, and Bob (in Germany) later audits some of the same cards, Bob pays $0 for the cards Alice already audited. Alice and Bob don't even have to know each other to take advantage of this feature. In this way, the community builds a gigantic brain of audited flashcards together.
This means that a classroom, a university, or a group of friends can collaborate and share the financial burden of auditing a particular collection of cards.
How it Works
Each row in the card database is identified by a natural composite key derived from four variables: