Code Monkey home page Code Monkey logo

toeverything / affine Goto Github PK

View Code? Open in Web Editor NEW
30.5K 174.0 2.0K 298.48 MB

There can be more than Notion and Miro. AFFiNE(pronounced [ə‘fain]) is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.

Home Page: https://affine.pro

License: Other

JavaScript 1.27% TypeScript 98.12% CSS 0.14% Shell 0.05% Rust 0.37% HTML 0.03% Dockerfile 0.01%
editor crdt knowledge-base markdown miro notion rust rust-lang whiteboard wiki

affine's Introduction

AFFiNE.PRO
Write, Draw and Plan All at Once

affine logo

A privacy-focused, local-first, open-source, and ready-to-use alternative for Notion & Miro.
One hyper-fused platform for wildly creative minds.



AFFiNE - One app for all - Where Notion meets Miro | Product Hunt


Releases All Contributors TypeScript-version-icon Rust-version-icon


Docs, canvas and tables are hyper-merged with AFFiNE - just like the word affine (əˈfʌɪn | a-fine).

Getting started & staying tuned with us.

Star us, and you will receive all release notifications from GitHub without any delay!

What is AFFiNE

AFFiNE is an open-source, all-in-one workspace and an operating system for all the building blocks that assemble your knowledge base and much more -- wiki, knowledge management, presentation and digital assets. It's a better alternative to Notion and Miro.

Features

A true canvas for blocks in any form. Docs and whiteboard are now fully merged.

  • Many editor apps claim to be a canvas for productivity, but AFFiNE is one of the very few which allows you to put any building block on an edgeless canvas -- rich text, sticky notes, any embedded web pages, multi-view databases, linked pages, shapes and even slides. We have it all.

Multimodal AI partner ready to kick in any work

  • Write up professional work report? Turn an outline into expressive and presentable slides? Summary an article into a well-structured mindmap? Sorting your job plan and backlog for tasks? Or... draw and code prototype apps and web pages directly all with one prompt? With you, AFFiNE AI pushes your creativity to the edge of your imagination.

Local-first & Real-time collaborative

  • We love the idea of local-first that you always own your data on your disk, in spite of the cloud. Furthermore, AFFiNE supports real-time sync and collaborations on web and cross-platform clients.

Self-host & Shape your own AFFiNE

  • You have the freedom to manage, self-host, fork and build your own AFFiNE. Plugin community and third-party blocks are coming soon. More tractions on Blocksuite. Check there to learn how to self-host AFFiNE.

Acknowledgement

“We shape our tools and thereafter our tools shape us”. A lot of pioneers have inspired us along the way, e.g.:

  • Quip & Notion with their great concept of “everything is a block”
  • Trello with their Kanban
  • Airtable & Miro with their no-code programable datasheets
  • Miro & Whimiscal with their edgeless visual whiteboard
  • Remote & Capacities with their object-based tag system

There is a large overlap of their atomic “building blocks” between these apps. They are not open source, nor do they have a plugin system like Vscode for contributors to customize. We want to have something that contains all the features we love and also goes one step even further.

Thanks for checking us out, we appreciate your interest and sincerely hope that AFFiNE resonates with you! 🎵 Checking https://affine.pro/ for more details ions.

Contributing

Bug Reports Feature Requests Questions/Discussions AFFiNE Community
Create a bug report Submit a feature request Check GitHub Discussion Vist the AFFiNE Community
Something isn't working as expected An idea for a new feature, or improvements Discuss and ask questions A place to ask, learn and engage with others

Calling all developers, testers, tech writers and more! Contributions of all types are more than welcome, you can read more in docs/types-of-contributions.md. If you are interested in contributing code, read our docs/CONTRIBUTING.md and feel free to check out our GitHub issues to get stuck in to show us what you’re made of.

Before you start contributing, please make sure you have read and accepted our Contributor License Agreement. To indicate your agreement, simply edit this file and submit a pull request.

For bug reports, feature requests and other suggestions you can also create a new issue and choose the most appropriate template for your feedback.

For translation and language support you can visit our i18n General Space.

Looking for other ways to contribute and wondering where to start? Check out the AFFiNE Ambassador program, we work closely with passionate community members and provide them with a wide range of support and resources.

If you have questions, you are welcome to contact us. One of the best places to get more info and learn more is in the AFFiNE Community where you can engage with other like-minded individuals.

Ecosystem

Name
@affine/component AFFiNE Component Resources
@toeverything/y-indexeddb IndexedDB database adapter for Yjs
@toeverything/theme AFFiNE theme

Upstreams

We would also like to give thanks to open-source projects that make AFFiNE possible:

  • Blocksuite - 💠 BlockSuite is the open-source collaborative editor project behind AFFiNE.
  • OctoBase - 🐙 OctoBase is the open-source database behind AFFiNE, local-first, yet collaborative. A light-weight, scalable, data engine written in Rust.
  • yjs - Fundamental support of CRDTs for our implementation on state management and data sync.
  • electron - Build cross-platform desktop apps with JavaScript, HTML, and CSS.
  • React - The library for web and native user interfaces.
  • napi-rs - A framework for building compiled Node.js add-ons in Rust via Node-API.
  • Jotai - Primitive and flexible state management for React.
  • async-call-rpc - A lightweight JSON RPC client & server.
  • Vite - Next generation frontend tooling.
  • Other upstream dependencies.

Thanks a lot to the community for providing such powerful and simple libraries, so that we can focus more on the implementation of the product logic, and we hope that in the future our projects will also provide a more easy-to-use knowledge base for everyone.

Contributors

We would like to express our gratitude to all the individuals who have already contributed to AFFiNE! If you have any AFFiNE-related project, documentation, tool or template, please feel free to contribute it by submitting a pull request to our curated list on GitHub: awesome-affine.

contributors

Self-Host

Begin with Docker to deploy your own feature-rich, unrestricted version of AFFiNE. Our team is diligently updating to the latest version. For more information on how to self-host AFFiNE, please refer to our documentation.

Hiring

Some amazing companies, including AFFiNE, are looking for developers! Are you interested in joining AFFiNE or its partners? Check out our Discord channel for some of the latest jobs available.

Feature Request

For feature requests, please see community.affine.pro.

Building

Codespaces

From the GitHub repo main page, click the green "Code" button and select "Create codespace on master". This will open a new Codespace with the (supposedly auto-forked AFFiNE repo cloned, built, and ready to go.

Local

See BUILDING.md for instructions on how to build AFFiNE from source code.

Contributing

We welcome contributions from everyone. See docs/contributing/tutorial.md for details.

Thanks

Chromatic

Thanks to Chromatic for providing the visual testing platform that helps us review UI changes and catch visual regressions.

License

See LICENSE for details.

affine's People

Contributors

alt1o avatar austaras avatar brooooooklyn avatar catsjuice avatar cjss avatar darkskygit avatar dependabot[bot] avatar diamondthree avatar doodlewind avatar eyhn avatar flrande avatar forehalo avatar fourdim avatar fundon avatar hejiachen-pm avatar himself65 avatar jimmfly avatar joooye34 avatar lawvs avatar linonetwo avatar m1911star avatar mitsuhatu avatar pengx17 avatar qishaoxuan avatar saikasakura avatar shortcipher5 avatar thorseraq avatar tzhangchi avatar zuoxiaodong0815 avatar zzj3720 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  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

affine's Issues

[improvement]: provide docs in AFFiNE or a demo

1~3 main use cases of the proposed improvement

AFFiNE is really amazing!!
Here is some proposes in my view:

  1. gitbook is good, but not perfect
  2. maybe there should be a demo for refer

Ideas for solution

we can write introduce or manual docs in AFFiNE to show many feature and usage

what types of users can benefit from using your proposed improvement

AFFiNE beginner

Additional context

No response

[bug]: Tag-app causes page crashes during use

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
image

Platform (please complete the following information):

  • OS: [e.g. MacOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

[bug]: Tag-app problem

Describe the bug

No response

To Reproduce

  1. Add a tag in one block, the content is "tag1"
  2. Add a same field name tag to another block, the content is "tag2"
  3. Now, in the third block, the history tip is "tag2", and I can use it to add tag quickly
  4. Remove second block
  5. Return the third block, the tag history is disapear, but it should be "tag1"

Screenshots

No response

Expected behavior

No response

Platform

No response

Browser

No response

Additional context

No response

[bug]: Tag pop-up is obscured

Describe the bug
In whiteboard mode, the tag pop-up is obscured

To Reproduce
Steps to reproduce the behavior:

  1. Change mode to whiteboard
  2. Click the exist tag to display pop-up

Screenshots
image

[bug]: The text is obscured in the menu

Describe the bug

No response

To Reproduce

  1. Input "/" in a new block to weak up popover

Screenshots

image

Expected behavior

No response

Platform

No response

Browser

No response

Additional context

No response

[bug]: Undo/redo operations not functioning correctly

Describe the bug

No response

To Reproduce

  1. pnpm start
  2. delete any block
  3. Cmd + z / Ctrl + z not working

Screenshots

No response

Expected behavior

No response

Platform

No response

Browser

No response

Additional context

No response

[bug]: bug on page scroll operation

Describe the bug

No response

To Reproduce

  1. open the homepage
  2. add some text and scroll down
  3. got the errors

Screenshots

2022-08-04.11.50.20.mov

截屏2022-08-04 11 43 44

Expected behavior

should ok ,no errors

Platform

MacOS 12.5 ,

Browser

Safari 15.6

Additional context

scroll up and scroll down got same errors

[feature]: In paper mode, mouse drag and drop can achieve grid item.

1~3 main use cases of the proposed feature

Drag block as item like:

2022-08-03_18-52-44.mp4
2022-08-03_18-53-40.mp4

Ideas for solution

Get nearest block use Binary Tree Level Order Traversal and dom bounding client rect. Add grid or grid item for different block.

what types of users can benefit from using your proposed feature

No response

Additional context

No response

[bug]: Several browser compatibility issues in Chrome and Safari

Describe the bug

Short version by a table:

Issues Chrome Safari
1 arrow keys move to adjacent group with blue border disappear in the border
2 two finger gesture in Board mistakenly trigger “go back” -
3 rotate in Board - mistakenly select extra content

To Reproduce

No 1

  1. locate insert cursor at the very beginning (or end) of a group.
  2. move the cursor by pressing up (or down) arrow key.
  3. In Chrome, the cursor moves to the above (or below) group. But in Safari, the cursor disappears and the group loses focus.

No 2

  1. In Board view, using two-finger gesture to left or right, to make a horizontal scroll.
  2. If there's navigation history in the current tab, Chrome will mistakenly perform a "go back" action, making the scroll impossible. It's okay in Safari.

No 3

  1. In Board view, rotate an element by dragging the small circle.
  2. In Safari, extra content will be selected incorrectly, resulting a ugly UI.

Screenshots

No 3:

Xnip2022-08-04_12-36-54

Expected behavior

No response

Platform

No response

Browser

Chrome and Safari.

Additional context

No response

[bug]: Edgeless mode runs into errors with undo operations

Describe the bug

The whiteboard reports an error after performing the undo operation multiple times

To Reproduce

Frist I added a few lines of text to the whiteboard,then I got this error by pressing ALT+Z multiple times while using the whiteboard function. Now I can't get into the whiteboard anymore. Please tell me how to fix this problem.

Screenshots

image

Expected behavior

I just want to undo the previous action

Platform

win 11

Browser

edge

Additional context

No response

[feature]: check doms in grid item is overflow or not

The content in grid item may overflow the container. If has overflow content make the handler red.

First make css overflow scroll, check cilent width/height if is equal scrollwidth/height, then sent back overflow.

image

[improvement]: request for installation guide

1~3 main use cases of the proposed improvement

As a user, I don't know how to install and run this software

Ideas for solution

If it has very few dependencies, it is recommended to run it via docker or docker-compose

what types of users can benefit from using your proposed improvement

all users

Additional context

No response

[bug]: After deleting the last group on a page, there's a leftover empty block.

Describe the bug

After deleting last group in a page, there's a leftover empty block.

To Reproduce

  1. make sure there is only one group in the current page.
  2. delete this group by clicking the group handle and select "Delete" from the menu.
  3. A block handle (3 dots) is leftover and cannot be delete or inserted contents.

Screenshots

Screen.Recording.2022-08-04.at.13.38.46.mov

Expected behavior

There should not be any leftover block.

Platform

macOS

Browser

Chrome and Safari

Additional context

No response

[improvement]: Convenient installer packages - such as brew cask

1~3 main use cases of the proposed improvement

I want to try this software, but I can't find an obvious entry to install or download the installation package.
Generally speaking, I'm used to using brew install pkgname --cask to install the software I want, so I wonder if it's possible to provide a way to install it as well?

Ideas for solution

No response

what types of users can benefit from using your proposed improvement

No response

Additional context

No response

[bug]: Content still editable in reading mode

Describe the bug

turn reading mode on still can delete block

To Reproduce

  1. pnpm start
  2. turn reading mode on
  3. delete block

Screenshots

image

Expected behavior

No response

Platform

No response

Browser

No response

Additional context

No response

[feature]: Is it possible that subgroups in a large group can also be laid out

1~3 main use cases of the proposed feature

有没有可能在一个大的Group中的子group也可以布局。
如下图所示,"Affine简介"大Group中的两个子group也可以自由布局。
下面的图片的布局,实际上是跌了两个大group在一起的效果

image

Ideas for solution

No response

what types of users can benefit from using your proposed feature

用affine做dashborad类文档的情况

Additional context

只是我的一个灵感,但不一定有实际场景

[improvement]: Pasting a link creates a new line - instead of inserting inline

1~3 main use cases of the proposed improvement

It's difficult to reproduce the probleme so i make a video, and there are also some other bugs in it...

Uploading 20220806_123931.mp4…

Ideas for solution

idea is in the video

what types of users can benefit from using your proposed improvement

No response

Additional context

No response

[bug]: New block can not be created in an empty group in safari

Describe the bug

New block can not be created/added in an empty group, at least not in the Text view.

To Reproduce

  1. Delete every blocks in a group. For the last one, use backspace/delete key.
  2. An empty group is left.
  3. There's no way of creating/adding new block in this empty group, unless changing the view from Text to Kanban and click one of the "plus" button, which is very clumsy.

Screenshots

image

Expected behavior

Perhaps there should be a button in the menu of group handle since there's no room in an empty group for extra UI element.

Platform

No response

Browser

Safari 15.6

No problem in latest Chrome. It seems a browser compatibility issue.

Additional context

No response

[bug]: '/' doesn't work after create some new group

Describe the bug

'/' doesn't work after create some new group

To Reproduce

  1. 添加 "NODE_ENV=development" 至 env.local
  2. 在本地运行环境
  3. 添加一个新的Group,/ 为 Code块
  4. 添加一个新的Group,/ 为看板,在看板中添加几个todo
  5. 添加新组,/ 没有任何像第3、4步的选择出来了

可第二张截图,即使我打了 / 但并没有出选择group类型的那个面板

我是windows 11, edge浏览器,跑在localhost:4200

Screenshots

image

image

Expected behavior

No response

Platform

Windows11

Browser

Edge

Additional context

No response

[bug]: Props format with errors are shown in the console

Describe the bug

There are two props errors shown in the console before opening the app.

To Reproduce

  1. Add NODE_ENV=development in your .env.local
  2. Run the app
  3. Open the app in a browser and open the inspector / console.

Screenshots

Captura de Pantalla 2022-08-06 a la(s) 01 24 23

Captura de Pantalla 2022-08-06 a la(s) 01 24 56

![Uploading Captura de Pantalla 2022-08-06 a la(s) 01.25.14.png…]()

Expected behavior

The console shouldn't show any error

Platform

MacOS

Browser

Chrome

Additional context

No response

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.