eidos
eidos copied to clipboard
Offline alternative to Notion. Eidos is an extensible framework for managing your personal data throughout your lifetime in one place.
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.
- https://sqlite.org/wasm/doc/trunk/persistence.md#opfs
- https://developer.chrome.com/blog/persistent-permissions-for-the-file-system-access-api
How to develop
- Clone the repository
git clone [email protected]:mayneyao/eidos.git
- Run
pnpm install
to install dependencies - Run
pnpm build
(only needed once) - Run
pnpm dev
- 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:
- Nginx config in Dockerfile
- vercel.json
- public/_headers for cloudflare pages
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
- Run
docker build -t eidos .
to build the docker image - 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:
- sqlite-wasm - Run SQLite in the browser
- shadcn-ui - UI components
- glide-data-grid - High performance table
- lexical - Document editor
- web-llm - Run LLM in the browser
- teable & apitable - Teach me how to build an Airtable-like table.
License
This project is licensed under the terms of the AGPL license.