Launch HN: Athens Research (YC W21) – Open-Source Roam Research

340 points by tangjeff0 ↗ HN
Hi Hacker News! My name is Jeff Tang and I'm the founder of Athens Research. Athens is an open-source and local-first alternative to Roam Research. Roam Research is a notetaking application, and what they really got right was the "bidirectional link."

The problem with notetaking is that we don’t look back at 99% of our notes. Organization systems like PARA, BASB, and GTD can extend the shelf-life of information, but they’re mechanical and tedious to maintain. On the other hand, without a system, we just hope that search will one day have the answers. What comes after search, tags, and folders?

With bidirectional links, you never have to worry about where you write a note. Bidirectional links allow you to connect any two notes together, creating a knowledge graph. Structure emerges organically, bottom-up. This way of joining any arbitrary entities together is a paradigm shift (sorry to be cliché). The graph-based approach subverts the tree-based hierarchy most notetaking apps (and most applications/OSes/computer systems) have used until now. This is fundamental because hyperlinks are primitives, used by every single internet user. Just imagine using computers and phones without links! This is why Athens is about more than just notetaking. I believe networked applications with bidirectional links and data could become a new category itself.

Of course, this bidirectional idea isn't new. In fact, it goes as far back as the origin of the Web. It's the original concept of hypertext and Xanadu, which Ted Nelson has been advocating for decades. More recently, aspects of it were attempted by the Semantic Web. Yet the adoption never really caught on, until perhaps now.

Something else that's interesting about the most powerful networked tools like Roam and Athens is that you can't really make these apps with JavaScript or plaintext/markdown. For maximum power, you want a true graph database. Both Roam and Athens leverage a front-end graph database called DataScript, which is written in Clojure(Script). JavaScript doesn't have a native analog, and Neo4j is only server-side. This matters because I believe this is the first consumer use case for graph databases. I believe both Roam and Athens are general-purpose platforms where individuals and organizations can centralize all of their knowledge and tasks. I believe the graph is the right data structure to do this with.

More broadly, I believe networked applications beyond just notetaking can emerge. These networked applications can develop unique interactions and patterns in-app. They will even be able to share data between one another—Datascript has a native interface for querying multiple databases at once—unlocking new ways for users to synthesize, analyze, and transform their data at scale.

I started working on Athens in March of 2020 after interviewing at Roam Research. At the time, I was certain Roam was going to change the world with their vision of networked thought. Pre-Roam, I was a power user of Notion, even giving a Notion productivity workshop to my friends (where I actually mention Roam https://youtu.be/4HXHk5C3bSc?t=5820). But it was clear to me that Roam was doing something different from Notion altogether, on the graph. It was clear to me that this was about more than just another productivity app.

Unfortunately, I had a glaring lack of Clojure experience. It didn't seem like I was going to get a call back from Roam, so I saw two options going forward. Option one was to find other applications of graphs and bidirectionality. I saw an opportunity in messaging to develop a "Slack Killer." Chat is another place where information was constantly getting lost in streams and siloed channels. Option two was to develop an open-source version of Roam. I wanted to prove I could learn Clojure fast (and hopefully get a return call from Roam). After prototyping these two options for about a wee...

152 comments

[ 2.6 ms ] story [ 219 ms ] thread
Athens has been incredible for me over the past week, as someone that has bounced around using Workflowy, Dynalist, and Obsidian.

The great outliner features of the first two, and the backlinking and graphing of Obsidian. My only real reservation is that files are not in Markdown. Is there a plan to address that, or is a DB central to the architecture? Currently using LogSeq because of this but eager to switch.

Yes! Good import/export functionality is important. Ultimately, it would be awesome if there was direct serialization between our database and markdown. This would allow seamless "import", the same way Obsidian/Foam/Zettlr are directly interchangeable.
What do you see as the advantages vs. Zettlr? I haven't got to a point where perf seems to be an issue that would require a real graph database and having your knowledgebase just be a collection of markdown files is the ultimate in local first no lock-in portability.
The current major difference between markdown-based and db-based apps is block references. Over time, the difference will become significant as knowledge bases grow in size.

CSV -> Excel -> SQL -> Distributed Cloud DBs

Furthermore, our database supports data types, including numbers, dates, etc. I don't think any networked notetaking app has executed well on tables and non-string types. UX for tables is generally not great for markdown.

I'm not really familiar with Roam as I'm not interested in a non open source tool for this type of app (why I am more interested in what you're doing). What are block references?

I guess I can see perf becoming an issue for a company wide knowledge base or a wikipedia type of thing but for a personal knowledge base which is my main use case currently I'm not clear it's necessary to have a real database and the benefits of just a bunch of markdown files are more compelling to me right now. Maybe that would change if my knowledge base got big enough or my needs more complex regarding links and references.

The simplest way I can explain block references is the ability to link any line in any file to any other line in that file or any other.
> The current major difference between markdown-based and db-based apps is block references. Over time, the difference will become significant as knowledge bases grow in size.

That should be true, but so far it is Roam with the biggest problems with performance, from 30+ seconds of loading each time you load/refresh tab to constant lags in normal usage for some users :)

I personally like the most this mixed approach of Logseq - app internally uses DataScript, but data is ultimately stored in plain files.

It's not either or as you mentioned! Plan to have user data stored in plain files as well.

Roam's performance suffers mainly on first-load because they are server-first, and they load the entire db into memory at the beginning (such that it's quite fast thereafter).

Once we have true local-first data structures with something like https://github.com/replikativ/datahike, we could still have fast in-memory, but also fast initial load.

> Plan to have user data stored in plain files as well.

That would be cool :)

> such that it's quite fast thereafter

Not always :) I saw that myself and I also see complaints on Roam Slack. In my experience it mostly depends on how many queries you have on given page, but sometimes it lags (long waiting time when switching between pages or opening note in sidebar) also with simple, "atomic" notes. But they overall struggle with polishing existing parts before adding new features, so maybe performance is still on its early days in Roam.

Anyway, I wish you good luck with your project :)

Ah, very good to know. Don't use Roam too much these days ;) Sometimes it's hard to know if their performance issues stem from networking (they use Firebase) or just client stuff (i.e. datascript and Reagent, Clojurescript's React wrapper).
Did not expect Zettlr to be mentioned here. Currently my go to note taking app.
Wow! I'm glad that more people are in my exact predicament.

I am currently using Obsidian, but would love a markdown-backed Workflowy interface that I could switch to if possible.

Perhaps logseq is that app?

Very interesting! Good luck!

1- Why did you choose Clojure?

2- Last I checked, Roam founder here on HN said something along the lines that "the self-host functionality is on their minds"...this was around late 2019 I think. Wonder what's the update on that...

3- Actually, personally if I want to use this approach, I definitely want to self-host. Wonder what would happen to the data if this tool gets updated. Is it just markdown + some syntax for bidi links?

1- I cover this in the post:

> Something else that's interesting about the most powerful networked tools like Roam and Athens is that you can't really make these apps with JavaScript or plaintext/markdown. For maximum power, you want a true graph database. Both Roam and Athens leverage a front-end graph database called DataScript, which is written in Clojure(Script). JavaScript doesn't have a native analog, and Neo4j is only server-side.

3-Yes, we've already updated the database before within the application. DataScript makes it quite easy to update the schema.

Have you benchmarked this? I don't think a lifetimes worth of notes (maybe 10,000+ documents?) will slow down sqlite, even with many interconnecting nodes.
I haven't yet! I'm sure some Roam DB's are over 10k documents. If Datascript-based applications can get past the initial load time with better client-side caching, performance will always be better. "Local-first" apps could become their own new category. I recommend reading https://www.inkandswitch.com/local-first.html
Is it something like Obsidian (https://obsidian.md/) but with more than just markdown files?
It's closer to Roam Research, the project that inspired and catalyzed Obsidian.md

There are a few major differences, but otherwise, the functionality is mostly similar.

Congrats on the launch! Are there any good resources for using Athens as a Zettelkasten in the lines of [0] or [1]?

[0] - https://www.roambrain.com/implementing-zettelkasten-in-roam/

[1] - https://medium.com/@anthonyclemons1/roam-research-the-digita...

Would be great to have a canonical resource like that. For now, I'd just read the Roam resources that use block refs and bidirectional links apply or ask in our Discord!

We actually have people doing a live workshop right now on workflows for Athens in our Discord!

Having tried running the whole stack on my local a few times in the past -- which didn't work well at that time -- I'm excited to use it now.

One question I have is: how much compatible will it be eventually with other tools like Roam/Obsidian/Logseq (when we want to import the graphs)?

Hi Jeff! Great to see a Roam alternative backed by YC! Congrats on the launch!

What are you thoughts on the other Roam alternative, Logseq[1]? It seems to be doing really well and has a lot of features, from github sync and encrypted data to custom themes and publishing, it looks like privacy is their main goal, while being local-first and opensource, do you think that such features will be implemented in the near future and will those features become somewhat a standard across PKM's?

Good luck with the launch!

[1] https://logseq.com

I really am looking forward to Logseq maturing since it offers `org-mode` markup support and can potentially inter-operate with `org-roam`. :)
LogSeq is great, tried collaborating with them a while ago, starting with a shared spec, but it didn't work out. How much of this is standard is up to the tool makers!

All features are possible, especially given similar technologies. The question is about design/product - whether we need to have all these features. Most notetaking apps are too bloated IMO.

I don't want to sound too harsh here but I had a loading screen come up to show me a page of text. I know it's not plain text and probably has some giant javascript framework behind it but still a loading screen for that page?
This is not a webpage, but fully functional web app (you can edit that text). That text is stored as plain text, then parsed and moved to DataScript (in-memory clojurescript database). That's why you see loading screen. This happens only when you reload tab, otherwise there are no loading screens when one is working within this app (it also has a desktop app [electron]).
E: I somehow replied to the wrong post. Sorry about that.

From all the Note-taking tools, I liked TW best, as the "story river" is a genious visualization, but I found the text editor very cumbersome and annoying. It just did not feel good to write my notes.

The "tag-interface" always popped up and could only be closed with the mouse, there were some issues with tab, ...

---

I then moved to Dendron and finally to org-roam. I think markdown notes are superior to org-files*, but I also wanted VIM keys, as being able to write without hassle is the single most important thing when taking notes. VSC of course has a VIM extension, but it is very much a second-class citizen. There is also the option to emulate and use nvim, but then I would have to set-up and customize nvim. Why not move directly to Emacs, where Evil reigns superior?

*org-files are very parasitic. I only consider them plain-text in the sense that they can be opened and edited with any text editor, similar to SVG, JSON and XML. But they are not exactly plain, and pretty much unusable outside of emacs/org-mode.

This is amazing. I like Roam Research but I refuse to give full control of something so important to any third party. At this point we have all experienced what it is like to give the control over your digital life to FAANG-like entities with priorities other than their own users well-being. We can and should ask for better.

If it will be my second brain (please note how important this sounds), what I want is to be able to be in full control of the data I generated with it.

I'd happily pay for an Open Source SaaS service from which I can download my data and use it in my own computer/server if I wish to do so, much like Sentry or Strapi.

Edit: Clarity, grammar and spelling

Roam has plans for offline-only storage.
Is that out of beta and working now? Also is it still only available in the $500 (?) dollar plan or what ever it was?
Nope and yes!

I am just pointing out that closed source doesn't necessarily mean 'not in control of your data'.

True. And too bad, would give it a try again otherwise.
You can export everything from roam in json or markup... does that basically not suffice?
Have you actually looked at what's exported? You need to do a lot of parsing, and modifying before that content is usable...
Someone could write a viewer, or converter for this format? Should be simpler than writing a new creation app.
You could, but why? I wrote a small package to automate my backups, and transform the content into something readable for myself. It's far from feature complete, even for my simple personal use.

But if you're doing a complete read-only copy of roam, why not go all the way and make it editable, and compete with them instead?

If, like OP, you are concerned about the closed nature of Roam, you could make that converter instead of a replacement for Roam.

You could say openness is “a feature, not a product”, and it’s a feature that could be retrofitted.

You could, yeah.

You could put in a lot of work, just for read-only feature parity.

Or you could work some more, and have a competing product.

You seem adamant, that the former is a better path, but I don't quite see why would you do all that work for naught.

(Roam already broke my backup script 2 times, and there are better uses of my time than interfacing with a proprietary product, if there are better alternatives.)

I'd say a parser is an order of magnitude less work, but if someone wants to make a full product I'm not going to try to stop them.
That's fine. I'm quite happy with roam, I have the exports if I ever need them.
> I have the exports if I ever need them.

Do yourself a favor and check if the exports actually have what you need, before blindly trusting it.

That's as useful as exporting your excel sheets into CSV or exporting your Google takeout backup. Yes you have your data, but can you do anything useful and continue working with it without a big deal of effort? I'd also like to continue working in the same learned workflow/method after I take my data.
One more point: the exported data in markdown (and maybe in json too) is lossy. It's not just that the you can't use it out of the box, but that significant parts of it are missing as well.
I don't particularly want to spend ages trying to find "perfect" when roam is "good" enough. The chances of roam disappearing over night are pretty slim and I take weekly backups of my data from them. Worst comes to the worst I'll dump it into a directory and grep for what I'm looking for.
Hey! This looks super cool. The desktop app seems fairly explicitly single-user (looks like 1 big transit file). Do you have any opinions on using these tools in general and Athens in specific to do knowledge sharing among teams? (I would imagine that needs some kind of transaction log, mostly hoping transactions commute and maybe stacking the deck with something like Pijul.)

Is the answer "host it as a web service" (and corollary "let us do it for you")?

Using a filesync service such as Dropbox, you can sync state across multiple clients. We have a commercial user doing this. The single transit file won't scale however, so we've started working on a transaction log just as you said. Want to make sure it's pretty robust before deploying, however, as no data loss is the first priority! https://github.com/athensresearch/athens/pull/624

To your second answer, yes and yes. I write in the post:

> As for how we will make money, most users, even technical ones who could self-host, don’t want to self-host (but they value that optionality and insurance against lock-in). They want a subscription SaaS, which will make features like backups, integrations, and collaboration much easier.

> The single transit file won't scale however, so we've started working on a transaction log just as you said.

Would it be possible to deploy a web-based instance with the server handling storage and collaboration? If so, I might try my hand at packaging it for Sandstorm once that's available. Would make self-hosting Athens super easy for Sandstorm users.

This is my first time hearing of Sandstorm!

Their page https://sandstorm.io/how-it-works writes:

> For example, when using Etherpad – a document editor app – on Sandstorm, every document lives in a separate container, isolated from the others. The front-end and database for that document live in the container. The container has a private filesystem for storage. JavaScript running in the user’s browser can talk only to the document container for which it was loaded, no others. All of this makes up a single “grain”.

Right now Athens works directly with the filesystem (and therefore filesync services), not a REST-ful/HTTP server. I'm not sure how Sandstorm apps "talk to the document container." If they allow read/write access to the filesystem from the web app, it could work, but I'm not sure how Sandstorm works.

Ah, yeah, it would need to work with an HTTP server for this to work well. Sandstorm has persistent storage on the server side - think server-side code running in a Docker container with client-side JS restricted to communicating with that container on the server. Client-side JS can't interact with the filesystem.

I guess I was assuming that real-time collaboration would eventually involve some sort of synchronization server as a rendezvous point, in which case that would be the natural thing to run on the server side in Sandstorm. That may not be the route you're taking though!

This is amazing. Until very recently the only tree structure "outliners" I found somewhat viable were Workflowy, Dynalist, Roam and Transno, all of which are proprietary.

Logseq eventually added an open source option, but that it fails to keep sub trees collapsed pretty much kills it.

My current favorite note applications are Dynalist and Workflowy, but during my use I have always had a bad stomach feeling about privacy, inability to use it for work related stuff and always thought "this needs some features breaking out of the tree structure".

I'm not entirely sure Athens is trying to be exactly what I'm thinking of here, but getting competition in the space is great.

I'm wondering how much of this can be implemented as a simple CLI tool that rebuilds a document graph by looking into a directory full of Markdown or Org notes. Ripgrep is certainly fast enough to perform search like that, without any index. That's how some Zettelkasten-like addons perform search on top of an Org directory.
> Something else that's interesting about the most powerful networked tools like Roam and Athens is that you can't really make these apps with JavaScript

How come? There's no single feature that you can implement in any other programming language that you can't also implement with JavaScript, right?

Have you read PG's essay on Lisp? (Clojure is a dialog of Lisp) http://www.paulgraham.com/avg.html

Main reason is access to datascript, one of the only client-side graph databases, which doesn't work the same with JavaScript.

I've read it now. I still think it's obviously wrong to say that JavaScript can't be used for this. It's not like we are comparing Closure with Cobol here.

I highly doubt using datascript will give you a significant advantage over competitors in the long term, and I say this as somebody building pretty much a competitor app with Electron, but that's more a matter of personal opinion so I can only wish you good luck about that.

> you can't also implement with JavaScript, right?

I don't want to sound like a condescending snob, but I honestly wish someone tried to convince me years ago. I myself have spent over a decade dealing with JavaScript (and many other languages as well). Multiple times I had a chance to learn Clojure, but I dismissed every opportunity. I didn't like it. It seemed to me there was nothing "sexy" about it. And one day, I just decided to give it a try (it appeared that I tried many things, and finally I had to try this). The basics I learned pretty quickly. But the more profound philosophy of the language and its ecosystem took me quite some time.

It is incredibly challenging to attempt to explain in a single comment what makes Clojure so much nicer than everything else I have tried before. And I promise you, I did try using lots of different things before that. But please, I urge you to explore it wholeheartedly, and I promise, you will be rewarded. Accept it with all its intrinsic beauty and unavoidable flaws. I guarantee it - you will never regret that.

Y'all both are making great tools but consider giving a read-only view of the page when javascript is disabled. After disabling JS this gives me a blank white screen: https://athensresearch.github.io/athens/ Same thing when i tried it with roam.
Considering the page you linked is a javascript application, why would anyone expect to be able to use a Javascript application without Javascript?
Is it a "javascript application" or a "page with text that uses javascript for dynamic features"...
How do you feel about Workflowy (another YC company) suddenly starting to add new features like bidirectional linking, transclusion and file embedding functionality?
Similar to my belief that a db will win over markdown long-term. The features you mention are all easy to reproduce, (especially with more open-source examples).

Long-term, open-source is great at building communities around a product/project, which is important for this space.

> For maximum power, you want a true graph database.

Do you have empirical validation of this claim? Anecdotally, Postgres has a pretty rich set of graph modeling features these days, and keeps getting more of them, and SQL databases are often operationally simpler than graph databases. Maybe this matters less in a client side app?

It's possible to model graphs in Postgres, but it's a lot more complex. This video compares two queries, one in SQL, and one in Datalog (the query language DataScript uses)[0]. We should probably model a knowledge graph with a graph database!

SQL databases are indeed operationally simpler but that's because they have been around for much longer and are more battle-tested.

[0]: https://youtu.be/tV4pHW_WOrY?t=1772

> We should probably model a knowledge graph with a graph database!

I realize this seems intuitive, but the relational model has proven itself to be surprisingly flexible in its ability to store multiple different data models efficiently. Similar arguments were made about the suitability of document stores to social networking websites ten years ago, and I think we know how that panned out.

> SQL databases are indeed operationally simpler but that's because they have been around for much longer and are more battle-tested.

I wouldn't discount the age and battle-testing, though. They're the first choice for data storage for many good reasons. Not least of which is the flexibility and power of the relational model.

It's clear that graph query languages are more expressive for graph databases. What's not clear to me is whether there's anything fundamental about that expressiveness, or whether it will eventually be replicated in SQL. Have you tried using recursive CTEs before?

Well the other aspect of it is that DataScript is client-side. That said, we could use sqlite in browser or even IndexedDB at this point. Yes, a pure JS/TS alternative without a graph db implementation is possible. But when I started, I chose the same language and db to ensure parity would always be much more possible.

Haven't tried recursive CTEs before, maybe I should dig into it more!

> Yes, a pure JS/TS alternative without a graph db implementation is possible. But when I started, I chose the same language and db to ensure parity would always be much more possible.

To be clear, I think Datalog and Clojure are both actually really cool, I'm just a huge SQL fan too. I think the architectural decisions you made in this case make perfect sense :)

I wonder if the quite extremely early/intense competition that Roam faced as soon as it was shared publicly will result in none of the competitors succeeding (at the very least as a viable for-profit company).

It's possible that sometimes we have to let early ideas fully succeed to see how the market actually performs. Else one can end up in an arms-race situation that ultimately only leads to a tiny user base for each company.

Things like Roam represent a very tiny fragment of a much larger puzzle that's existed for years prior to their existence. From a theoretical perspective, they are only novel insofar as they exist as concrete products today.

Sometimes it's healthy when spaces heavily fragment due to hypercompetiton. It allows products with strong technical and theoretical groundwork to show up later and render the entire space effectively obsolete.

I suppose that's a function of how large the market can be, and how badly it wants to consolidate.

1. Market: If the pie doesn't grow, you may be right. If, however, these become new platforms, with the majority of use cases and user value occurring in the future, then there's certainly room for many existing players to succeed, and for brand new players to. Most people don't even take notes. What if knowledge management looks different in 10 years?

2. Consolidation: Notetaking is pretty singleplayer and subjective right now. Until there are "network effects", reasons why people would want to purposefully join the same network, a lot of it will simply come down to taste. Note: network effects does not simply mean real-time collaboration.

You're right on here, but don't underestimate the network effect of Extensions for Roam.
True. Roam Extensions have been poorly managed so far, making it extremely difficult for extension developers to develop and maintain. Maybe that'll change, but an open platform is generally better for innovation.

Another use case that goes beyond individual notetaking is collaborative knowledge management for organizations. So far Roam's collaborative features have been lacking to say the least.

So basically a Github vs Gitlab scenario. Both are extremely valuable companies. One is more for individuals, the other for enterprises. Knowledge management can go broad and deep, and we're only processing and collecting more information. Never underestimate a growing problem/market.

Yeah I tend to favor the original unless the clones offer something with real differentiation. "Use this because its free and open source, but it's pretty much the exact same thing" isn't compelling to me. I'm not saying Athens is doing this, or that it won't succeed. It's just not a very compelling story imo.
This is pretty cool! I do urge you to take your domain name versus https://athensresearch.github.io/athens/

Could you talk about the clojure part of it? how instrumental was it to build Athens Research. could you have built it on Electron + Typescript for example

We have athensresearch.org and athens-research.com, neither of which I love.

We actually do use Electron! ClojureScript compiles to JS at the end of the day.

Ultimately Clojure is pretty necessary to use our database, Datascript, a graph db with its own data query language, Datalog. Datalog is a descendant of prolog, and makes recursive/reverse queries trivially easy.

athens.dev is available! (.dev and .app tld are run by Google)
Don't we see the bidirectional linking all the time?

Jira, Github issues/pull requests, all list the linkage from both sides?

Those are examples of why it is so incredible. To have it in your notes application as seamlessly as Roam does it is a game changer for notes.
Could you please share some of your experience/plans regarding implementing cross-device sync?

eg:

* Which db is the source of truth?

* How will conflicts from offline editing be handled?

* Will you be able to see edits made in realtime across the devices?

* Currently `index.transit` is the source of truth. When a user sees new changes, their current db is saved, and they have the option of opening the new one or continuing to edit the current version. The entire history of the db is saved right now (`{timestamp}-username.index.transit.bkp`) while we work on better conflict resolution and merging. * Don't have conflict resolution yet for offline editing. * We plan to make a websocket server for some the real-time UX.
This is amazing, the thing that scares me the most about Roam is that I wouldn't be able to export data. Also like Notion it gets extremely slow very quickly.

Hope that this local first solution will make you avoid the performance problems those apps have

I have been using vimwiki for around a year now, using pandoc to convert into html with a simple custom template, stork-search to search the files and syncing the collection weekly over to my other computer, phone.

I love this setup as there is no internet needed, full text search on all the documents and very less friction while starting to write something. I have tried other apps like obsidian, roam etc but keep coming back to this one due to its simplicity.

Simplicity wins. Pencil and paper FTW
Searchability really suffers in paper systems.
The search ability is one thing you will definitely want as your collection gets big. I got to know about stork-search from a post in hn and it worked very well for me, https://stork-search.net/
Yes. Orgmode mostly scratches this itch for me and has graph-of-notes rather than tree-of-notes already, and is reasonably futureproof.
Paper systems don't have to be "100% paper". All you need is the metadata from your notes. You can give each note a number and then add that number plus a couple tags and a short description to a spreadsheet. Alternatively, you can take a picture of the note and add that to your digital system. It's not how I currently do things, but it's infinitely better than a primitive digital system where you take notes and never touch them again.
Paper systems also suffer from "never touch them again", and adding a digital index only provides superficial search ability.

I'm not saying paper systems don't have a place - people have put them to use for centuries after all. They do have very real limitations though, and to be really useful require more ongoing work than many people are willing to put in, especially if they grow to an appreciable size.

Bullet Journals are perfect for that ( https://bulletjournal.com/pages/book ), I'm still using them for managing my personal life (ideas, goals, progress on stuff, daily journals, etc). Having knowledge base in digital format is better in many ways, but IMO nothing beats notebooks when it comes to solving problems and thinking.
> In order to opt-out of analytics, please become a User or Sponsor through OpenCollective.

Interesting way to monetize, not sure how I feel about that, but it would be nice if you'd at least list what data you are collecting (or link to your privacy policy/faq/what ever.)

Yup, still thinking about pricing and features. Working on the privacy policy and ToS this week.