diff --git a/docs/DeveloperManuals/DeveloperSetup.md b/docs/DeveloperManuals/DeveloperSetup.md
index 4b523d1..eb33c70 100644
--- a/docs/DeveloperManuals/DeveloperSetup.md
+++ b/docs/DeveloperManuals/DeveloperSetup.md
@@ -17,7 +17,8 @@
 
 ## How to setup dev environment
 
-The following guide will walk you through the procedure to run local config-ui and devlake servers against dockerized MySQL and Grafana containers.
+The following guide will walk through how to run DevLake's frontend (`config-ui`) and backend in dev mode.
+
 
 1. Navigate to where you would like to install this project and clone the repository:
 
@@ -57,19 +58,54 @@
 7. Run `devlake` and `config-ui` in dev mode in two separate terminals:
 
     ```sh
-    # install mockery
-    go install github.com/vektra/mockery/v2@latest
-    # generate mocking stubs
-    make mock
     # run devlake
     make dev
     # run config-ui
     make configure-dev
     ```
 
-    Q: I got an error saying: `libgit2.so.1.3: cannot open share object file: No such file or directory`
+    For common errors, please see [Troubleshooting](#troubleshotting).
 
-    A: This library is needed by the git-extractor plugin. Make sure your program can find `libgit2.so.1.3`. `LD_LIBRARY_PATH` can be assigned like this if your `libgit2.so.1.3` is located at `/usr/local/lib`:
+8.  Config UI is running at `localhost:4000`
+    - For how to use Config UI, please refer to our [tutorial](UserManuals/ConfigUI/Tutorial.md)
+
+## Running Tests
+
+```sh
+# install mockery
+go install github.com/vektra/mockery/v2@latest
+# generate mocking stubs
+make mock
+# run tests
+make test
+```
+
+## DB migrations
+
+Please refer to the [Migration Doc](../DeveloperManuals/DBMigration.md).
+
+## Using DevLake API
+
+All DevLake APIs (core service + plugin API) are documented with swagger. To see API doc live with swagger:
+
+    - Install [swag](https://github.com/swaggo/swag).
+    - Run `make swag` to generate the swagger documentation.
+    - Visit `http://localhost:8080/swagger/index.html` while `devlake` is running.
+
+
+## Developing dashboards
+
+To access Grafana, click *View Dashboards* button in the top left corner of Config UI, or visit `localhost:3002` (username: `admin`, password: `admin`).
+
+For provisioning, customizing, and creating dashboards, please refer to our [Grafana Doc](../UserManuals/Dashboards/GrafanaUserGuide.md).
+
+
+## Troubleshooting
+
+
+    Q: Running `make dev` yields error: `libgit2.so.1.3: cannot open share object file: No such file or directory`
+
+    A: `libgit2.so.1.3` is required by the gitextractor plugin and should be . Make sure your program can find `libgit2.so.1.3`. `LD_LIBRARY_PATH` can be assigned like this if your `libgit2.so.1.3` is located at `/usr/local/lib`:
 
     ```sh
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
@@ -77,69 +113,10 @@
    
     Note that the version has to be pinned to 1.3.0. If you don't have it, you may need to build it manually with CMake from [source](https://github.com/libgit2/libgit2/releases/tag/v1.3.0).
 
-8. Visit config UI at `localhost:4000` to configure data connections.
-    - Please follow the [tutorial](UserManuals/ConfigUI/Tutorial.md)
-    - Submit the form to update the values by clicking on the **Save Connection** button on each form page
 
-9. Visit `localhost:4000/pipelines/create` to RUN a Pipeline and trigger data collection.
-
-
-   Pipelines Runs can be initiated by the new "Create Run" Interface. Simply enable the **Data Connection Providers** you wish to run collection for, and specify the data you want to collect, for instance, **Project ID** for Gitlab and **Repository Name** for GitHub.
-
-   Once a valid pipeline configuration has been created, press **Create Run** to start/run the pipeline.
-   After the pipeline starts, you will be automatically redirected to the **Pipeline Activity** screen to monitor collection activity.
-
-   **Pipelines** is accessible from the main menu of the config-ui for easy access.
-
-   - Manage All Pipelines: `http://localhost:4000/pipelines`
-   - Create Pipeline RUN: `http://localhost:4000/pipelines/create`
-   - Track Pipeline Activity: `http://localhost:4000/pipelines/activity/[RUN_ID]`
-
-   For advanced use cases and complex pipelines, please use the Raw JSON API to manually initiate a run using **cURL** or graphical API tool such as **Postman**. `POST` the following request to the DevLake API Endpoint.
-
-    ```json
-    [
-        [
-            {
-                "plugin": "github",
-                "options": {
-                    "repo": "lake",
-                    "owner": "merico-dev"
-                }
-            }
-        ]
-    ]
-    ```
-
-   Please refer to [Pipeline Advanced Mode](../UserManuals/ConfigUI/AdvancedMode.md) for in-depth explanation.
-
-
-10. Click *View Dashboards* button in the top left when done, or visit `localhost:3002` (username: `admin`, password: `admin`).
-
-   We use <a href="https://grafana.com/" target="_blank">Grafana</a> as a visualization tool to build charts for the [data stored in our database](../DataModels/DevLakeDomainLayerSchema). Using SQL queries, we can add panels to build, save, and edit customized dashboards.
-
-   All the details on provisioning and customizing a dashboard can be found in the [Grafana Doc](../UserManuals/Dashboards/GrafanaUserGuide.md).
-
-11. (Optional) To run the tests:
-
-    ```sh
-    make test
-    ```
-
-12. For DB migrations, please refer to [Migration Doc](../DeveloperManuals/DBMigration.md).
-
-13. Swagger documentation.
-
-    - Install the `swag` package by following instruction on [swaggo](https://github.com/swaggo/swag).
-    - Run `make swag` to generate the Swagger Documentation.
-    - Visit `http://localhost:8080/swagger/index.html` while `devlake` is running.
-
-14. Compiling
+## Compiling
 
     - Compile all plugins: `make build-plugin`
     - Compile specific plugins: `PLUGIN=<PLUGIN_NAME> make build-plugin`
     - Compile server: `make build`
     - Compile worker: `make build-worker`
-
-
-
