/eidos

Offline alternative to Notion. Eidos is an extensible framework for managing your personal data throughout your lifetime in one place.

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

eidos

Home Page | Discord

Eidos is an extensible framework for managing your personal data throughout your lifetime in one place.

Features

  • Everything runs inside your browser. It's a pure PWA with no web server.

  • Offline Support: Access your data without an internet connection. Data is stored locally for blazing-fast performance.

  • AI Features: Deeply integrated with LLM for AI-powered capabilities. Translate, summarize, and interact with your data within Eidos. AI works even offline.

  • Extensible: Customize Eidos to suit your needs.

    • Prompt: Speed up your workflow with the Prompt extension. No coding required.
    • UDF: Use JavaScript to customize Formula functions.
    • Script: Create powerful data processing logic with TypeScript/JavaScript.
    • App: Build your own app using any preferred framework.
    • Block: Extend documents with custom blocks.
    • Field: Extend tables with custom fields.
  • Developer Friendly:

    • API & SDK
    • Sqlite Standardization: Every table in Eidos is a SQLite table.

Requirements

Currently, Eidos only supports the latest version of chromium-based browsers, such as Chrome, Edge, Arc, and Brave. It recommends a version greater than 122.

Safari, Firefox, and other browsers are not tested yet.

Why?

Eidos is built on sqlite-wasm and requires browser support for OPFS[1] to work.

Storing data in a local folder is a good practice to ensure better data security. With Chrome 122 and its later versions, we can get persistent permissions[2] for local folders, so we do not have to select a folder every time we open the web app.

  1. https://sqlite.org/wasm/doc/trunk/persistence.md#opfs
  2. https://developer.chrome.com/blog/persistent-permissions-for-the-file-system-access-api

How to develop

  1. Clone the repository git clone git@github.com:mayneyao/eidos.git
  2. Run pnpm install to install dependencies
  3. Run pnpm build (only needed once)
  4. Run pnpm dev
  5. You can now access the app in your browser at http://localhost:5173

Generate sdk types

pnpm gen-types

How to deploy your own

Static Hosting

Download the release(looks like build-v0.x.x.zip) from the release page and host it on your own server.

Due to security limitations, browsers may refuse to load WASM from pages served via file:// URLs. You may need to serve the files via a web server and need to modify the HTTP response header to ensure it works normally. This depends on the web server you are using; there are some configurations that can be referenced here:

Serverless

Fork this repository and deploy it to your favorite serverless provider. Cloudflare Pages, Vercel, and Netlify are all good choices.

Use build:self-host to build the app; this will skip the activation.

Docker

  1. Run docker build -t eidos . to build the docker image
  2. Run docker run -p 8080:80 eidos to start the container, change the port if needed

or use the pre-built image:

docker run -d  -p 8080:80 ghcr.io/mayneyao/eidos

Roadmap

  • Publish Service: Publish your data to the web.
  • P2p sync based on CRDT: local-first, not local-only. Sync your data across devices.

Credits

Eidos based on the following open-source projects:

License

This project is licensed under the terms of the AGPL license.