Giter VIP home page Giter VIP logo

mayneyao / eidos Goto Github PK

View Code? Open in Web Editor NEW
2.0K 7.0 76.0 10.78 MB

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

Home Page: https://eidos.space

License: GNU Affero General Public License v3.0

TypeScript 97.93% JavaScript 0.68% CSS 0.88% HTML 0.45% Just 0.01% Dockerfile 0.05%
database editor llm local-first notion-alternative offline pkm pwa sqlite

eidos's Introduction

eidos

Home Page | Discord

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

Important

Eidos sets a big goal in mind, but it is still in its early stages, and there is a lot of work to be done. You can give it a try, but I do not recommend using it for production purposes. If you're interested in this project, I recommend staying updated on its development. If you have an Early Access key, you'll receive an email notification when Eidos is officially released.

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 [email protected]: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

Troubleshooting

Error:ModuleNotFoundError: No module named 'distutils'

Because python has moved some packages out of the core library, you need to install them separately, you can try

brew install python-setuptools

#or
pip install setuptools

#or
pip3 install setuptools

See more in this link

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

https://github.com/users/mayneyao/projects/5

  • 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.

eidos's People

Contributors

datduyng avatar mayneyao avatar qinjialei24 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

eidos's Issues

Space Management

  • create space
  • delete space
  • rename space
  • export space
  • import space
  • merge space
  • feature config for each space

Field: base impl

Base

  • base impl
  • add field
  • delete field
  • fix: import from csv
  • rename field
  • field property

Field

field onPaste onDelete getCell setCell property
text
number
checkbox
select
multi-select
rating
url
file
date
formula
created time
last edited time
link
rollup

[bug] Loading Screen When Visiting a page

http://localhost:5173/dom-personal/30b14a048f16492aad42a4379fae28ba

When I visit a link like above, I see a hang loading screen

CleanShot 2024-06-22 at 02 08 17@2x

But when I visit http://localhost:5173, everything works as expected

[bug] Error in Doc List View

I am seeing the below error when I visit a table view. I noticed if there is a table row that I haven't right click "Open" yet then when I click in Doc List view I see below error

Unexpected Application Error!
Cannot read properties of undefined (reading 'parent_id')
TypeError: Cannot read properties of undefined (reading 'parent_id')
    at NodeComponent (http://localhost:5173/app/[database]/[node]/page.tsx?t=1719079886997:85:27)
    at renderWithHooks (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:11548:26)
    at updateFunctionComponent (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:14582:28)
    at beginWork (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:15924:22)
    at beginWork$1 (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:19753:22)
    at performUnitOfWork (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:19198:20)
    at workLoopSync (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:19137:13)
    at renderRootSync (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:19116:15)
    at recoverFromConcurrentError (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:18736:28)
    at performSyncWorkOnRoot (http://localhost:5173/node_modules/.vite/deps/chunk-J7DDHDBR.js?v=5d6c643e:18879:28)
💿 Hey developer 👋
CleanShot.2024-06-22.at.11.17.40.mp4

Doc: improve

  • Support indentation for lists
  • Text formatting toolbar
  • Support link and link editing
  • Highlight selected blocks
  • Support pasting images
  • Fix list item styling

Meta Table: files

The eidos__files table will record basic information for all stored files, allowing you to manage and search for files.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.