Eidos is an extensible framework for managing your personal data throughout your lifetime in one place.
-
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.
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.
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
- Clone the repository
git clone git@github.com: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
pnpm gen-types
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
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.
- 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
- Publish Service: Publish your data to the web.
- P2p sync based on CRDT: local-first, not local-only. Sync your data across devices.
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.
This project is licensed under the terms of the AGPL license.