
SoYouLearn – A flexible and advanced spaced repetition platform - prefinal
https://www.soyoulearn.com/
======
AndreRauh
Founder here. Note: This is spaced repetition. I bootstrapped this over the
past 1 1/2 years.

A few key differences:

\- A central DB (it has over 1.8M flash cards) which anybody can edit. Card
owner can accept/reject the change request.

\- Courses are just _references_ to flash cards, nothing else.

\- You decide what you want to learn "Display me field X,Y,Z and prompt me to
enter field 'A'. You can choose any field/audio)

\- Efficiently add bulk audio to a course

\- A super fast UI (it's an SPA)

I have a few ideas for premium which (as far as I know) would bring features
that don't exist yet for any spaced repetition platform:

\- Prioritized learning (learn the most pressing ones)

\- In advance learning (You'll be gone for the weekend, but it's Friday and
you have 1h time: You can prelearn "long term" flash cards that'd come around
over the weekend).

Also for some tech background: Frontend is pure Clojurescript + Datascript.
Backend is Clojure, Cassandra, Datomic, Elasticsearch. I'd use the tech stack
again, hands down.

The best introduction is the video at the bottom of the landing page it show
all the features. There are only few courses right now so early adopters
should (hopefully) be willing to create their own courses.

Questions welcome.

~~~
salimmadjd
Hopefully my use case is useful to you.

I'm a heavy user of Duolingo. Been trying to teach myself Russian for the past
2-3 years. Almost use it on daily bases (I have missed a few days here and
there by accident or when I had no connection). Usually my repeat usage is
anywhere from 20 days to now 143 consecutive days. My biggest frustration with
Duolingo (Russian language) is that none of the grammar rules are explained.
So even thought I'm able to repeat something, it's only after I google
variations of a verb or a noun and the grammar case, is when I get the answer
why something is, for example, ending in a "e", etc.

I have not paid the premium fee for Duolingo. Mainly because the premium adds
no value to my learning. I've spent over $100-150 on Russian books from
grammar to vocabulary.

If Duolingo added more grammar explanation for premium price, I would pay for
that.

It takes Duolingo a few years to roll out a new language. It's hard to do it
in-house. And still, with Russian language, they don't have all the grammar
hints that exist on other languages like French (I've been told, French has
it).

My view is, why not turn Duolingo into a marketplace and let other language
expert create additional educational material to augment the lessons and let
them sell it to me and follow the Apple's revenue share model. Perhaps a
specific lesson might have 3-4 additional learning modules that I can buy from
different providers. Each module has a star-rating (you can filter out the
fake stars by how often someone is using Duolingo). Also once I find one
provider's way of explaining, I'll look for more teaching modules from them.

My point is, if you can look into Udemy and how they turned their video system
into a paid learning platform, you might come up with a premium model for your
business.

Good luck!

~~~
btilly
Are you using Duolingo on iOS, Android, or a computer?

My wife has used all three, and says that grammar explanations are not on iOS
and is on the other 2 platforms. She also believes that the explanations make
us feel good, but don't actually help. (Then again she's using it to learn
Polish and already knows Russian. So the grammar rules are pretty close to
what she already knows.)

Plus there are some natural language rules that are just a mass of exceptions.
For example try to explain to a non-native speaker why you ride in a car and
on a bus.

And furthermore, most native speakers don't know their own grammar rules. For
example why do we say "big red truck" and not "red big truck"? Odds are that
you've never been taught this order, but you do it correctly:

    
    
        Quantity or number
        Quality or opinion
        Size
        Age
        Shape
        Color
        Proper adjective (often nationality, other place of origin, or material)
        Purpose or qualifier

~~~
salimmadjd
I use it on iOS. So, for me the explanations really help. Because I understand
the rules after seeing a few examples and the rules help me grasp it easier or
see something subtle that I may have missed. Especially important in Russian.

But I can see it in a case where if you come from a language that has some
grammatical overlap with Russian. It may not be as helpful, because she
already has a mental language mapping for it. For English speakers or
languages that some of these concepts are not native, it's quiet hard.

I do agree many native speakers do not know the rules. But they'e not the ones
who would be creating the additional teaching modules. I'm sure there are
plenty of Russian teachers who would love to make side money teaching Russian
to non-native speakers and create explanation material.

------
Nadya
This is originally how Memrise worked. Courses were references to a database
entry that people could contribute/improve upon but it failed to scale to
large amounts of users and especially failed when the language maintainers
found themselves too busy to update 'cards'. I used to volunteer my help in
maintaining the Japanese/English databases. The largest issue was curation -
many duplicate entries would exist due to anyone being able to add words.
Sometimes a user would add a word instead of selecting the already existing
word from the database - meaning the words later had to be merged as users
could add mnemonics or parts of speech or example usage. One course might use
the "has all the information" copy while another course has a barebones "just
the word".

It was a fantastic idea that ultimately requires a lot of volunteers/manpower
in constantly keeping things updated and pruning/merging duplicates.
Eventually they (Memrise) moved to curated dictionaries that course creators
could then pull from to make their own courses without affecting other course
creators' copies. Creators can add new words but their words will not be
automatically added to the curated set.

I wish you the best of luck! You may want to find curators, equivalent to
higher-standing Wikipedia editors to make sure the word databases stay (1)
accurate and (2) everyone can actually benefit from it without fear of
selecting the wrong "Monday" in a list of 19 "Mondays".

~~~
purplethinking
If I understand correctly, the Memrise data is closed source right? So what
motivated you to contribute to something you don't control? Or do you keep
ownership of your contributions somehow?

~~~
Nadya
Contributors generally had close relations with Ben Whately, at least if they
could speak English or Mandarin, and could get access to the data so that we
could better help contribute or come up with improvements. Once upon a time I
had a copy of the JP/EN database, but have long since deleted it once I
stopped being a contributor (when the data model had changed from the
community-made wiki-like structure, so it wasn't much by choice).

A very large portion of the "original" Memrise community were people who had
been abandoned by smart.fm, a free-to-use site which later became iknow.jp
(subscription model). Our motivation for helping was a mixed bag of mostly the
following three reasons, though I don't pretend to have known _every_ original
contributor or their motivations.

1) For our own educational use

2) Because we wanted to be able to help others learn our language or a
language we had interest in

3) Because we wanted to see the smart.fm community stick around in this new
home, Memrise

Personally, I fell mostly under the first reason. I never found Anki good to
use and preferred having a website to navigate to and easily sync across
devices (even in the early days Memrise had plans for the app) by well...
letting someone else handle things. So smart.fm/Memrise were more convenient
for me and my learning.

I've played some part in many of the Japanese courses with 50,000+ users. So
the work I contributed has helped at least some portion of them begin their
studies and I take satisfaction in being able to have done that for them.

E:

I didn't answer all of your questions, so in short. Yes, their data was
closed, but they were willing to share large portions of it (except user data,
even anonymized user data!). My contributions have my "by {Username}" for my
courses - although many of the courses I built/contributed to became standard
"Memrise" courses under their name I don't mind getting or not getting the
credit - so long as they continue to help people learn!

------
SamBam
Looks nice at first glance.

I had a bit of confusion with the Spanish course. I read through the basic
categories, and decided to say "Claim Known" for one of them. It then asked me
to "Choose a way to learn." This was odd, because I was just saying I knew the
words, not in a particular direction (confusion #1).

I chose that I knew them English => Spanish. I then went up to the top to set
"English => Spanish" for the whole course. This jumped me into the course,
which I did not expect (confusion #2).

I hit "back," went back to the landing page, searched for the course page, and
went to the course in order to try and learn a particular set. I scrolled down
to one I didn't know, and clicked on "English => Spanish" to start the set.
Unfortunately, the "Claim Known" button was already active, which I hadn't
realized (surprising, since I felt like I re-entered the course from scratch).
So clicking on "English => Spanish" sent those words off as "known" (confusion
#3).

Now I have a list of words that I don't know marked as "known," and I don't
know exactly what this means (confusion #4) and how to find these words to
tell the system I don't actually know them (confusion #5), and I'm not allowed
to learn those words even when I click "Learn Now" because it tells me I know
them already (confusion #6).

~~~
AndreRauh_
(New account since I'm hitting HN rate limit)

Thanks for the feedback! This is very helpful. There are definitely many rough
edges in the app that will be improved. Regarding the UI: The React components
state are actually always "remembered" so if you're in the middle of doing
anything (like creating a course) you can go anywhere else and come back and
find your UI in the exact same state. So it's feature but seems in your case
was probably not optimal. I'll try to improve the UI around course learning!

~~~
lobo_tuerto
The "More info" link about cookies leads to a non-existent page.

------
SuperNinKenDo
With a product like Anki out there I see no reason for this to exist. Does
this product have any advantage over Anki that I'm missing? The only one I can
see is a central database, something which Memrise has and which is quite
mature on that platform.

A central database is also a disadvantage as far as I'm concerned as it means
that copyrighted material is made significantly harder to study.

When you add to these the fact that Anki can be rewritten with Python plugins
s that can change just about every hit of behaviour, interface, and add
completely new functionality, I'm sorry but there's really no reason for this
to exist, besides having a slightly nicer web interface.

~~~
senorsmile
I have the same questions. I have used Anki to learn several languages, more
than one of which is at B2. I like entering my own cards. I like that Anki is
100% open source. Without a compelling reason, I wouldn't switch.

~~~
Sukotto
I would love to hear more about how you did that.

How would you advise a motivated, but time-limited person who wanted to learn
a language to B2?

------
notheguyouthink
This is cool! I've been _(very)_ slowly designing a self hosted solution
similar to this!

I have far too many things ranging from professional to personal to menial
that I need to jot down. A lot of it I want to remember, some of it I just
want to be able to look up, but ultimate there's just far too much information
in my life and I need a personal Google.

I'm not sure this product is my exact needs, but I'm really happy to see more
people thinking about personal knowledge/data retention. It seems so important
to me!

------
rpearl
I just can't imagine anything being more "flexible" than Anki, which is agpl
python with a robust plugin ecosystem backed by a local sqlite database.

------
aj_g
Cool idea! I like that the data is pull-requestable. Have you thought about
Duolingo style comments, where users can add comments for
clarification/context? I find this very useful to get a better understanding
of why something is (i.e. "why use "kein" instead of "nicht" here?")

Also, how well does it work on a phone? I'm assuming it's a PWA...?

Also, is there a way to "favorite" courses? From a UX perspective, "My
Courses" feels like it should be "courses that I am currently learning". I
don't expect that to mean "courses that I have created", especially since a
small minority of users will actually do that.

~~~
AndreRauh
Thanks. I actually already implemented comments on "change request" on the
server and a bunch of the handling there but haven't completed the
implementation.

It does not yet use PWA, though I'm intending to add it, so that I have
offline support. It does however work pretty well on mobile right now. The
entire SPA is rather small ~180KB (+ React). On my old phone it refreshes the
entire app (initial load is slower) in 1 to 1 1/2 seconds. Reviewing on the
phone is pretty good and I use it myself.

The course you're learning will be under "notebook". My course is really only
the courses you created.

~~~
aj_g
Ah. So if you start a course it's automatically added to notebook?

------
ausjke
This has much better web interface than anki's UI in my opinion. great job!

how to leverage internet/web to enhance education and self-life-long-learning
is indeed still waiting for more creative adventures.

for me I'm still looking for a markdown-native CMS with authentication, not
the static site generator as they do not have login thus not a CMS, not the
"old" CMS with html editing etc either as they do not have native markdown
support. so far I found none though.

~~~
j45
Having a WYSIWYG that compiles to markdown is likely a better bet.

Markdown makes sense for technically inclined folks.

Educators who are not tech saavy are likely still better off with WYSIWYG.

Edit for the downvoters: Speak up - I have to work with both tech skilled and
low digitally skilled educators.

------
sunsetMurk
Love it! Going to play w/ this some more...

Care to share your stack/toolchain? front-end/back-end/API's?

~~~
AndreRauh
Frontend is ~25k LOC Clojurescript: Rum + Datascript + React.

Backend: Cassandra + Datomic + Elasticsearch + Redis + Clojure.

SAAS: Mailgun, Datadog.

Editor: Cursive IDE (hands down best Clojure editor)

------
tshanmu
how do they make money? aka, am I the product? :D

Saw this in the website:

> Note: All current functionality will remain free.

> Premium functions are available with a monthly or yearly subscription.

> With SoYouLearn premium you will be able to learn even faster and better.

edit: add the free bit from the website and formatting

------
qwerty456127
Cool as hell, I have always wanted this and have been thinking about such a
flashcards base every day for quite a time already! Great news it's here! I
just hope to see more cool free courses on this platform soon.

But there is a feature I want badly: a KDE5 plasmoid widget to show the cards
on my desktop, switching them every now and then so they will catch my
attention and get memorized as I use my PC (I use it about 10 hours a day and
I believe many other hackers do the same) without me having to dedicate time
for this. I also believe other people might also appreciate similar desktop
widgets for Windows, Android and other platforms.

------
function_seven
I like it! I just did the European geography course, matching countries on the
map with their names. But now I want to test myself and I can't figure out how
to do that. Any way to randomly go through each flash card and answer in turn?

~~~
AndreRauh
There is currently no way to manually test yourself on a course part. You now
just learnt them and if you come online now you should see those flash cards
due for review. Then depending on if you answer them correctly or wrong they
will come around again in 4-6h or 2-3days.

------
tyleralves
Looks cool, wish there was a Swift course. Maybe I'll make some cards as I go.

Here's a bug: Your search uses regular expressions without validating them.

1\. Go to
"[https://www.soyoulearn.com/app/#/cards/search/"](https://www.soyoulearn.com/app/#/cards/search/")

2\. Type: c++

3\. The autocomplete errors and page goes blank

4\. Inspector Console: "SyntaxError: Invalid regular expression: /c++/:
Nothing to repeat"

~~~
AndreRauh
Good catch! I'll fix this asap

------
michah
I am running L-Lingo ( [https://l-lingo.com](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!

------
qwerty456127
Another feature I miss is a button to discard a card. E.g. when I study
country flags and see a flag I remember perfectly and have always knew - I
want to click once and never see it again in the repeat series.

Also, it would be nice if I could choose the correct answer (e.g. a county
name for a flag) by clicking it among a set of options instead of typing it in
manually all the time.

~~~
barry-cotter
Recognising the correct option from multiple choices is recognition, not
recall. Recall is significantly harder and leads to more and better retention
st the cost of greater frustration.

~~~
qwerty456127
Perhaps, yet having to type it every time (I ALWAYS know the correct spelling,
for my whole life I have been wondering how do people actually manage to
misspell English words, even though English is not my first language ans I
have actually had to study it from scratch at the school) is extremely
annoying and discouraging, kicking me out of the flow state quickly. I just
wonder how much less efficient recognition is compared to recall.

------
jhedwards
Good job! This is a really cool project, I think I might try to contribute
some content. Just a few nits: tooltip in sidebar is really distracting, it
should have a slower animation and pop up after a brief hover. Also
login/create account form should listen to enter keypress for submit. Should I
send these observations to the contact email in the future?

~~~
amelius
What is the license for contributing?

~~~
AndreRauh_
If you contribute changes to the existing flash cards they'll be licensed
under "Creative Commons BY SA" (most likely), every flash card will tell you
the license if you open "view" it. If you create your own they'll just belong
to SYL, though, single flash cards are not copyright-able so there is no issue
if you steal those flash cards. And I personally would have no issues when
people re-use content for other use.

------
jslakro
This great project make me think on another good resource with many articles
on HN. It's super-memory [http://www.super-
memo.com/supermemo17.html](http://www.super-memo.com/supermemo17.html) a
website with many information and tools about training you brain

------
qwerty456127
Does it have an API? I would like to build an app around the flashcards
database (a completely free one, giving full and very visible credits to
SoYouLearn of course). Can I?

~~~
AndreRauh
It does not currently and it's not a priority for me right now. Can you
contact me by email? I'm curious about your app, maybe we can work something
out.

------
hmd_imputer
I just signed up and I am a little freaked out. How did you know what my
Native language is and what other languages I speak? The only info I provided
was my email.

~~~
AndreRauh
It just uses javascript navigator.languages object by default. :)

------
electriclove
How is any content I contribute licensed?

What will the pricing model be?

I'm reluctant to contribute to something that is going to be used as a profit
center.

------
hisnameisjimmy
I just moved to Spain, and just played around with the beginners Spanish
course. This is badass. Thank you for making this.

~~~
hisnameisjimmy
One issue I've run into a few times though: I'll come back to a tab for it and
hit enter, and it seems to try and reload. I then get this error:

more_vert This is not a valid session ID. Note that this URL ist not valid
across browser reloads.

~~~
AndreRauh
I'm having trouble reproducing this. Could you contact me by email and tell me
the exact steps?

------
jnordwick
Need a spaced repitition program with audio and recognition. It would be great
to be able to mix those in.

------
mikhuang
Stuck on creating account, iOS , it just keeps spinning

~~~
AndreRauh
Sorry to hear that. I know it's a bad excuse but: I don't own any Apple
products so I haven't tested IPhone or iPad. Though I did test a MacOS VM with
Safari. Can you try to use firefox for now? I'll try to borrow an iPhone soon
and debug the problem in the next few days. Sorry about that.

~~~
smokeyj
You can run an emulated iOS device on a Mac if you have one.

------
matz1
ugh I'm not allowed to use my username that I've been using for many other
website because it might be offensive.

~~~
AndreRauh
Sorry, which username are you trying? I have a blacklist but I didn't check
every single entry in it.

