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.
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...