Notion, like most SaaS products, is not open-source, so I can't customize it to my heart's content. I can only wait and vote for new features, but I can code, and I don't want to wait. I really like the concepts of FOSS, solid, and local-first. SaaS could die. Long may the SQLite. So, I built Eidos based on sqlite for managing my personal data throughout my lifetime in one place. Eidos is a long-term project for me. It looks like Notion, but the core is more like "obsidian.sqlite" with a powerful extension system.
Here are a few key ideas:
- Eidos is built based on sqlite-wasm and runs entirely in the browser. It can be used immediately, with no installation or configuration required. It's a pure PWA, with full offline support.
- A block-styled document editor and an Airtable-like table, built on top of SQLite, where each table is a real SQLite table.
- A powerful extension system inspired by Figma plugin and Cloudflare worker. You can write scripts in TypeScript directly in the browser. It is easy to manipulate data in docs, tables, and the file system. It also supports API.
- If you're not a developer, you're still in luck. We're living in an AI era. LLM empowers people to craft their own software without writing any code. Eidos deeply integrated with LLM. You can translate, summarize, talk to your data, process table data in batches, and more. It makes your life easier with AI. You can fully customize your prompts and freely choose your LLM provider, without being locked to any vendor.
To be honest, so far, there are still some bugs and shortcomings, and it hasn't yet reached my envisioned perfection. There is still some work to be done, but the basic framework has taken shape. I've been working on it for a year and have eaten my own dog food for the past half year. To help Eidos become better (and celebrate the release of the Elden Ring's DLC), I've decided to make it open-source and gather more feedback. Now, I'm going to take a break and play Shadow of the Erdtree.
I think their Eidos-Labs research department is still active.
Personally, starting a new app called Eidos feels like a headache in the making.
Also, maybe it's just me, but I feel like the sqlite-based thing is, if anything, kind of a downside. Use it for caching and calculation, sure, but I want the source of truth to be just plain markdown files I can take into other apps in 5 years when whatever I'm using now inevitably dies.
It's nice to have something that plays nicely with awk/cut/diff/etc. and can be committed into a git (or elsevcs) repo.
(I'm not specifically wed to COPY as the form, but given it's well known and documented I've found it a good default)
Something about SQLite at the core just seems to drive a direction I like, and pushes an open ethos. (Shout outs to Grist in this arena as well.) So much power in such simple interfaces… and when I saw you could just drop in your own SQL into Eidos, I shed a tear at the graveyard of my never-quite-working attempts at data-fying Obsidian.
But there’s no question that there’s something special about the core “block” abstraction used by Notion (and, I see, AnyType), in that it really does allow you to not only structure and display information in absolutely any way you want, but also to reason about that structure in a unified way. You can come back after a month away and still remember how everything fits together. You can literally build everything a team needs: wikis, datatables, highly customised task/project managers, CRM, etc. And it’s all multiplayer.
Notion the _product_ ain’t it, though. Closed-source, SaaS, very slow, buggy electron apps (Obsidian’s electron apps are very good, by the by - and their sync service is faultless). Hopeless handling of copy-pasted markdown: why can’t I simply paste markdown content in from another app and have it appear - and be editable - as a normal page? Insufficient access controls, no locking of page designs, poor sharing UX (just let me copy a link to the page without throwing up an access permissions dialog box each time and warning me that certain people won’t have access when they definitely will).
The final complaint would be that they’re sort of caught between different audiences. We already had a company wiki we built with the block abstraction and were very happy with, then they went and introduced a new “Wiki” … I dunno … “special type”. Is it composed just of blocks like everything else, or does it get some kind of special treatment. Is every page I create under the “Wiki” folder a normal page, or somehow special? I get that they have to walk a line between power and casual users, but any UX decision that obscures the core block abstraction fails to strike that balance, imo. Why didn’t they make Wikis just another official template built of normal blocks?
All of which is to say: I remain really hopeful on this space and would love to see an open source project come along and take the crown. Certainly an increasing number of promising entrants.
I was coincidentally looking at Anytype yesterday, but can't create my own extensions (and the database has no formula type for columns??).
Curious if there's something that's been around for 1 year+ and allows me to build my own extensions?
What is not working for you if I may ask?
Besides that, SQLite seems promising, but not sure how exactly this relates to everything. The website is talking about saving in browser, and there is no release on the GitHub. Is this something running in browser only?
Eidos is deployed on Cloudflare Pages. it's a purely frontend project and the web is only used for distribution. In order to iterate faster, I didn't use GitHub's release yet.
There are some enhanced experience services running on serverless, but they are not necessary. For instance, adding a bookmark block to a document requires fetching extra information through a URL. This relies on https://github.com/mayneyao/link-preview . Most of the CORS related work is implemented through Cloudflare worker. These services are not necessary. Moreover, they are open-sourced and can be self-deployed. For more details, see https://github.com/mayneyao/eidos/blob/main/lib/const.ts#L64
However, the main strength is customizability. Various data is best presented in various ways, and separating data/content and presentation/template/layout while keeping them tightly integrated is incredibly powerful.
Cudos for thinking long-term with SQLite, avoiding lock-in is crucial for these kinds of apps!
* A single-file Tiddlywiki is a single file that only requires a web browser to be used (e.g., you can email it to someone and they can just open it)
* Tiddlywiki is extremely customizable, much more than obsidian. It's almost hard to describe, but you can make very interesting things with just basic knowledge about html and css.
To cite myself:
> the problem with TiddlyWiki is that it's hard to describe since its so flexible. I have a few local tiddlywikis that I use for catalogues and note taking/knowledge base. The note taking was inspired by another HN comment [3] that introduced Drift [4,5], which includes features such as tabs for backlinks, keywords, and freelinks. But you may also find the Projectify edition [6] interesting or one cloning Roam Research [7].
[3] https://news.ycombinator.com/item?id=25305527
[4] Source: https://github.com/bmann/drift-tiddlywiki-template/tree/mast...
[5] Demo: https://ramirosalas.com/
“Joe Armstrong & Jeremy Ruston - Intertwingling the Tiddlywiki with Erlang | Code Mesh LDN 18”
Rather different from a closed-source desktop file editor.
My only critic so far... It seems you copied one of my least favorite "features" from Notion which is to force a default "Title" column for the tables. I find that most of the time I don't need a Title column, but I can't turn it off nor can you change it's type.
1. https://eidos.space/settings/storage 2. https://developer.chrome.com/blog/persistent-permissions-for...
I have moved through phases of putting notes in physical notebook and scanning. I have 10s of scanned notebooks.
I have taken digital notes via stylus, via wacom pen and tablet, Samsung notes (best note taking app with stylus), a bunch of linux apps (xournal, xournal++ etc) and more...
I have written notes in pure html.
I have written personal app for taking notes in browser and storing it in postgres.
There is nothing better than text + git. Markdown is second.
My current configuration is: text/markdown + git + vs code + (plain) obsidian + plantuml + mermaid + local-git-server/github/gitlab etc.
I really wanted to like Notion but it's not smooth enough for writing. The cell system makes it clumsy.
I prefer to write on markdown files because it's much faster and I can do it on my text editor of choice. I like obsidian because it's basically that with a bit of extras.
But then I lose the concurrent editing.
I want Google Docs meets obsidian type of environment. And I am yet to find it.
If any of you know of one, please let me know!
But if you want collaborative markdown in general, there are solutions like Hack.md
Something like cr-sqlite could potentially fix that though, although I'd prefer just plain markdown files for the backend.
SaaS/cloud approaches have real downsides in terms of ownership but the big upside is access from multiple points/devices (home desktop, browser on office machine, personal laptop, mobile device, etc). Obviously SaaS isn't the only way to do that, centralizing around self-hosting or some syncing feature can work too. Anything like that on the radar?
P2P synchronization based on CRDT is on the roadmap.
I've used the tools you mentioned and more. None of them have a powerful table, which is one of the reasons I decided to create Eidos. Eidos can handle large amounts of data like Excel. Anytype/Outline cannot do this.
I plan to follow Obsidian's model, with the core being always free. here is some plans: - publish service (subscription-based) - peer-to-peer data synchronization (One-time payment, like Resilio sync) - an extension store that benefits developers (still a rough idea in my mind)
Thought: Can you add a logout button?
Also, please consider a name change so SquEnix doesn't sue you out of existence!
1. How to use extensions? I can create one (it looks like a javascript function getting some context and one argument) but I have no idea how to invoke it. I expected to be able to invoke them on selected text.
2. Does it sync on other computers / browsers or is it only local?
Sync is on the roadmap.
Please make it no-code friendly for one-click easy installation if possible ( Similar to how WordPress or Drupal can be installed )
@babel/traverse <7.23.2
Doesn't Babel typically only compile your source code, and not what's in node_modules? I guess it depends if you're compiling single files, leaving import statements as they are; or creating a single bundle for the browser that includes external dependencies. For the latter, I imagine there's a chance some malicious package could exploit this.
Also when it comes to LLM stuff, I would like to hook up AI's via a OpenAI Compatible LLM such as LiteLLM and Ollama
:)
Contrary to your belief there are still people out there living outside the apple bubble.