This is an automated email from the ASF dual-hosted git repository.

hez pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 4a87c55  Updated docs and homepage content (#24)
4a87c55 is described below

commit 4a87c55285dd81c210c1c1203712b63652c18687
Author: Yumeng Wang <[email protected]>
AuthorDate: Thu May 19 03:26:24 2022 +0800

    Updated docs and homepage content (#24)
    
    * added live demo example
    
    * added glossary
    
    * added glossary
    
    * updated glossary
    
    * added blog instruction to readme
    
    * updated glossary and color pallete
    
    * updated copyright
    
    * updated WhatIsDevLake and other docs
    
    * updated WhatIsDevLake and other Docs
    
    Co-authored-by: Yumeng Wang <[email protected]>
---
 .../index.md                                       |   6 +-
 blog/2022-05-18-apache-welcomes-devLake/index.md   |  25 ++--
 ...ds.093a76ac-457b-4498-a472-7dbea580bca9.001.png | Bin 0 -> 39514 bytes
 ...ds.093a76ac-457b-4498-a472-7dbea580bca9.002.png | Bin 0 -> 27018 bytes
 ...ds.093a76ac-457b-4498-a472-7dbea580bca9.003.png | Bin 0 -> 41209 bytes
 ...ds.093a76ac-457b-4498-a472-7dbea580bca9.004.png | Bin 0 -> 26120 bytes
 ...ds.093a76ac-457b-4498-a472-7dbea580bca9.005.png | Bin 0 -> 28689 bytes
 ...ds.093a76ac-457b-4498-a472-7dbea580bca9.006.png | Bin 0 -> 34773 bytes
 ...ds.093a76ac-457b-4498-a472-7dbea580bca9.007.png | Bin 0 -> 28548 bytes
 blog/2022-05-18-how-apache-devlake-runs/index.md   | 152 +++++++++++++++++++++
 blog/authors.yml                                   |   4 +-
 community/BlogSubmission.md                        |   2 +-
 docs/01-Overview/01-WhatIsDevLake.md               |  28 ++--
 docs/01-Overview/02-Architecture.md                |  12 +-
 docs/01-Overview/03-Roadmap.md                     |  10 +-
 docs/02-QuickStart/03-TemporalSetup.md             |  34 +++++
 .../{03-DeveloperSetup.md => 04-DeveloperSetup.md} |   0
 docusaurus.config.js                               |   4 +-
 .../2022-05-18-apache-welcomes-devLake/index.md    |  16 +--
 src/components/HomepageFeatures.js                 |   8 +-
 src/pages/index.js                                 |   4 +-
 static/img/arch-component.svg                      |   1 +
 static/img/arch-dataflow.svg                       |   4 +
 static/img/logo.svg                                |  13 +-
 24 files changed, 254 insertions(+), 69 deletions(-)

diff --git a/blog/2022-04-30-deadlock-caused-by-using-ants/index.md 
b/blog/2022-04-30-deadlock-caused-by-using-ants/index.md
index 00b9881..1d163ca 100644
--- a/blog/2022-04-30-deadlock-caused-by-using-ants/index.md
+++ b/blog/2022-04-30-deadlock-caused-by-using-ants/index.md
@@ -9,7 +9,10 @@ tags: [devlake, ants]
 
 
我们的项目有大量的api请求由goroutine完成,所以我们需要引入一个pool来节省频繁创建goroutine所造成的的开销,同时也可以更简易的调度goroutine,在对github上多个协程池的对比后,我们最终选定了[ants](https://github.com/panjf2000/ants)作为我们的调度管理pool。
 
-1. 
最近在测试中偶然发现系统出现了“死锁”的情况,进而采取断网的方式发现“死锁”在极端情况下是稳定出现,经过满篇的log,break,最终把问题定位到了ants的submit方法。这个问题来自于在使用ants
 pool的过程中,为了实现重试,我们在方法中又递归调用了方法本身,也就是submit task内部又submit一个task,下面是简化后的代码
+1. 
最近在测试中偶然发现系统出现了“死锁”的情况,进而采取断网的方式发现“死锁”在极端情况下是稳定出现,经过满篇的log,break,最终把问题定位到了ants的submit方法。这个问题来自于在使用ants
 pool的过程中,为了实现重试,我们在方法中又递归调用了方法本身,也就是submit task内部又submit一个task,下面是简化后的代码:
+
+<!--truncate-->
+
 
 ```Go
 func (apiClient *ApiAsyncClient) DoAsync(
@@ -41,6 +44,7 @@ func (apiClient *ApiAsyncClient) DoAsync(
 
 在上面的代码块中,可以看到return apiClient.DoAsync(retry+1)这一步递归调用了自己,即在submit中又调用了submit
 
+
 ### 2. 深入ants分析
 
 ![img](ants_source_code_1.png)
diff --git a/blog/2022-05-18-apache-welcomes-devLake/index.md 
b/blog/2022-05-18-apache-welcomes-devLake/index.md
index 68fb779..d8dc895 100644
--- a/blog/2022-05-18-apache-welcomes-devLake/index.md
+++ b/blog/2022-05-18-apache-welcomes-devLake/index.md
@@ -11,38 +11,37 @@ We are excited to share today that the Apache Software 
Foundation (ASF) voted to
 
 ### What is DevLake?
 
-Launched in December of 2021, 
[DevLake](https://github.com/apache/incubator-devlake) is an open-source dev 
data platform that ingests, analyzes, and visualizes the fragmented data in 
developer tools. 
+Launched in December of 2021, [Apache 
DevLake](https://github.com/apache/incubator-devlake) is an open-source dev 
data platform that ingests, analyzes, and visualizes the fragmented data in 
developer tools. 
 
-Software development is complex, requiring many tools and processes, and as a 
result creates a storm of data scattered across tools in many formats. This 
makes it difficult to organize, query, and make sense of.  We built DevLake, to 
make it easy to make sense of this rich data and to translate it into 
actionable insights.
+Software development is complex, requiring many tools and processes, and as a 
result creates a storm of data scattered across tools in many formats. This 
makes it difficult to organize, query, and make sense of. We built Apache 
DevLake, to make it easy to make sense of this rich data and to translate it 
into actionable insights.
 
 
 <!--truncate-->
 
 
-### DevLake's key features:
+### Apache DevLake's key features:
 
-- Collect DevOps data across software development lifecycle (SDLC) to connect 
data islands.
-- Standardized data models with out-of-the-box metrics and customizable 
dashboards.
-- Flexible plugin system for user-defined data integration and transformation.
+- DevOps data collection across software development lifecycle (SDLC) to 
connect data islands
+- Standardized data models with out-of-the-box metrics and customizable 
dashboards
+- Flexible plugin system for user-defined data integration and transformation
 
-Below is the architecture of DevLake: 
+Below is the architecture of Apache DevLake: 
 ![architecture](0.11-architecture-diagram.jpg)
 
 
-
 ### Why join Apache Incubator?
 
 First and foremost, we firmly believe in Apache's principle of "Community over 
Code" and ["The Apache Way"](https://www.apache.org/theapacheway/index.html). 
We look forward to building a vibrant, inclusive, and diverse community under 
the guidance of our mentors through the incubator journey.
 
 We also feel that the Apache community has one of the strongest ecosystems 
when it comes to data-oriented open-source projects. 
 
-Last and not least, the support and enthusiasm of the Apache community and 
mentors made it clear to us that this would be a place where we can truly 
evolve and nurture DevLake.
+Last and not least, the support and enthusiasm of the Apache community and 
mentors made it clear to us that this would be a place where we can truly 
evolve and nurture Apache DevLake.
 
 In the months leading up to DevLake's acceptance, our mentors provided 
guidance and suggestions instrumental to making this important moment a 
reality. We want to take this opportunity to thank and acknowledge them: 
 
 
 
-- **[Willem Ning Jiang](https://github.com/WillemJiang)**: DevLake Champion; 
ASF Member & Board Director
+- **[Willem Ning Jiang](https://github.com/WillemJiang)**: Apache DevLake 
Champion; ASF Member & Board Director
 - **[Liang Zhang](https://github.com/terrymanu)**: Founder & CEO of SphereEx; 
ASF Member, Founder & PMC Chair of Apache ShardingSphere
 - **[Lidong Dai](https://github.com/dailidong)**: ASF Member; Apache 
DolphinScheduler PMC Chair
 - **[Sijie Guo](https://github.com/sijie)**: ASF Member, PMC member of Apache 
Pulsar; Founder & CEO of StreamNative
@@ -53,7 +52,7 @@ In the months leading up to DevLake's acceptance, our mentors 
provided guidance
 
 
 
-### DevLake Future Roadmap
+### Apache DevLake Future Roadmap
 
 - Enhance system scalability and performance in large-scale data scenarios.
 - Integrate more data sources and tools (JIRA, GitHub, GitLab, and Jenkins are 
already supported.)
@@ -70,6 +69,6 @@ Join us on Slack and at our weekly open source community 
meetups🥳
 **Apache DevLake (Incubating) Links:**
 
 - GitHub:  https://github.com/apache/incubator-devlake
-- DevLake Official Website: https://devlake.apache.org/
+- Official Website: https://devlake.apache.org/
 - Slack:  
https://join.slack.com/t/devlake-io/shared_invite/zt-18uayb6ut-_P30EyJIxavGtZ3vTHWLJA
-- DevLake Podling Website:https://incubator.apache.org/projects/devlake.html
\ No newline at end of file
+- Podling Website:https://incubator.apache.org/projects/devlake.html
\ No newline at end of file
diff --git 
a/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.001.png
 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.001.png
new file mode 100644
index 0000000..33885b9
Binary files /dev/null and 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.001.png
 differ
diff --git 
a/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.002.png
 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.002.png
new file mode 100644
index 0000000..9f3e4be
Binary files /dev/null and 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.002.png
 differ
diff --git 
a/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.003.png
 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.003.png
new file mode 100644
index 0000000..b8bb2e2
Binary files /dev/null and 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.003.png
 differ
diff --git 
a/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.004.png
 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.004.png
new file mode 100644
index 0000000..158741f
Binary files /dev/null and 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.004.png
 differ
diff --git 
a/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.005.png
 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.005.png
new file mode 100644
index 0000000..62e4208
Binary files /dev/null and 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.005.png
 differ
diff --git 
a/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.006.png
 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.006.png
new file mode 100644
index 0000000..962ae00
Binary files /dev/null and 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.006.png
 differ
diff --git 
a/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.007.png
 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.007.png
new file mode 100644
index 0000000..753baf0
Binary files /dev/null and 
b/blog/2022-05-18-how-apache-devlake-runs/Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.007.png
 differ
diff --git a/blog/2022-05-18-how-apache-devlake-runs/index.md 
b/blog/2022-05-18-how-apache-devlake-runs/index.md
new file mode 100644
index 0000000..55d3715
--- /dev/null
+++ b/blog/2022-05-18-how-apache-devlake-runs/index.md
@@ -0,0 +1,152 @@
+---
+slug: how-apache-devlake-runs
+title: Apache DevLake是怎么跑起来的
+authors: warren
+tags: [devlake, apache]
+---
+
+
+[Apache DevLake](https://github.com/apache/incubator-devlake) 
是一个DevOps数据收集和整合工具,通过 Grafana 为开发团队呈现出不同阶段的数据,让团队能够以数据为驱动改进开发流程。
+
+### Apache DevLake 架构概述
+- 
左边是[可集成的DevOps数据插件](https://devlake.apache.org/docs/DataModels/DataSupport),目前已有的插件包括
 Github,Gitlab,JIRA,Jenkins,Tapd,Feishu 以及思码逸主打的代码分析引擎
+- 中间是主体框架,通过主体框架运行插件中的子任务,完成数据的收集,扩展,并转换到领域层,用户可以通过 config-ui 或者 api 调用的形式来触发任务
+- RMDBS 目前支持 Mysql 和 PostgreSQL,后期还会继续支持更多的数据库
+- Grafana 可以通过sql语句生成团队需要的各种数据
+
+![Generated](Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.001.png)
+
+> 接下来我们就详细聊一聊系统是怎么跑起来的。
+
+<!--truncate-->
+
+### 系统启动
+
+在我们的 golang 程序启动之前,首先会自动调用各个 package 的 init() 方法,我们主要看看services 
包的载入,下面的代码有详细注释:
+
+```go
+func init() {
+var err error
+// 获取配置信息
+cfg = config.GetConfig()
+// 获取到数据库
+db, err = runner.NewGormDb(cfg, logger.Global.Nested("db"))
+// 配置时区
+location := cron.WithLocation(time.UTC)
+// 创建定时任务管理器
+cronManager = cron.New(location)
+if err != nil {
+panic(err)
+}
+// 初始化数据迁移
+migration.Init(db)
+// 注册框架的数据迁移脚本
+migrationscripts.RegisterAll()
+// 
载入插件,从cfg.GetString("PLUGIN_DIR")获取到的文件夹中载入所有.so文件,在LoadPlugins方法中,具体来讲,通过调用runner.LoadPlugins将pluginName:PluginMeta键值对存入到core.plugins中
+err = runner.LoadPlugins(
+cfg.GetString("PLUGIN_DIR"),
+cfg,
+logger.Global.Nested("plugin"),
+db,
+)
+if err != nil {
+panic(err)
+}
+// 执行数据迁移脚本,完成数据库框架层各个表的初始化
+err = migration.Execute(context.Background())
+if err != nil {
+panic(err)
+}
+
+// call service init
+pipelineServiceInit()
+}
+
+```
+### DevLake的任务执行原理
+
+**Pipeline的运行流程**
+
+在讲解Pipeline流程之前,我们需要先解释一下[Blueprint](https://devlake.apache.org/docs/Glossary#blueprints)。
+
+Blueprint是一个定时任务,包含了需要执行的子任务以及执行计划。Blueprint 的每一次执行记录是一条Historical Run(也称为 
Pipeline),代表 DevLake 一次触发,通过一个或多个插件,完成了一个或多个数据收集转换的任务。
+
+![Generated](Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.002.png)
+
+以下是 Pipeline 运行流程图:
+
+![Generated](Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.003.png)
+
+一个pipeline包含一个二维数组tasks,主要是为了保证一系列任务按预设顺序执行。如果下图中的 Stage3 的插件需要依赖其他插件准备数据(例如 
refdiff 的运行需要依赖 gitextractor 和 
github,数据源与插件的更多信息请看[文档](https://devlake.apache.org/docs/DataModels/DataSupport)),那么
 Stage 3 开始执行时,需要保证其依赖项已在 Stage1 和 Stage2 执行完成:
+
+![Generated](Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.004.png)
+
+**Task的运行流程**
+
+在stage1,stage2,stage3中的各插件任务都是并行执行:
+
+![Generated](Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.005.png)
+
+**接下来就是顺序执行插件中的子任务**
+
+![Generated](Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.006.png)
+
+1. RunTask 之前的工作都是在准备 RunTask 方法需要的参数,比如 logger,db,context 等等。
+2. RunTask 方法中主要是对数据库中的tasks进行状态更新,同时,准备运行插件任务的 options(把从 config-ui 传过来的 json 
转成 map 传到 RunPluginTask 中)
+3. RunPluginTask 首先通过 core.GetPlugin(pluginName) 获取到对应 [PluginMeta](#pm),然后通过 
PluginMeta 获取到 [PluginTask](#pt),再执行 RunPluginSubTasks
+
+**每一个插件子任务的运行流程(涉及到的 interface 及 func 会在[下一节](#DevLake中的重要接口)详细阐述)**
+
+![Generated](Aspose.Words.093a76ac-457b-4498-a472-7dbea580bca9.007.png)
+
+1. 通过调用SubTaskMetas()获取到所有插件所有的可用子任务[subtaskMeta](#stm)
+2. 通过`options["tasks"]`以及subtaskMeta组建需要执行的子任务集合subtaskMetas
+3. 计算总共多少个子任务
+4. 通过`helper.NewDefaultTaskContext`构建[taskCtx](#tc)
+5. 调用`pluginTask.PrepareTaskData`构建[taskData](#td),
+6. 接下来迭代subtaskMetas里面的所有子任务
+    1. 通过`taskCtx.SubTaskContext(subtaskMeta.Name)`获取到子任务的[subtaskCtx](#sc)
+    2. 执行[`subtaskMeta.EntryPoint(subtaskCtx)`](#step)
+### DevLake中的重要接口
+1. <a id="pm">PluginMeta</a>: 
包含了插件最基本的两个方法,所有插件都需要实现,系统启动的时候存在core.plugins中,在执行插件任务的时候通过core.GetPlugin获取
+
+```go
+type PluginMeta interface {
+   Description() string
+   //PkgPath information will be lost when compiled as plugin(.so), this func 
will return that info
+   RootPkgPath() string
+}
+
+```
+2. <a id="pt">PluginTask</a>: 
通过PluginMeta获取,插件实现这个方法之后,Framework就能直接运行子任务,而不是扔给插件自己去执行,最大的好处就是插件的子任务实现更加简单,在插件运行当中,我们也可以更容易的去干涉(比如增加日志等等)
+
+```go
+type PluginTask interface {
+   // return all available subtasks, framework will run them for you in order
+   SubTaskMetas() []SubTaskMeta
+   // based on task context and user input options, return data that shared 
among all subtasks
+   PrepareTaskData(taskCtx TaskContext, options map[string]interface{}) 
(interface{}, error)
+}
+```
+3. 每个插件还有一个<a 
id="td">taskData</a>,里面包含了配置选项,apiClient以及一些插件其它属性(比如github有Repo信息)
+4. <a id="stm">SubTaskMeta</a>: 一个子任务的元数据,每个子任务都会定义一个SubTaskMeta
+
+
+```go
+var CollectMeetingTopUserItemMeta = core.SubTaskMeta{
+   Name: "collectMeetingTopUserItem",
+   EntryPoint: CollectMeetingTopUserItem,
+   EnabledByDefault: true,
+   Description: "Collect top user meeting data from Feishu api",
+}
+```
+5. <a id="ec">ExecContext</a>: 定义了执行(子)任务需要的所有资源
+6. <a id="stc">SubTaskContext</a>: 定义了执行子任务所需要的资源(包含了ExecContext)
+7. <a id="tc">TaskContext</a>: 
定义了执行插件任务所需要的资源(包含了ExecContext)。与SubTaskContext的区别在于SubTaskContext中的TaskContext()方法可以返回TaskContext,而TaskContext中的方法SubTaskContext(subtask
 string)方法可以返回SubTaskContext,子任务隶属于插件任务,所以把这两个Context进行了区分
+8. <a id="step">SubTaskEntryPoint</a>: 所有的插件子任务都需要实现这个函数,这样才能由框架层统一协调安排
+
+### 后续
+
+这篇文章介绍了 DevLake 的架构以及运行流程,还有三个核心 api\_collector、api\_extractor 和 
data\_convertor 将会在下一篇文章进行剖析。
+
+
diff --git a/blog/authors.yml b/blog/authors.yml
index cbc5c86..35669b1 100644
--- a/blog/authors.yml
+++ b/blog/authors.yml
@@ -1,11 +1,11 @@
 warren:
   name: Warren Chen (陈映初)
-  title: DevLake Contributor
+  title: Apache DevLake Contributor
   url: https://github.com/warren830
   image_url: https://github.com/warren830.png
 
 maxim:
   name: Maxim Wheatley
-  title: DevLake Community Member
+  title: Apache DevLake Community Member
   url: https://github.com/MaximDub
   image_url: https://github.com/MaximDub.png
diff --git a/community/BlogSubmission.md b/community/BlogSubmission.md
index 29782f8..55bc252 100644
--- a/community/BlogSubmission.md
+++ b/community/BlogSubmission.md
@@ -128,4 +128,4 @@ Not this.
 Or this.
 ```
 
-After completing the above steps, please submit a PR to 
merico-dev/lake-website for review. Happy blogging!
\ No newline at end of file
+After completing the above steps, please submit a PR to 
[apache/incubator-devlake-website](https://github.com/apache/incubator-devlake-website)
 for review. Happy blogging!
\ No newline at end of file
diff --git a/docs/01-Overview/01-WhatIsDevLake.md 
b/docs/01-Overview/01-WhatIsDevLake.md
index 9cf249c..8ef123a 100755
--- a/docs/01-Overview/01-WhatIsDevLake.md
+++ b/docs/01-Overview/01-WhatIsDevLake.md
@@ -1,30 +1,22 @@
 ---
-title: "What is DevLake?"
-linkTitle: "What is DevLake?"
-tags: []
-categories: []
-weight: 1
-description: >
-  General introduction of DevLake
+title: "Introduction"
+description: General introduction of Apache DevLake
 ---
 
+## What is Apache DevLake?
+Apache DevLake is an open-source dev data platform that ingests, analyzes, and 
visualizes the fragmented data from DevOps tools to distill insights for 
engineering productivity.
 
-DevLake brings your DevOps data into one practical, customized, extensible 
view. Ingest, analyze, and visualize data from an ever-growing list of 
developer tools, with our open source product.
-
-DevLake is designed for developer teams looking to make better sense of their 
development process and to bring a more data-driven approach to their own 
practices. You can ask DevLake many questions regarding your development 
process. Just connect and query.
-
-<a 
href="https://app-259373083972538368-3002.ars.teamcode.com/d/0Rjxknc7z/demo-homepage?orgId=1";>See
 demo</a>. Username/password:test/test. The demo is based on the data from this 
repo, merico-dev/lake.
+Apache DevLake is designed for developer teams looking to make better sense of 
their development process and to bring a more data-driven approach to their own 
practices. You can ask Apache DevLake many questions regarding your development 
process. Just connect and query.
 
+## What can be accomplished with Apache DevLake?
+1. Collect DevOps data across the entire Software Development Life Cycle 
(SDLC) and connect the siloed data with a standard [data 
model](../05-DataModels/01-DevLakeDomainLayerSchema.md).
+2. Provide out-of-the-box engineering [metrics](../06-EngineeringMetrics.md) 
to be visualized in a sereis of dashboards.
+3. Allow a flexible [framework](02-Architecture.md) for data collection ad ETL 
to support customizable data analysis.
 
 
 <div align="left">
 <img 
src="https://user-images.githubusercontent.com/14050754/145056261-ceaf7044-f5c5-420f-80ca-54e56eb8e2a7.png";
 width="100%" alt="User Flow" style={{borderRadius: '15px' }}/>
-<p align="center">User Flow</p>
 </div>
 <br/>
 
-### What can be accomplished with DevLake?
-1. Collect DevOps data across the entire SDLC process and connect data silos.
-2. A standard <a 
href="https://github.com/merico-dev/lake/wiki/DataModel.Domain-layer-schema";>data
 model</a> and out-of-the-box <a 
href="https://github.com/merico-dev/lake/wiki/Metric-Cheatsheet";>metrics</a> 
for software engineering.
-3. Flexible <a 
href="https://github.com/merico-dev/lake/blob/main/ARCHITECTURE.md";>framework</a>
 for data collection and ETL, support customized analysis.
-<br/><br/><br/>
+
diff --git a/docs/01-Overview/02-Architecture.md 
b/docs/01-Overview/02-Architecture.md
index db3cded..ae00b83 100755
--- a/docs/01-Overview/02-Architecture.md
+++ b/docs/01-Overview/02-Architecture.md
@@ -1,16 +1,14 @@
 ---
 title: "Architecture"
 linkTitle: "Architecture"
-tags: []
-categories: []
-weight: 2
 description: >
-  Understand the architecture of DevLake.
+  Understand the architecture of Apache DevLake.
 ---
 
 
-![devlake-architecture](https://user-images.githubusercontent.com/14050754/143292041-a4839bf1-ca46-462d-96da-2381c8aa0fed.png)
-<p align="center">Architecture Diagram</p>
+![devlake-architecture](../../static/img/arch-dataflow.svg)
+<p align="center">Architecture Diagram (data-flow perspective)</p>
+
 
 ## Stack (from low to high)
 
@@ -26,4 +24,4 @@ description: >
 1. Higher layer calls lower layer, not the other way around
 2. Whenever lower layer neeeds something from higher layer, a interface should 
be introduced for decoupling
 3. Components should be initialized in a low to high order during bootstraping
-<br/><br/><br/>
+<br/>
diff --git a/docs/01-Overview/03-Roadmap.md b/docs/01-Overview/03-Roadmap.md
index 39e229d..f7677c2 100755
--- a/docs/01-Overview/03-Roadmap.md
+++ b/docs/01-Overview/03-Roadmap.md
@@ -25,12 +25,14 @@ This roadmap is broken down by the goals in the last 
section.
 
 | Category | Features|
 | --- | --- |
-| More data sources across different [DevOps 
domains](https://github.com/merico-dev/lake/wiki/DevOps-Domain-Definition)| 1. 
**Issue/Task Management - Jira server** <br/> 2. **Issue/Task Management - Jira 
data center** <br/> 3. Issue/Task Management - GitLab Issues <br/> 4. 
Issue/Task Management - Trello <br/> 5. **Issue/Task Management - TPAD** <br/> 
6. Issue/Task Management - Teambition <br/> 7. Issue/Task Management - Trello 
<br/> 8. **Source Code Management - GitLab on-premise** <br/> [...]
-| More comprehensive and flexible [engineering data 
model](https://github.com/merico-dev/lake/issues/700) | 1. complete and polish 
standard data models for different [DevOps 
domains](https://github.com/merico-dev/lake/wiki/DevOps-Domain-Definition) 
<br/> 2. allow users to modify standard tables <br/> 3. allow users to create 
new tables <br/> 4. allow users to easily define ETL rules <br/> |
-| Better UX | 1. improve config-UI design for better onboard experience <br/> 
2. improve data collection speed for Github and other plugins with strict API 
rate limit <br/> 3. build a website to present well-organized documentation to 
DevLake users and contributors <br/> |
+| More data sources across different [DevOps 
domains](../05-DataModels/01-DevLakeDomainLayerSchema.md)| 1. **Issue/Task 
Management - Jira server** <br/> 2. **Issue/Task Management - Jira data 
center** <br/> 3. Issue/Task Management - GitLab Issues <br/> 4. Issue/Task 
Management - Trello <br/> 5. **Issue/Task Management - TAPD** <br/> 6. 
Issue/Task Management - Teambition <br/> 7. Issue/Task Management - Ones <br/> 
8. **Source Code Management - GitLab on-premise** <br/> 9. Source Code Man [...]
+| More comprehensive and flexible [engineering data 
model](../05-DataModels/01-DevLakeDomainLayerSchema.md) | 1. Implement the data 
models for the Quality, Testing, Calendar, Documentation and OSS Communnity 
Metrics domains.<br/> 2. Polish the data models for [existing 
domains](../05-DataModels/01-DevLakeDomainLayerSchema.md): Issue/Task 
Management, Source Code Management, Code Review and CI/CD.<br/> 3. Introduce 
DBT to allow users to create and modify the domain layer schema.<br/> |
+| Better User Experience | For new users: <br/> 1. Iterate on a clearer 
step-by-step guide to improve the pre-configuration experience.<br/>2. Design 
the new Config UI to reduce frictions for syncing data. <br/> 3. Showcase 
dashboard live demos to let users explore and learn about the 
dashboards.<br/><br/>For returning users:<br/> 1. Provide detailed guides to 
help users customize Grafana dashboards.<br/> 2. Work on the documentation for 
advanced features in the Config UI, such as the us [...]
 
 
-## How to Influence Roadmap
+## How to Influence the Roadmap
 A roadmap is only useful when it captures real user needs. We are glad to hear 
from you if you have specific use cases, feedback, or ideas. You can submit an 
issue to let us know!
 Also, if you plan to work (or are already working) on a new or existing 
feature, tell us, so that we can update the roadmap accordingly. We are happy 
to share knowledge and context to help your feature land successfully.
 <br/><br/><br/>
+
+
diff --git a/docs/02-QuickStart/03-TemporalSetup.md 
b/docs/02-QuickStart/03-TemporalSetup.md
new file mode 100644
index 0000000..05b24c9
--- /dev/null
+++ b/docs/02-QuickStart/03-TemporalSetup.md
@@ -0,0 +1,34 @@
+---
+title: "Temporal Setup"
+description: >
+  The steps to install DevLake in develper mode.
+---
+
+
+Normally, DevLake would execute pipelines on local machine (we call it `local 
mode`), it is sufficient most of the time.However, when you have too many 
pipelines that need to be executed in parallel, it can be problematic, either 
limited by the horsepower or throughput of a single machine.
+
+`temporal mode` was added to support distributed pipeline execution, you can 
fire up arbitrary workers on multiple machines to carry out those pipelines in 
parallel without hitting the single machine limitation.
+
+But, be careful, many API services like JIRA/GITHUB have request rate limit 
mechanism, collect data in parallel against same API service with same identity 
would most likely hit the wall.
+
+## How it works
+
+1. DevLake Server and Workers connect to the same temporal server by setting 
up `TEMPORAL_URL`
+2. DevLake Server sends `pipeline` to temporal server, and one of the Workers 
would pick it up and execute
+
+
+**IMPORTANT: This feature is in early stage of development. Please use with 
caution**
+
+
+## Temporal Demo
+
+### Requirements
+
+- [Docker](https://docs.docker.com/get-docker)
+- [docker-compose](https://docs.docker.com/compose/install/)
+- [temporalio](https://temporal.io/)
+
+### How to setup
+
+1. Clone and fire up  [temporalio](https://temporal.io/) services
+2. Clone this repo, and fire up DevLake with command `docker-compose -f 
docker-compose-temporal.yml up -d`
\ No newline at end of file
diff --git a/docs/02-QuickStart/03-DeveloperSetup.md 
b/docs/02-QuickStart/04-DeveloperSetup.md
similarity index 100%
rename from docs/02-QuickStart/03-DeveloperSetup.md
rename to docs/02-QuickStart/04-DeveloperSetup.md
diff --git a/docusaurus.config.js b/docusaurus.config.js
index ef38308..38ae443 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -5,7 +5,7 @@ const darkCodeTheme = 
require('prism-react-renderer/themes/dracula');
 /** @type {import('@docusaurus/types').DocusaurusConfig} */
 (module.exports = {
   title: 'Apache DevLake (Incubating)',
-  tagline: 'Apache DevLake is an open-source development data platform that 
converges operational data sources to distill development  insights throughout 
the software development life cycle (SDLC).',
+  tagline: 'Apache DevLake is an open-source dev data platform that ingests, 
analyzes, and visualizes the fragmented data from DevOps tools to distill 
insights for engineering productivity.',
   url: 'https://devlake.apache.org',
   baseUrl: '/',
   onBrokenLinks: 'throw',
@@ -23,7 +23,7 @@ const darkCodeTheme = 
require('prism-react-renderer/themes/dracula');
           path: 'docs',
           sidebarPath: require.resolve('./sidebars.js'),
           // set to undefined to remove Edit this Page
-          editUrl: undefined,
+          editUrl: 
'https://github.com/apache/incubator-devlake-website/edit/main',
         },
         blog: {
           showReadingTime: true,
diff --git 
a/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
 
b/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
index 20cc6bb..82b20c1 100644
--- 
a/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
+++ 
b/i18n/zh/docusaurus-plugin-content-blog/2022-05-18-apache-welcomes-devLake/index.md
@@ -1,6 +1,6 @@
 ---
 slug: apache-welcomes-devlake
-title: Apache Incubator Welcomes DevLake, A Dev-Data Platform Serving 
Developers
+title: DevLake 加入 Apache 孵化器,来和我们一起玩开源!
 authors: weisi
 tags: [devlake, apache]
 ---
@@ -28,18 +28,18 @@ tags: [devlake, apache]
 
 当前 DevLake 已支持主流项目管理工具 [JIRA 
cloud](https://github.com/apache/incubator-devlake/tree/main/plugins/jira)、[JIRA
 
server](https://github.com/apache/incubator-devlake/tree/main/plugins/jira)、[TAPD](https://github.com/apache/incubator-devlake/tree/main/plugins/tapd),代码托管工具
 
[Git](https://github.com/apache/incubator-devlake/tree/main/plugins/gitextractor)、[GitHub](https://github.com/apache/incubator-devlake/tree/main/plugins/github)、[GitLab](https://github.com/apache/incubator-devlake/tree/main/
 [...]
 
-数据源列表正在快速拓展中,您可以查看 DevLake 
已支持数据的[详细文档](https://devlake.apache.org/docs/DataModels/DataSupport),同时非常欢迎[参与贡献新的数据源插件](https://github.com/apache/incubator-devlake/blob/main/plugins/README.md)!
+数据源列表正在快速拓展中,您可以查看 Apache DevLake 
已支持数据的[详细文档](https://devlake.apache.org/docs/DataModels/DataSupport),同时非常欢迎[参与贡献新的数据源插件](https://github.com/apache/incubator-devlake/blob/main/plugins/README.md)!
 
 
 ### 标准化研发数据模型和开箱即用的效能指标
 
 研发过程数据的标准化程度低,用户难以直接使用这些数据进一步分析;而效能指标定义与计算方法模糊,又给研发数据的应用带来了额外的成本。
 
-DevLake 
提供了便捷的数据转化能力,将收集来的数据清洗转换为为[标准数据模型](https://www.devlake.io/docs/DataModels/DevLakeDomainLayerSchema),并基于标准模型生成一系列[研发效能指标](https://www.devlake.io/docs/EngineeringMetrics),对用户来说简单易懂、开箱即用。一方面节省了治理数据和定义指标的成本,另一方面使效能指标更加透明,便于研发数据的应用落地。
+Apache DevLake 
提供了便捷的数据转化能力,将收集来的数据清洗转换为为[标准数据模型](https://devlake.apache.org/docs/DataModels/DevLakeDomainLayerSchema),并基于标准模型生成一系列[研发效能指标](https://devlake.apache.org/docs/EngineeringMetrics),对用户来说简单易懂、开箱即用。一方面节省了治理数据和定义指标的成本,另一方面使效能指标更加透明,便于研发数据的应用落地。
 
-目前 DevLake 已支持 20+常见研发效能指标,可应用于交付效率、质量、成本、能力等不同认知域。
+目前 Apache DevLake 已支持 20+常见研发效能指标,可应用于交付效率、质量、成本、能力等不同认知域。
 
-结合用户使用研发数据的具体场景,DevLake 基于 Grafana 
搭建数据看板,支持趋势分析、按照成员/阶段下钻等分析能力,帮助用户快速定位研发效能提升的关键环节。您可以查看[预设数据看板](https://www.devlake.io/docs/LiveDemo),后续我们将在
 blog 中介绍每一个数据看板及其背后的真实用户场景。
+结合用户使用研发数据的具体场景,Apache DevLake 基于 Grafana 
搭建数据看板,支持趋势分析、按照成员/阶段下钻等分析能力,帮助用户快速定位研发效能提升的关键环节。您可以查看[预设数据看板](https://devlake.apache.org/docs/LiveDemo),后续我们将在
 blog 中介绍每一个数据看板及其背后的真实用户场景。
 
 ![面向开源产品的版本/模块质量分析](Dashboard-1.jpg)
 
@@ -49,15 +49,15 @@ DevLake 提供了便捷的数据转化能力,将收集来的数据清洗转换
 
 ### 灵活的数据源插件系统及数据处理框架,支持自定义
 
-DevLake 将数据加工、关联与转换的底层能力开放出来,提供可拓展的数据底座。
+Apache DevLake 将数据加工、关联与转换的底层能力开放出来,提供可拓展的数据底座。
 用户可以根据实际需求,实现以下自定义:
 
-- 数据源自定义:DevLake 基于 Golang plugin 系统设计了灵活的插件系统,支持用户独立开发接入任意 DevOps 工具
+- 数据源自定义:Apache DevLake 基于 Golang plugin 系统设计了灵活的插件系统,支持用户独立开发接入任意 DevOps 工具
 - 数据实体自定义:基于 dbt 插件,支持用户自定义数据转换模型
 - 效能指标自定义:支持用户基于数据模型自定义指标,或调整指标计算方式
 - 数据看板自定义:SQL 查询,在 Grafana 中拖拽搭建数据看板
 
-以下是 [DevLake 
架构图](https://github.com/apache/incubator-devlake/blob/main/ARCHITECTURE.md):
+以下是 [Apache DevLake 
架构图](https://github.com/apache/incubator-devlake/blob/main/ARCHITECTURE.md):
 
 ![面向开源产品的版本/模块质量分析](0.11-architecture-diagram.jpg)
 
diff --git a/src/components/HomepageFeatures.js 
b/src/components/HomepageFeatures.js
index 20ad2af..3ef8d18 100644
--- a/src/components/HomepageFeatures.js
+++ b/src/components/HomepageFeatures.js
@@ -4,11 +4,11 @@ import styles from './HomepageFeatures.module.css';
 
 const FeatureList = [
   {
-    title: 'Silos Connected',
+    title: 'Data Silos Connected',
     Svg: require('../../static/img/SilosConnected.svg').default,
     description: (
       <>
-        Collect DevOps data across the entire SDLC process and connect data 
silos
+        Collect DevOps data across the entire SDLC and connect siloed data 
with a standard data model
       </>
     ),
   },
@@ -17,12 +17,12 @@ const FeatureList = [
     Svg: require('../../static/img/OutoftheboxAnalysis.svg').default,
     description: (
       <>
-        Collect DevOps data across the entire SDLC process and connect data 
silos
+        Provide out-of-the-box engineering metrics to be visualized in a 
sereis of dashboards
       </>
     ),
   },
   {
-    title: 'Highly Flexible',
+    title: 'A Highly Flexible Framework',
     Svg: require('../../static/img/HighlyFlexible.svg').default,
     description: (
       <>
diff --git a/src/pages/index.js b/src/pages/index.js
index ecca205..51e6cb5 100644
--- a/src/pages/index.js
+++ b/src/pages/index.js
@@ -22,8 +22,8 @@ export default function Home() {
   const {siteConfig} = useDocusaurusContext();
   return (
     <Layout
-      title={`Hello from ${siteConfig.title}`}
-      description="Description will go into a meta tag in <head />">
+      title={`${siteConfig.title}`}
+      description="Apache DevLake is an open-source dev data platform that 
ingests, analyzes, and visualizes the fragmented data from DevOps tools to 
distill insights for engineering productivity.">
       <HomepageHeader />
       <main>
         <HomepageFeatures />
diff --git a/static/img/arch-component.svg b/static/img/arch-component.svg
new file mode 100644
index 0000000..d6cc93a
--- /dev/null
+++ b/static/img/arch-component.svg
@@ -0,0 +1 @@
+<mxfile host="Electron" modified="2022-05-12T09:41:06.154Z" agent="5.0 (X11; 
Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/17.4.2 
Chrome/100.0.4896.60 Electron/18.0.1 Safari/537.36" etag="6vSd5RCrgC3i_NVkrfRo" 
version="17.4.2" type="device"><diagram id="rbQhRwd4xvFo_47z7uvu" 
name="Page-1">3VjdbpswGH2aSNtFI8CBJJdr0m6TWq0ampb2ZnKCC24dzIxJwp5+JrYhYNKlStJkvcI+fP7hnOPPNh0wmq8+M5hEtzRApONYwaoDxh3HsYcDTzwKJJfI0O5LIGQ4UEEV4OM/SIGWQjMcoLQWyCklHCd1cEbjGM14DYOM0WU97JGS+qgJDJEB+DNITPQ
 [...]
\ No newline at end of file
diff --git a/static/img/arch-dataflow.svg b/static/img/arch-dataflow.svg
new file mode 100644
index 0000000..8c0dff5
--- /dev/null
+++ b/static/img/arch-dataflow.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd";>
+<svg xmlns="http://www.w3.org/2000/svg"; 
xmlns:xlink="http://www.w3.org/1999/xlink"; version="1.1" width="1678px" 
height="918px" viewBox="-0.5 -0.5 1678 918" content="&lt;mxfile 
host=&quot;Electron&quot; modified=&quot;2022-05-11T13:39:34.016Z&quot; 
agent=&quot;5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) 
draw.io/17.4.2 Chrome/100.0.4896.60 Electron/18.0.1 Safari/537.36&quot; 
etag=&quot;ZEm8dapN1nsaMz5g2JYS&quot; version=&quot;17.4.2&quot; 
type=&quot;device&quot;&gt;&lt;d [...]
\ No newline at end of file
diff --git a/static/img/logo.svg b/static/img/logo.svg
index dfab7b8..9c23335 100644
--- a/static/img/logo.svg
+++ b/static/img/logo.svg
@@ -1,8 +1,7 @@
-<svg width="56" height="60" viewBox="0 0 56 60" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
-<path d="M47.6195 8.17084C42.3436 2.90519 35.3431 0 27.8887 0C20.5138 0 
13.4679 2.90519 8.23736 8.10275C2.90472 13.4024 -0.0225611 20.4725 0.000130947 
27.9965C0.022823 35.3729 2.9501 42.4089 8.16929 47.6292C13.4339 52.8948 20.4457 
55.8 27.8887 55.8C27.8887 43.0217 27.8887 30.2434 27.8887 17.4652C31.6494 
17.4652 34.6336 19.0203 36.2281 21.5279C36.5684 21.9705 36.8748 22.4358 37.1471 
22.9351C37.5685 23.7313 38.618 24.0534 39.4087 23.6882C40.3886 23.2356 40.5087 
22.2395 40.2136 21.5279C39.6 [...]
-<path d="M34.0355 58.8C30.0034 58.8 22.4565 57.463 17.1522 48.4759L15.9554 
46.4493L17.1845 46.5554C15.6536 46.2159 14.252 45.8233 13.0122 45.3989C9.07703 
44.0407 6.76986 42.343 6.15533 40.327C5.85345 39.3403 5.73486 37.3985 8.31157 
35.4356C9.91797 34.2154 11.8694 33.6 14.1226 33.6C16.7101 33.6 18.7693 34.4382 
18.8556 34.47L20.5914 35.1809L16.5915 39.0113L15.9447 38.884C15.7075 38.831 
15.4703 38.8097 15.2223 38.8097C14.3059 38.8097 13.6806 39.1387 13.4758 
39.3297C13.6914 39.5631 14.6186 4 [...]
-<path d="M14.6247 34.2899C16.9505 34.2899 19.3869 35.2306 19.3869 
35.2306L17.3536 37.2127C17.035 37.1478 16.7058 37.1153 16.3872 37.1153C12.2854 
36.9302 9.8153 39.8572 18.193 41.6078C23.6728 42.4305 30.9792 42.9934 39.4006 
44.1842C54.417 46.306 45.5601 57.5102 34.2394 57.5102C28.8234 57.5102 22.8551 
54.9446 18.6709 47.605L25.4569 48.1896C25.4569 48.1896 29.3012 50.3222 32.5721 
50.3222C33.2093 50.3222 33.8146 50.2464 34.3775 50.0516C37.9139 48.85 37.2023 
47.237 28.8021 46.6091C11.1202 45. [...]
-<path d="M27.55 47.4C26.5351 47.4 25.6354 46.908 25.0495 46.0095C24.4531 
45.111 24.2125 43.913 24.3485 42.6616C24.0451 43.0788 23.501 43.4317 22.528 
43.5601C22.3711 43.5815 22.2141 43.5922 22.0572 43.5922C20.8854 43.5922 19.881 
43.0039 19.2951 41.9771C18.5941 40.747 18.615 39.1212 19.3369 37.8377C20.0588 
36.5541 21.7433 35.8803 23.0407 35.8803C23.2813 35.8803 23.501 35.9017 23.6998 
35.9445C23.1767 35.3669 22.8 34.7572 22.5698 34.1903C22.2246 33.3453 22.1618 
32.5538 22.4024 31.9334C22.329 [...]
-<path d="M27.5163 10.2441C29.5782 10.2441 30.5339 12.6088 29.9433 
15.928C29.3312 19.3775 27.5163 20.7008 27.5163 20.7008C27.5163 20.7008 27.5271 
20.7008 27.5593 20.7008C27.8278 20.7008 29.4171 20.549 31.0816 17.0236C31.9085 
15.2555 32.2628 12.0122 33.8307 12.0122C33.9488 12.0122 34.0669 12.0339 34.1851 
12.0664C36.0536 12.5979 36.6872 15.5701 35.3234 18.0758C33.4011 21.612 30.1044 
21.7856 30.1044 21.7856C30.1044 21.7856 35.3234 24.1352 34.1099 28.7061C33.3689 
30.6912 31.2212 31.4613 29.00 [...]
-<path d="M28.7998 25.2284C28.7771 25.8768 28.2426 26.4 27.5943 
26.4H27.5716C26.912 26.3886 26.3888 25.8313 26.4002 25.1716C26.4229 24.5232 
26.9574 24 27.6057 24H27.6284C28.288 24.0114 28.8112 24.5687 28.7998 25.2284Z" 
fill="#FF8B8B"/>
+<svg width="86" height="64" viewBox="0 0 86 64" fill="none" 
xmlns="http://www.w3.org/2000/svg";>
+<circle cx="32" cy="32" r="30" fill="#7497F7"/>
+<path d="M47.4455 37.3015C45.5675 37.3452 43.843 37.2221 42.2473 
36.9688C44.0458 35.348 45.1034 33.118 44.9725 30.7079C44.8485 28.4315 43.6852 
26.4196 41.9002 24.9929C44.2929 23.9743 47.0645 22.3845 48.4968 20.1165C50.1586 
17.4848 49.1404 15.266 48.3264 14.1222C48.0011 13.6649 47.2356 13.6227 46.7632 
14.0385L36.7274 22.8706C36.1965 22.8065 35.6521 22.7812 35.0987 22.7953C36.7816 
20.8059 38.4364 18.1876 38.8842 15.2449C39.4673 11.4145 37.4618 9.55034 36.1296 
8.7526C35.5972 8.43393 34.7895 [...]
+<path d="M31.2926 29.0562C31.2926 30.3224 32.32 31.3481 33.5868 
31.3481C34.8543 31.3481 35.8809 30.3224 35.8809 29.0562C35.8809 27.7899 34.8543 
26.7643 33.5868 26.7643C32.3193 26.7643 31.2926 27.7899 31.2926 29.0562Z" 
fill="#FF8B8B"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M8.77372 50.9893C7.5519 
49.4966 6.47113 47.884 5.55176 46.1719C9.74951 44.9284 15.4211 43.7714 21.5836 
43.7714C26.244 43.7714 29.7677 44.6397 33.1977 45.488L33.2629 45.5041C36.6471 
46.3411 40.0078 47.1723 44.7083 47.3812C49.9395 47.6137 54.8697 46.4715 58.8981 
45.3002C57.6704 47.7782 56.1104 50.0623 54.2764 52.0943C51.2519 52.6689 47.9161 
53.0352 44.4638 52.8818C39.2151 52.6486 35.4146 51.7084 32.0158 50.8676L31.8757 
50.833C28.4649 49.9894 [...]
+<path d="M73.624 8.528V18.128H75.16V11.144H75.232L78.256 18.128H79.552L82.576 
11.144H82.648V18.128H84.184V8.528H82.288L78.952 16.112H78.88L75.52 
8.528H73.624ZM64.528 8.528V9.944H67.84V18.128H69.4V9.944H72.712V8.528H64.528Z" 
fill="#7497F7"/>
 </svg>

Reply via email to