diff --git a/docs/guide/contributing.md b/docs/guide/contributing.md
new file mode 100644
index 000000000..bb304b5e9
--- /dev/null
+++ b/docs/guide/contributing.md
@@ -0,0 +1,152 @@
+---
+order: 100
+toc: menu
+---
+
+# Contributing
+
+## Basic process
+
+- Fork 源码到自己的仓库
+- 修改源码
+- 提交 pull request
+
+## Local start-up
+
+```bash
+# 将以下 git 地址换成自己的 repo
+git clone https://github.com/nocobase/nocobase.git
+cd nocobase
+cp .env.example .env
+yarn install
+yarn bootstrap
+yarn build
+yarn nocobase init --import-demo
+yarn start
+```
+
+## Build
+
+
+
+集成测试或全站调试时,涉及以下包的修改需要重新编译打包:
+
+- actions
+- database
+- resourcer
+- server
+- test
+- utils
+
+除了编译的问题,项目的构建还有诸多细节问题未解决。如果你有一些不错的建议,欢迎你前往 [GitHub Discussions](https://github.com/nocobase/nocobase/discussions) 讨论。
+
+
+
+```bash
+# for all packages
+yarn build
+
+# for specific package
+yarn build
+
+# e.g.
+# yarn build database
+```
+
+## Test
+
+
+
+升级 v0.5 之后,有部分测试还未修复,测试的 ci 暂时也不能用。代码测试还不够完善,更多测试会阶段性的补充并完善...
+
+
+
+```bash
+# For all packages
+yarn test
+
+# For specific package
+yarn test packages/
+```
+
+## Document revision and translation
+
+文档在 [docs](https://github.com/nocobase/nocobase/tree/develop/docs) 目录下,遵循 Markdown 语法,默认为英文,中文以 `.zh-CN.md` 结尾,如:
+
+```bash
+|- /docs/
+ |- index.md # 英文文档
+ |- index.zh-CN.md 中文文档,缺失时,显示为 index.md 的内容
+```
+
+修改之后,浏览器内打开 http://localhost:8000/ 查看最终效果。
+
+## Back-end
+
+后端的大部分修改可以通过 test 命令校验。
+
+```bash
+yarn test packages/
+```
+
+当然,如果是新增的内容,需要编写新的测试。`@nocobase/test` 提供了 `mockDatabase` 和 `mockServer` 用于数据库和服务器的测试,如:
+
+```ts
+import { mockServer, MockServer } from '@nocobase/test';
+
+describe('mock server', () => {
+ let api: MockServer;
+
+ beforeEach(() => {
+ api = mockServer({
+ dataWrapping: false,
+ });
+ api.actions({
+ list: async (ctx, next) => {
+ ctx.body = [1, 2];
+ await next();
+ },
+ });
+ api.resource({
+ name: 'test',
+ });
+ });
+
+ afterEach(async () => {
+ return api.destroy();
+ });
+
+ it('agent.get', async () => {
+ const response = await api.agent().get('/test');
+ expect(response.body).toEqual([1, 2]);
+ });
+
+ it('agent.resource', async () => {
+ const response = await api.agent().resource('test').list();
+ expect(response.body).toEqual([1, 2]);
+ });
+});
+```
+
+## Full-stack demo
+
+http://localhost:8001/develop
+
+为了方便开发者本地调试,全栈的演示也内嵌的 Demo,可以点击左下角新标签页内全屏打开。
+
+## Client components
+
+
+组件库还在整理中...
+
+
+各组件是独立的,方便调试和使用。组件列表查看 http://localhost:8000/components
+
+## Provide more examples
+
+
+示例还在整理中...
+
+
+示例查看 http://localhost:8001/examples
+
diff --git a/docs/guide/contributing.zh-CN.md b/docs/guide/contributing.zh-CN.md
new file mode 100644
index 000000000..6ec75c6a2
--- /dev/null
+++ b/docs/guide/contributing.zh-CN.md
@@ -0,0 +1,152 @@
+---
+order: 100
+toc: menu
+---
+
+# 参与贡献
+
+## 基本流程
+
+- Fork 源码到自己的仓库
+- 修改源码
+- 提交 pull request
+
+## 本地启动
+
+```bash
+# 将以下 git 地址换成自己的 repo
+git clone https://github.com/nocobase/nocobase.git
+cd nocobase
+cp .env.example .env
+yarn install
+yarn bootstrap
+yarn build
+yarn nocobase init --import-demo
+yarn start
+```
+
+## 打包编译
+
+
+
+集成测试或全站调试时,涉及以下包的修改需要重新编译打包:
+
+- actions
+- database
+- resourcer
+- server
+- test
+- utils
+
+除了编译的问题,项目的构建还有诸多细节问题未解决。如果你有一些不错的建议,欢迎你前往 [GitHub Discussions](https://github.com/nocobase/nocobase/discussions) 讨论。
+
+
+
+```bash
+# for all packages
+yarn build
+
+# for specific package
+yarn build
+
+# e.g.
+# yarn build database
+```
+
+## 测试
+
+
+
+升级 v0.5 之后,有部分测试还未修复,测试的 ci 暂时也不能用。代码测试还不够完善,更多测试会阶段性的补充并完善...
+
+
+
+```bash
+# For all packages
+yarn test
+
+# For specific package
+yarn test packages/
+```
+
+## 文档修改和翻译
+
+文档在 [docs](https://github.com/nocobase/nocobase/tree/develop/docs) 目录下,遵循 Markdown 语法,默认为英文,中文以 `.zh-CN.md` 结尾,如:
+
+```bash
+|- /docs/
+ |- index.md # 英文文档
+ |- index.zh-CN.md 中文文档,缺失时,显示为 index.md 的内容
+```
+
+修改之后,浏览器内打开 http://localhost:8000/ 查看最终效果。
+
+## 后端代码修改
+
+后端的大部分修改可以通过 test 命令校验。
+
+```bash
+yarn test packages/
+```
+
+当然,如果是新增的内容,需要编写新的测试。`@nocobase/test` 提供了 `mockDatabase` 和 `mockServer` 用于数据库和服务器的测试,如:
+
+```ts
+import { mockServer, MockServer } from '@nocobase/test';
+
+describe('mock server', () => {
+ let api: MockServer;
+
+ beforeEach(() => {
+ api = mockServer({
+ dataWrapping: false,
+ });
+ api.actions({
+ list: async (ctx, next) => {
+ ctx.body = [1, 2];
+ await next();
+ },
+ });
+ api.resource({
+ name: 'test',
+ });
+ });
+
+ afterEach(async () => {
+ return api.destroy();
+ });
+
+ it('agent.get', async () => {
+ const response = await api.agent().get('/test');
+ expect(response.body).toEqual([1, 2]);
+ });
+
+ it('agent.resource', async () => {
+ const response = await api.agent().resource('test').list();
+ expect(response.body).toEqual([1, 2]);
+ });
+});
+```
+
+## 全栈演示
+
+http://localhost:8001/develop
+
+为了方便开发者本地调试,全栈的演示也内嵌的 Demo,可以点击左下角新标签页内全屏打开。
+
+## 客户端组件
+
+
+组件库还在整理中...
+
+
+各组件是独立的,方便调试和使用。组件列表查看 http://localhost:8000/components
+
+## 提供更完整的示例
+
+
+示例还在整理中...
+
+
+示例查看 http://localhost:8001/examples
+