mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-22 09:31:46 +03:00
There can be more than Notion and Miro. AFFiNE is a next-gen knowledge base that brings planning, sorting and creating all together. Privacy first, open-source, customizable and ready to use.
affineblock-editorcollaborativeeditorknowledge-basemiromiro-alternativenotionnotion-alternativeprivacy-firstrustsemanticstarred-repostarred-toeverything-repoyjs
.github | ||
.husky | ||
.vscode | ||
apps | ||
docs | ||
libs | ||
tools | ||
.all-contributorsrc | ||
.cz-config.js | ||
.editorconfig | ||
.env | ||
.eslintignore | ||
.eslintrc.json | ||
.free.env | ||
.gitignore | ||
.npmrc | ||
.prettierignore | ||
.prettierrc | ||
babel.config.json | ||
Caddyfile | ||
Dockerfile | ||
jest.config.js | ||
jest.preset.js | ||
LICENSE | ||
nx.json | ||
package.json | ||
pnpm-lock.yaml | ||
pnpm-workspace.yaml | ||
README.md | ||
tsconfig.base.json | ||
workspace.json |
AFFiNE
Workspace for AFFiNE
Installation
# Clone the repo
git clone git@github.com:toeverything/AFFiNE.git
Once cloned, switch to the master branch and navigate to the folder by typing cd AFFiNE
and then running the following commands:
# Install all project dependencies
npm i -g pnpm
pnpm i
# Start the project
pnpm start
open http://localhost:4200/
This project uses pnpm for package management and is built based on nx. It is recommended to install the nx console plugin to create dependencies
If it is development, you can add environment variables in the project directory .env.local file
NODE_ENV=development
Scripts
- Create react dependency library:
pnpm run add:library
- Create react components:
pnpm run add:components
- Create a data source:
pnpm run add:datasource
- Unit testing:
pnpm test
- Compile specific components
pnpm build/test/lint
project name- Project name reference workspace.json
- Create react/node program: use nx console
- If you need to use the git cz function, please install it globally first commitizen
npm install -g commitizen conventional-changelog conventional-changelog-cli
Examples
Have a look at the examples to see AFFiNE in action.
Contributing
- Generic functional components (such as ui components) are placed in
libs/components/common
- components within common are not allowed to reference components except utils and dependencies
- Common components can reference each other
- Business components are placed in
libs/components
- The data source component is placed in
libs/datasource
- api request code, schema, etc. belong to the data source Please see CONTRIBUTING
Documentation
- how-to-write-css-in-affine.md
- how-to-add-ui-component-in-affine.md
- how-to-customize-rollup-config.md
- how-to-auto-download-figma-assets-in-affine.md
- affine-icons-user-guide.md
Community
For help, discussion about best practices, or any other conversation that would benefit from being searchable:
Contributors
DarkSky 💻 📖 |
Chi Zhang 💻 📖 |
alt1o 💻 📖 |
Diamond 💻 📖 |
Whitewater 💻 📖 |
zuoxiaodong0815 💻 📖 |
SaikaSakura 💻 📖 |
Qi 💻 📖 |
tuluffy 💻 📖 |
Austaras 💻 📖 |
Jin Yao 💻 📖 |
License
AFFiNE is distributed under the terms of MIT license.
See LICENSE for details.