I am running L-Lingo ( https://l-lingo.com ) - a language learning app that includes a spaced repetition system in addition to its lesson based content.

Here is what I learned in the last 10 years in this field. I hope you will find this valuable when developing SoYouLearn.

- Language Content vs Features:
We as developers like to focus our time and energy on implementing great flashcard features but often the language content itself is a second thought. Odten we do not curate the content ourself and let users do it or we prefer to use copyright free content.
From our experience, the quality of the content is extremely important. Your students will quickly become frustrated if they see errors in the language content and then think that your whole product is of low quality -even if you have a great technical implementation! So make sure you have high quality content!

We have invested heavily in the content of our app and even wrote Grammar notes for nearly 20 languages -not because WE wanted to do it (we probably would have been much happier coding ;) but because OUR USERS where asking for this -repeatedly.

Also from our experience, students are more willing to pay for high quality content (e.g. Top 10000 Spanish Flashcards) then for advanced features. This is true especially for Flashcards because ANKI is well known, working very well and free. So why pay except for great content?

- Focus on Languages OR other Areas:
Yes in principle, spaced repetition works for all kinds of contents (languages obviously but also if you learn geography, anatomy, heck even for learning coding you can use flashcards). However once you want to built a powerful and more importantly user friendly system, there are important differences. E.g. when you learn languages like Chinese you need to provide a field for Pinyin, you should have audio associated and maybe also an example sentence. So what I want to say is if you focus your system on ONLY language learning you can make your UI much more user friendly.

I think you might come into troubles if some users use your product for language learning and others for learning other things as then your users will have different priorities on what features they need and what you should implement.

- Include Motivational Aspects within your App:
Learning something completely new is tough, Language Learning is even much tougher! A very high percentage of language learning app users give up very quickly. It took us many years here at L-Lingo to realize this and we are now spending approx. 50% of our time and effort to keep our users motivated to follow through on their language learning.

We do this in many different aspects, gamification of the language learning, learning reminders, giving our students tips on effective language learning etc.

Keep in mind: Even the best flashcards system does not work if your students are not motivated to use it regularly!

- Beta testers and early adopters
I think one of the key successes when we launched L-Lingo was to actively looking for a small but very engaged group of early users. And we focused on a small niche (Thai Language Learners!). I think this helped us to create value for this group early on, to understand what was really important (e.g. the quality of the content). So you made the first right step with this hackernews post but now try and find real permanent users that you can engage with regularly.

Thats all for now. Feel free to ask questions if you have!