Show HN: Lurnby, a tool for better learning, is now open source (github.com)
I've been working on Lurnby for 2 years. It's kind of like a mix of pocket + kindle + anki.
It lets you => add add epubs, pdfs, and web articles to the app => highlight and add comments => tag and organize highlights => review them with a spaced repetition system
Today I made the decision to open source the project. I'm passionate about helping other people learn to learn better and hope that this will allow a lot more innovation in the tool and the space.
I'm very new to open source and development in general really, but looking forward to receiving the guidance of the community.
69 comments
[ 3.4 ms ] story [ 166 ms ] threadThats just my $0.02
(also maybe.. is making an account necessary?)
And one more question, can it also pull multi-page documentation, or just single URL's? I assume it downloads websites and makes them offline available, or is that a wrong assumption.
A version that runs just locally on the computer would also work, but that wasn't the main focus of this particular iteration.
I haven't built a robust offline functionality yet. That's something I'm thinking of doing in the near future. Was thinking of having your X most recent articles cached.
It parses the content of articles and stores the text in a db. Then as you highlight and add notes, the text gets updated with the annotations.
It doesn't pull multipage documentation. Each url should be added manually.
At least for now.
If that's not possible, than my second preference is a docker-based deployment on Unraid. That's the easiest way for me to self-host. Nice to be able to point to an existing DB for that too.
I mean, potentially.
I'm 100% with you on file-based storage and flexible storage interchange APIs. I have a bunch of stuff I'd like this kind of tool to interoperate with.
Also eval adding a Dockerfile for super-rapid deploy
Does format as a shell code block mean write it in a way that it can just be copied and pasted easily?
IIRC you can do that by gating code like this:
in markdown, but it's been a while.(The spaces are necessary for HN markup, but not the markdown formatting).
Is it possible to then export the cards to Anki?
You can export in either txt or json.
And you can export 3 ways.
1. All highlights & notes from an article (article = epub / web article) 2. All highlights & notes from a particular topic/tag 3. All highlights & notes from your entire account organized by article.
I think that's how it works. Wrote the export code a while ago so the details escape me at the moment.
There are suspicions of course, such as how deeper knowledge of a subject is able to integrate the information into more parts of the network, but afaik the actual biochemical mechanisms and how those translate into network dynamics and recall for a lot of memory and learning functions are still fairly unknown.
If anyone knows of some solid studies (preferably using humans) I would be more than happy to read them, learning and memory is a fascinating area of neuroscience.
[0] https://www.kernel.com/
I'm not sure that one touches on neuroscience; it's more psych-oriented if I remember correctly.
What's your plan with lurnby.com?
This helps give some structure for what I should do to make it easier for ppl to engage. Although I have to get organized enough to outline all of those things first. :D
Plan for Lurnby.com is to keep it up, assuming the hosting costs don't spiral out of control.
This would make way more sense if it was an add-on to existing information/knowledge management software like Zotero. The base software would take care of the "add documents to the app" workflow, and the "highlight excerpts and use them to build cloze-testing SRS cards" thing could be an added feature. Having everything be a single "app" can be too limiting at times.
I agree with you. My goal isn't to actually make it a closed system like this. I ultimately want to make it as easy as possible for you ppl to get content in and out of the tool.
Lurnby doesn't have the NICEST reading experience possible. It's better in some aspects, but struggles in others. The plan was always to figure out how to allow people to read wherever they are comfortable and still make use of the tool to facilitate memory and retention.
First step is to decouple highlights from in-app articles, and allow them to be linked to external sources instead.
Then it's just a matter of importing them into Lurnby. I actually set the foundation for that already with another script I wrote recently. https://github.com/Roznoshchik/spreadsheet-importer
This would also allow the web extensions to be more useful and allow sending just highlights instead of articles.
My goal is to make it flexible to integrate with any existing workflow, but also be self sufficient for people who don't use any existing tools.
But it's a long road to get there.
I was thinking about reusing an existing store of scraping instructions, InstantView by Telegram (iirc that's the name). Looks fairly straight forward to write a parser for that spec. However, i wanted to be able to store some in a repo on my own as well, but i fear DMCA strikes on a repo that stores instructions to scrape pages.
How did you solve this?
If you don't mind me asking, how were you going to implement spaced repetition? Since the Incremental Reading algorithm has never been published as far as I know.
[1]: https://github.com/danburzo/percollate
My primary goal was to make something i wanted, which means lots of experimentation across the board. I also want to make a very general purpose/flexible system where you can tweak the underlying SR algo based on the type of knowledge. Ie i want to store music scores, as well as units of fact, and the SR algo or logarithms should support either.
Pulling content (Reader) seemed the hard part to me, mostly because of legality concerns.
For exporting to Anki, I suggest you look at Anki-Connect[2] if you haven't already.
[1]: http://super-memory.com/help/read.htm
[2]: https://foosoft.net/projects/anki-connect/
https://ankiweb.net/shared/info/935264945
My project is not related to the Incremental Reading Anki plugin.
Would love to know what about the flow was clunky and why it didn't fit your workflow. Might be a lot that I can learn from that.
For a while I was trying to sync a Zotero library (since I need citation management when writing papers), and do all my academic reading (which is mostly pdf's) in Polar, but it was just a bit too much overhead to stick with.
Thanks for sharing your story, it helps to put things in perspective. I wonder how much they've improved since you used them though. The website looks very sleek.
If lurnby could access the current DOM in the current browser tab via the browser addon and extract the content via readability.js, I am willing to be a paying customer. I believe this is technically possible.
Alternatively, I also email things to the app - the subject becomes the title, the body becomes the article.
But yeah, considering that the goal is to reduce friction, the manual work isn't ideal, but it gets the job done.
I'll try to take a look at what's possible with getting the current dom.
One of the most frustating thing about the current generation of note-taking apps has been that either they are available as an offline app, or as a VS Code plugin. Many of them have turned into VC-funded startups - keeping the web version as a proprietary product, blindlt following Roam.
Do you mean that they aren't available as offline or vs code plugins? I personally use Bear locally. I find it's minimalism refreshing.
Great to see the suggestions people have had (letting people see the product, giving install details etc) and you've been super responsive.
You mention in replies below about integrating with other tools as a way for it to work. I don't know how feasible this might be, but a tool I've been keen to use that it might fit well with is Archive Box: https://github.com/ArchiveBox/ArchiveBox
If you could integrate with something like that, it would focus on managing the content and this would be about the learning/recall testing. Is that the kind of approach you'd be aiming for?
One of the things I want to add to the application soon is some sort of "Post" function. Wherein you write something that synthesizes data from multiple sources and you can add in your highlights as quotes.
So really just a dedicated writing feature. This is another thing that's proven to increase comprehension and retention, synthesizing some learning into a blogpost or something like that.
So with integrations, that's the kind of thing that is perfect for integration. Because although I want to add it myself, there's no way that I would make something as dedicated and enjoyable as a tool that's only concentrating on the writing and notetaking experience.
As is allowing people to read elsewhere and import their highlights.
As is allowing people to review in some other place.
So I guess my perspective is that I want to offer a total experience, that's completely non binding and allows you to get the data out at any point to move it to your app of choice.
sorry, I rambled. Not sure that made a whole lot of sense :D
It's really exciting to open source a project, Lurnby looks cool! What do you use the spaced repetition for?
[0]: https://archivy.github.io
Today's been a bit of a nervous day for me actually haha, I didn't really expect this attention. Open sourcing just felt like the right thing to do for this app and because I just don't have all the skills :D
The spaced repetition at the moment is for the highlights. All highlights get marked at an initial level 0 and then move up or down depending on you reviewing them.
Eventually gets to the point where a highlight is shown to you yearly.
In the future I was thinking of doing some spacing around finished books or articles. Things like - you finished reading X 10 days ago, what do you remember?
But don't think I've thought through the details around that enough.
Author of https://fluentcards.com and https://germanreader.com here. I really like some of the ideas you implemented in the app.
Your landing page and the new features vlog are amazing! You’re clearly very dedicated to the project and it has a cute personal touch. Also kudos for open-sourcing it!
Looking forward to trying out your app more deeply. Cheers!
I didn't realize kindle kept track of your dictionary lookups. That's a cool thing and makes a lot of sense to review those.
I initially was using the python port by ReadabiliPy, but it wasn't working as well as the js code in most of my tests, so I just switched.
But yeah, open to exploring different options to make it less complex.
And you're right. It was in JavaScript. I finally tracked a copy down (the original is long evaporated): https://github.com/masukomi/arc90-readability/blob/master/js...
On that end, having been using this tool and process for about a year now, I've come to the feeling that I shouldn't worry about that and just think of it as a part of my daily process.
Rather than being goal oriented about remembering something, I've just started to trust that the information is in the system and the system works. Things naturally and serendipitously appear in my review feed and my memory and retention of them improve, but in a less planned way than it might be with a more focused process.
It would be nice if the whole process was easier, especially getting the highlights back.
How do you get the highlights back currently?
Consider me surprised! I find mine (Nova 2) very fast. The e-ink page turns are kind of uncomfortably fast, even (recently realized I prefer my old Kindle's slower blending). Admittedly the UI can be a little quirky sometimes, which I suppose is what bothers you.
> How do you get the highlights back currently?
I use Syncthing for two-way sync, so that's how the highlights land back on my computer. Buuuuut ... I don't do anything with them. I recently discovered that the KOReader highlight data format isn't that great anyway, so I still wonder if there's some kind of standard format for processing them further.
Re the highlights
How would you want to process them? Are you turning them into flashcards or just adding to a doc somewhere?
I use Logseq as my external brain for everything else, but am having a lot of trouble finding a good way to get my highlights and annotations from epubs into it. It has a great cloze feature with flashcards for reviewing things. It can also do highlights and notes from PDFs natively, which is awesome, but I'm a voracious epub reader on my Onyx Boox Poke 2 Color.
KOReader works great on it, but I really need something that would export my notes in md. I don't need it to do so on a daily basis. It'd be fine for it to be at the end of reading the book. But if it COULD export the notes on a daily basis with a block reference to the book title, that'd be even better.
It's interesting to hear from more people that their onyx device works great, I've really struggled with making mine a part of my workflow. Also, I had no idea they now had color options. That's kinda cool!
Re the export to MD. I don't see that as a problem, the question really is about file formatting.
1. Do you have an example md file that's formatted in a way that would work for importing to logseq?
2. Export on a daily basis - would this go via api to somewhere? Or manually send you a download file on a daily basis? What's the idea here?