I’ve been using Roam some, and it feels mostly like a personal wiki with markdown, and the pages generate automatically based on the notes entered. I like the functionality, but it’s not optimized for the way I take notes or think about most concepts.
I’ve spent years trying different tools to organize information, and none of them feel tailored to my note taking approach. I want something that is light weight, works on every device, syncs immediately, works offline, and functions more like a traditional notebook (focus on creating notes as quickly as possible) while providing just enough tagging and query support to easily find what I need later. Nothing strikes that perfect balance for me, so I started on my own platform.
I plan to launch soon, but if anyone is interested in alpha access and would like to give me feedback prior to launch, I would love to hear from you. Contact info in profile!
What I like about Roam is that it doesn't really proscribe a particular note-taking system at all. It's mostly four main features in my mind: free text documents with a natural hierarchy, very easy to create references to other documents, automatic back-references when you go to a referenced page, and truly embedded sub-documents that can be put into any other document where edits for that sub-document are propagated everywhere its been embedded. And a ton of UX polish.
What I'm missing the most from it is self-hosting, large file support, full point-in-time history, and programmatic access. I want it to be self-hosted because I don't want to lose my "second brain" just because some company couldn't find a viable business model and went belly up 20 years from now. I want large file support so I can put everything in my life in it: pictures, videos, pdfs, web page archive files, source code etc and I don't want to pay uber-$$$ to store huge files in their cloud. And I'd like programmatic access so I can make my own additions. For example, every link/bookmark I add could download the webpage and cache it so I can search its content and so it's not lost when the website changes owners.
I'm not sure if it meets all your criteria, especially as the meaning of certain features from program to program can vastly differ. However, if I've correctly understood what you're looking for, it matches at least some of them.
Natural hierarchy: notes can be organized into any tree that you like because notes can be cloned (not just copied) into any location.
Very easy to create references with automatic back-references: bi-directional linking is built in and is as simple as typing @notename or Ctrl+L. It also includes automatically generated link-maps and self created reference-maps to see all the links between each document.
Embedded documents: You can embed any document into any other document and have it referenced live and thus updated anywhere it's embedded.
Self-hosting: You can either run it on a local machine or host your own sync server (which also allows you to access it from a browser), super simple to setup.
Large file support: I haven't run into any issues with this, seems reasonably limitless.
Full point-in-time history: From the official wiki: "supports seamless versioning of notes by storing snapshots ("revisions") of notes at regular intervals.". You get to choose this interval.
Programmatic access: Full built-in scripting support.
Every link/bookmark I add could download the webpage and cache it: You can definitely script this yourself but the web-clipper extension for Trilium allows you to save directly from the browser into a new note (text, screenshot, or local copy of site). Not exactly what you're looking for but a derivative that could be modified to suit your needs.
There are so many other features that make it the best note-taking application for me (saved search queries represented & updated as notes in the note tree, full theming support, encrypted notes with timeout function, customizable keyboard shortcuts, active developer that you can speak to, etc).
My multi-year search for an advanced customizable note taking application has finally come to an end. Frankly, I like the application so much that I created an HN account just so I could pass the link on to you.
The best way to understand the benefits of Trilium is to give yourself 10 minutes to read the documentation[2] and take it for a test run.
[1]https://github.com/zadam/trilium/ [2]https://github.com/zadam/trilium/wiki