For language you might be interested in the Clozemaster[0] approach. Basically, you are shown a sentence, both in English and the language you want to learn, and one of the words in either one is a cloze deletion, e.g.:
English: there are thirty days in April.
French: il y a trente ___ en avril
And you have to complete the cloze with "jours".
The sentences are compiled automatically from Tatoeba[1], the cloze deletion is done on the least-common word[2]. This combines vocabulary with grammar.
For language I've always used the sentence in target language (the one i want to learn) in the front of the card and the translated sentence in the back of the card but I've always wondered if it should actually be the other way around.
Your suggestion with the cloze is another good approach
> I've always wondered if it should actually be the other way around
It should be both ways round. This is especially true for languages (where your brain needs e.g. French -> English for reading/listening and English -> French for writing/speaking). It's also useful even where you only need one direction because learning both directions actually strengthens the memory for the direction you need.
I asked it to list an outline for a French course, then for each item in the outline I asked it to make a table of English-French sentence pairs of increasing complexity.
The sentences are compiled automatically from Tatoeba[1], the cloze deletion is done on the least-common word[2]. This combines vocabulary with grammar.
I didn't like the Clozemaster UI so I wrote a script to make the clozes myself: https://borretti.me/article/building-diy-clozemaster
But automatic approaches are not great. Later I asked GPT-4 to make these flashcards for me, that gave me much better/more meaningful results.
[0]: https://www.clozemaster.com/
[1]: https://tatoeba.org/en/
[2]: https://www.clozemaster.com/faq#how-are-the-blanks-in-the-se...