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.
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.
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
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.
I use Duolingo premium on android and PC and I haven't seen the grammar blurbs on the android app either, maybe I just don't know how to access them. They're not very high quality anyway in my experience (for the portuguese course) so I didn't miss them too much. I use other sources to learn the grammar. Actually the more I progress the more I end up preferring memrise, it's much better for drilling vocabulary and the phrases it teaches you are more practical than Duolingo's "my uncle spoke to the tiger".
>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.
Some grammar and syntax is more important than other. If I told you "I rode in a bus" I'm sure you'll get immediately what I said. If on the other hand I told you "I rided on a bus" it might make you pause to process what I meant. Learning all the rules of a language is generally a daunting task but getting the basics right can save you a lot of time and trouble. When are you supposed to use the preterite and when the present perfect? What's the difference between "I will do it" and "I'm going to do it"? Etc...
>And furthermore, most native speakers don't know their own grammar rules.
Sure, in the same way that I never wonder when I'm supposed to use the subjunctive or about the gender of nouns when I speak my native french while a foreigner could struggle with that. I don't think it means that grammar courses are not hugely important when you learn a foreign language.
Learning one's mother tongue by being completely immersed in it 24/7 for years as a child and learning a foreign language as an adult in a few hours per week is hardly comparable. If you want to maximize your result you should learn the basics of the grammar instead of going entirely by trial and error like a child would do.
Furthermore as an adult you're more likely to require the use of complex and diverse concepts because you're not actually a 3 year old child. That means that you need to be able to actually "invent" new phrases that are not like any you've encountered before. "I've been asked to get the blueprints and bring them to the 3rd floor, could you tell me where they are?". Eventually as you become fluent the rules fade and you get a more intuitive grasp of the language.
FYI, if you are interested in the gramatical explanation of a level, you could log into the web version of Duolingo (your same account will work) and they are all there for many languages, as well as several other features (depending on the language) such as a full dictionary of words you've studied, and each has its own "health bar". There are also flash cards although now Duolingo has a separate app for that called TinyCards.
I'm not affiliated with them in any way but with the number of people I've convinced to use it, I should be getting commission.
One of my complaints on DuoLingo was that there was no Russian, I am glad thay added it. I am learning Spanish and could use some grammar explanation for sure.
The following advice is based on the assumption that you want to eventually acquire both adult level fluency and adult level proficiency in your second language. If you do not, then it's a whole other conversation. Having learned Japanese late in life, and also taught English as a second language professionally for 5 years, my advice is -- don't bother with grammar explanations. Instead of using Duolingo, read books.
There is nothing inherently wrong with learning grammar (and if you want to, I recommend reading grammar books in your target language). However, it is unnecessary. Memorising grammar rules will especially lead you down the road of approaching language like a recipe. The problem with grammar rules is that there are a lot of sentences that are grammatically correct from a prescriptive sense, but that are idiomatically impossible to understand.
Programs like Duolino are nice because the give you vocabulary in the context of sentences. However, you'll never get very much beyond basic sentence construction because you don't have the larger context. You don't know when to use one phrase and when to use another. You don't know the situations where idioms naturally pop up. You don't know how to organise your thoughts and to express them in the target language as opposed to translating your English ideas.
It's really funny, but when I read a Natsume Souseki book, I can't help but think how similar a writer he is to Dickens, and yet if I try to translate his writing to English it ends up incredibly dry and uninteresting. The charm of it is the expression in Japanese. Especially because Japanese and English are nothing alike, I find that I can't speak Japanese fluently unless I abandon English.
The thing that makes people worry is that they think that their second language is not good enough to become fluent. It's important to understand that fluency and proficiency are different things. Children are not at all proficient in their native languages -- especially 3 or 4 year olds are awful. But they are very fluent. With 2-3 years of Russian, you will also be awful, but there is no reason why you can't be very fluent with what you have -- and that includes reading.
It's too bad we can't have adopted parents in our second language to read us bed time stories because that would be awesome. But you can read by yourself. When I was very small, I had to be made to read because it was difficult for me. Eventually I got to the point where people had to tear the books away from me. The same thing was true in Japanese.
The advantage you have by doing it this way is that you have an endless supply of natural language. Your only task is to try to understand what it is saying. What I used to do when I was learning was to scan a piece of text to find vocabulary I didn't know. I would take about 20 pieces of vocabulary and look them up in a dictionary (I actually wrote software to make that efficient, because I'm a geek). Then I used a spaced repetition drill program (my own) to remember the vocabulary. Then I would read the text. Most of the time I could understand it based on vocabulary alone. If I ran into new grammar I would enter the sentence into the SRS drill with my understanding of the meaning. Rinse and repeat. Every week or so I would go back and reread bits of the book, updating my SRS data with my new understanding -- and it's incredible how quickly you form new understanding. After I read a section of text about 5-10 times, I could read it just like I was reading English.
After you get about half way through a novel, you start to learn the idioms that an author uses. You can then often read several books in a row without having to study -- just read them. But then when you switch to a different author, it's back to study mode. Of course I didn't start with novels. I started with picture books (Momotarou!!!), moved on to manga (great for conversational Japanese), then novels for elementary students and I'm currently in a phase where I'm enjoying books that are in the Japanese junior high school curriculum -- but at that point you're pretty functional in the language. I don't actually study at all any more (though I really should practice writing my kanji).
Not sure if any of this is helpful to the OP as well. I spent a lot of time writing my Japanese SRS tool (now sadly a victim of bitrot -- I don't think it even runs any more). I never could find a good way to really efficiently bootstrap native sources of information, but things like a built in dictionary and a deinflection/deconjugation tool are life savers. Honestly, if I were to concentrate on anything it would be that because Anki is already pretty hard to beat on any other front. Focusing on making it easy to create cards based on material found in the wild would be a great differentiator.
P.S. Last word on the grammar thing -- I actually learned Japanese grammar eventually. I had to teach English grammar in Japanese, so that forced me to read Japanese grammar books so that I knew what the vocabulary was. It was actually a lot easier than I thought it would be.
I'm a native English/Russian speaker who took a few Spanish courses in high school and college, and recently decided it would be a waste if I didn't finally learn to speak it fluently, at least like a child. In some sense, I suppose I already do. I can read many things and spoken slowly enough can understand partially -- but there is some mental block, mostly in the smaller, connecting words and other "minor" details that are actually major and completely central to the language. So I drill duolingo from time to time but it seems like mostly a waste of time since I know a majority of the words, and the ones I don't know such as "curtain" aren't critical for me. I always had the idea to visit Spain for several months to force myself to adapt to the language but that's been impractical thus far. I knew reading would be good too and your story of learning Japanese is inspiring, so I think I will find some children's books or Mexican menus. Thank you
I highly recommend LibriVox audiobooks for listening comprehension. My German had deteriorated greatly from when I was living in Germany and I decided I wanted it back so I listened to Anna Karenina in English and German, chapter by chapter. Wonderful book, beautifully read in English and in German. LibriVox has Don Quijote in English and Spanish though I can’t speak to the quality of the reading.
I was so looking forward to using the Kindle for reading a book in a different language and easily being able to highlight a word I didn't know and have it translate it.
Unfortunately the process of doing that on the Kindle is so arduous that it is unusable.
Yep. And the dictionaries are terrible (at least the Japanese ones). I still use the Kindle for reading, but it's not nearly as nice as I'd like. Strangely the English -> Japanese setup is much nicer. My wife uses it all the time and is thrilled with it. I use a dead tree version of a kid's Japanese to Japanese dictionary most of the time, but it's slow. I haven't been able to find anything similar that will work on the Kindle so far. I highly recommend transitioning to a native children's dictionary as soon as you can manage it (maybe with a translation dictionary as backup).
I noticed that there are no Chinese flash cards, which seems like a pretty major omission. While looking into adding some, I was overwhelmed by the options presented: https://slack-files.com/T02TG6LJ5-F99RX9799-a147044b72
The app seems incredibly responsive, but adding a card could be easier. And are you planning on adding Chinese language flash cards in the near future?
The entire cedict.org Chinese-English dictionary is available on SYL (it's over 115,000 flash cards) including traditional chinese (I want to do Japanese very soon). Make sure to watch the video on the landing page, it goes into a lot of the hidden features that I offer. And thanks, I worked A LOT on optimizing the performance of the SPA (size and speed).
Ah yeah, then I must have run afoul of some UX issues. There are a few other UX oddities like the wording on "exploring" cards - I think I was looking for either a global search or specifically the word "search." And the fact that I couldn't find the Chinese flash cards without watching the video on the landing page seems like it's another UX hotspot.
I'll check it out again later. Thanks for the hard work.
UX is not my strength, for years before this I was doing fulltime math + MATLAB :). But it's improving! Yes, it was even worse than it is now not too long ago :o
A premium feature which might also be valuable to users would be tie-ins with other platforms. E.g. you are taking a Udemy course and it has a batch of cards created by the instructor.
There is currently no download option for the DB. I had to focus on other stuff. Though, most of the 1.8M flash cards that I currently have are under a Creative Commons SS BY licenses. So you can certainly reuse them.
No, the currect feature set will remain free forever! I will offer additional features for premium. I anticipate similar prices to my competitors which should be $8-$10/month or $40-$60/year.
I'm currently learning ASL, which along with other sign languages would greatly benefit from a spaced repetition platform like this. Maybe an expert signer can weigh in here.
The interesting differences between, say duolingo and what a sign student would want to see:
* Flashcards are okay for some signs but plenty of signs are much better seen animated
* some signs are complicated and you need to see the whole signer from waist up; others are simple enough a simple image would do
* Short youtube embedded clips are okay except loading times are aggravating
* clips should be high res; some finger actions are small and detail can be hard to see
* there are variations between different sign languages, eg BSL and ASL
* source material is hard to get but there are a few sign teachers working on their own, one video at a time. They might be interested in partnering.
I'd probably suggest animated webp. They're super small so they're fast to load. Browser support is limited but since it'd be specific to a course... User will just have to live with it. I do currently create webp for every png/jpg upload but I'm actually not sure if I accept webp uploads. What do you think? Whould that help you? Please do reach out per email, I'm definitely interested in supporting sign languages. That'd definitely be prioritized since I think it's important.
Datomic is awesome! I'm loving it. I'm using the "Pro Starter" edition with a single transactor + 2 Cassandra nodes. Only thing I disliked was that ref-many are unordered (a set).
I have not considered Titan, I looked into JanusGraph the other day but I have intention to switch.
I dabbled in RN + CLJS a few weeks ago and got some toy screens running. So: Yes I'd use that stack for a native app!
Sorry to ask another question, but one thing holding me back from a Clojure-oriented stack is JS interop. I know there's work being done on getting CLJS to work with npm and now there's this thing about global exports for foreign libraries[0]... for a new project I need to use a bunch of libraries not in CLJSJS.
How was your CLJS experience with JS interop? Would you still use ClojureScript if you had a lot of JS dependencies?
I'd still use CLJS. Just fighweel alone is worth it. I can see any code change in <1s and have the exact same UI state. It's just much faster for developing.
Interop is not bad, I don't do too much interop. I don't use npm-deps but just bundle the React builds separately and include them in the HTML. They rarely change and I set caching header to immutable so the browser will just read them from memory (my CLJS app changes multiple times a week). If you want to use a lot of NPM deps I'd recommend shadow-cljs, there has been a lot of development by the maintainer and it seems to work incredibly well for NPM deps. Feel free to ping me on the Clojure slack, there is also a beginners channel that is very active. And there is a shadow-cljs channel where the maintainer will quickly respond.
How would you tackle prioritized learning? When I research spaced repetition topics, the algorithms are normally not well suited to reviewing something before than its turn...
I have a different model than most existing spaced repetition algorithms that's more of a continuous model (I currently just sample it to get a due/"not due"). I actually worked a lot on it at the end of my PhD in signal processing (not publish research). But the idea is relatively simple to explain:
1. Let's assume: The flash card isn't new. You last review was 100 days ago.
2. It is due in 3 days but you have some extra time today! You have only 10 cards to review but but have some extra time right now and you're are gone for the weekend.
3. It shouldn't matter if you review the flash card today already even though it's only due in 3 days. If it ends up being 100 or 103 days... It doesn't matter. It's all just a probabilistic model anyways with much larger errors.
4. So in premium: After you've reviewed your most pressing/recently-learnt ones you can keep going and pre-learn your old ones.
There is a few more ideas I have but this is basically it.
How is this different from Anki’s review ahead custom study mode? I had extra time today so I studied two days ahead in my reviews. It shows up as cram time on the statistics tab.
No there is not. I have kind of the feeling that Anki users are tough to convince to switch to an online platform (judging by comments I've received so far). It's tough since you'd have to find a corresponding flash card for each flash card in Anki. But if there was enough interest I'd probably see what I can do. Maybe just provide a JS API so users can write an import script? Just a thought, not a promise.
It would be a bit of a copyright nightmare. My economics cards are _all_ copyright infringing, either copy and pasted summaries or definitions from different textbooks.
Please use the category "Engineering". Categories are currently hard coded and some have special handling in front-side code so categories will have to be manually requested.
I think Latex support is interesting. I could lazily load it and then render it. Something to think about for the future...
My use case is I want my child to grow their native vocabulary, eg. when they read books with new words that they don't know. I couldn't seem to be able to pair the languages that way. Is this supported?
I strongly suggest using Anki. It’s free unless you want to use the iPhone app and cloze cards are exactly what you want if the goal is to be able to use new vocabulary correctly. You can even add dictionary definitions in the Extra field.
All that said the best way to increase native vocabulary is to read more.
Absolutely! This is actually one of the key differences from other SRS software. Ie. you can search the central DB for flash cards and just "add them to the learn queue" or "Claim known". Check out the video on my landing page at 4m:40s for how to do it.
Sorry about the rate limiting. Accounts without much history are sometimes subject to extra restrictions because of past abuses by trolls and whatnot. We've marked your account legit so it won't happen again.
They cannot currently. My goal right now is to avoid too much fracture and try to build a high quality central DB with lots of audio/image files and the right synonyms and (not yet impl) linked example sentences. Though, I can probably see the value in private forks flash cards (as well as courses!) but it's not a near term goal (gotta focus on more core stuff).
My own custom one actually. I wanna get more data however to improve upon it. Right now I don't claim that it's better (or worse) than the existing ones.
SRS is excellent for memorising texts but better as part of a solution than as the solution. What you _need_ is a recording of you reading the text so you can listen to it repeatedly and repeat it after the recording as fast as you can. If you do that enough times and pause to try and say it before and after the recording you’ll get there eventually. What SRS does is makes it easier to chunk the text so you remember sub units.
Take the entire text and make each paragraph or page a card and make many, many clozes (fill in the blank) for phrases, sentences or words. This will work as a complete solution all by itself but not as fast as doing it and attempting to recite your chosen text.
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".
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?
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!
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).
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!
I had an opposing experience. I picked "Schedule" on each continent in the Countries course, and nothing happened. I do not know how to start the course.
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.
I use Anki every day but I've always found its interface unintuitive, more often than not I have no idea what the various configuration options mean so I just tweak them randomly until it kind of work like I want. Certain things I've never managed to do (for example how to increase the reply time to over 60 seconds in the Android app).
So although I like Anki overall I would welcome an alternative to it.
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.
Anki's webbased app leaves a lot to be desired. There's a lot of barriers when it comes to sharing / editing community made cards. You have to physically upload your deck, and people have to have anki installed on their desktop normally to preview said cards.
You can view ankis webapp here https://ankiweb.net/. There's almost nothing on the homepage. Just a login. Not exactly enticing for users looking to review their cards online. Anki's web interface is extremely barebones. Its more or less the equivalent of a dropbox folder or an amazons3 storage box. Not a place to share, debate about the writing / content on cards, a forum where people suggest new features on ankiweb, etc. Its also not the place you preview your cards either. Ankis webapp doesn't let you upload images through there. Everyone puts images on their cards via desktop app
Ankidroid, a 3rd party app, makes anki extremely useful. I currently make all my cards on desktop, and then preview all my cards in the morning going to work everyday.
Anki is also extremely client-side customizable, which is one of its biggest pluses. I currently use about 5 or so plugins to make data entry more streamlined. I have some other plugins that read/writes to the database that affects both ankidroid and ankidesktop app.
Comparing this to "soyoulearn" or "memrise" or "duolingo" the site is much more inviting for community driven features on its webapp.
However, the problem with a webapp with a centralized database is two fold.
First, it degrades the quality of the cards and card deck. Imagine you had to study for test in college. You could write your own cards, or borrow your friends card who took this test last year. The content of the test might be exactly the same, so the cards are still relevant. However, since you didn't create the cards yourself, you might not necessarily understand the context of why it was made. What specific situations that card is useful, and the hard earned experience to make it. You don't have the same appreciation of a card created by someone else than if you made it yourself. You don't get the "aha!" moment when reviewing someone else's created card, e.g. "Oh I made this card in the university Library and my friend so and so said this great idea that I jotted down on the card".
Second, it encourages laziness during card creation. Why create a deck when someone else has made one? Especially if its community driven and approved.
In summary - a community driven flashcard webapp (soyoulearn.com) is only better than a customizable client-side app (anki) for the following reasons:
- If you don't want to make cards, and don't mind shallow content behind each card to save yourself time
- If the cards you are making are predictable in nature and well established( e.g. cards for a specific course, languages, etc)
- If you don't mind purely memorizing a set of cards without having a physical memorable moment attached to that card, and understand that these cards have less value than ones created by yourself.
A client-side app like anki will always be better for the following reason
- If your card was hard-earned, e.g. your a programmer and made a error, you want to remember how you solved it
- You read a niche science paper that only a handful of people look at, and draw meaningful insights from it
- If your card's content is extremely niche, meaning there's going to be few people making cards related to that content
- If your card might possible be outdated overtime (e.g. the changing state of javascript / webdevelopment - your card regarding a specific library might be irrelevant next year), and you need the ability to fine tune your deck easily (suspend card).
- Your cards are created at random, they aren't created based off of a syllabus or university course
- You want to have the highest quality deck possible and scale it upwards
I think both have their pros and cons. For me, I would definitely prefer to dump all my language learning on a webapp / use premade decks, but all my programming / hard earned experiences on anki. As of now I seperate my cards based on the context of how they were created - were they created in a bulk, batch process (e.g. memorize a set of APIs), or did I have an actual question, and I created that card as a result?
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!
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.
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.
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.
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.
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?
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.
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!
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.
You can discard a card during initial learning and also during review. This will however remove it so it won't ever come around for review. Not sure if that's what you want? I don't currently support "claim known" during learning, though implementing it would probably be pretty easy.
I don't currently have an option for multiple choice learning. That's something I might do in the far future.
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.
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.
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?
Thanks! I love tooltips so that's why they're everywhere :) I'll have to think about if I want to remove them from the menu or make them slower.
Yes, enter should submit the form. I think I had `onSumit` defined at some point but it gave me issues so I reverted it. I'll look into it again and make sure it works. And yes, please feel free to contact me!
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.
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 a website with many information and tools about training you brain
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?
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.
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.
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.
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.