fix: a download page must use closer.lua to link to thw artifacts
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 3f58251..8142dab 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -102,6 +102,15 @@
         sidebarPath: require.resolve('./sidebarsLivedemo.js'),
       },
     ],
+    [
+      '@docusaurus/plugin-content-docs',
+      {
+        id: 'download',
+        path: 'download',
+        routeBasePath: 'download',
+        sidebarPath: require.resolve('./sidebarsDownload.js'),
+      },
+    ],
     function tailwindcss() {
       return {
         name: 'docusaurus-tailwindcss',
@@ -201,19 +210,9 @@
             position: 'right',
           }, 
           {
-            type: 'dropdown',
+            to: '/download',
             label: 'Download',
-            position: 'right',
-            items: [
-              {
-                label: 'Latest Release',
-                to: 'https://dist.apache.org/repos/dist/release/incubator/devlake',
-              },
-              {
-                label: 'Older Releases',
-                to: 'https://archive.apache.org/dist/incubator/devlake',
-              }
-            ],
+            position: 'right'
           },
           {
             type: 'dropdown',
@@ -330,7 +329,7 @@
         require.resolve('@easyops-cn/docusaurus-search-local'),
         /** @type {import("@easyops-cn/docusaurus-search-local").PluginOptions} */
         ({
-          docsRouteBasePath: ['docs','livedemo', 'community', 'blog'],
+          docsRouteBasePath: ['docs','livedemo', 'community', 'blog', 'Download'],
           hashed: true,
           explicitSearchResultPath: true,
         }),
diff --git a/download/index.md b/download/index.md
new file mode 100644
index 0000000..554bee4
--- /dev/null
+++ b/download/index.md
@@ -0,0 +1,42 @@
+# Apache DevLake Downloads
+
+The official Apache DevLake releases are provided as source artifacts.
+
+## Releases
+
+The latest source release is [0.21.0](
+https://www.apache.org/dyn/closer.lua/incubator/devlake/0.21.0-incubating/apache-devlake-0.21.0-incubating-src.tar.gz?action=download) ([asc](https://downloads.apache.org/incubator/devlake/0.21.0-incubating/apache-devlake-0.21.0-incubating-src.tar.gz.asc),
+[sha512](https://downloads.apache.org/incubator/devlake/0.21.0-incubating/apache-devlake-0.21.0-incubating-src.tar.gz.sha512)).
+
+For older releases, please check the [archive](https://archive.apache.org/dist/incubator/devlake).
+
+## Notes
+
+* When downloading a release, please verify the OpenPGP compatible signature (or failing that, check the SHA-512); these should be fetched from the main Apache site.
+* The KEYS file contains the public keys used for signing release. It is recommended that (when possible) a web of trust is used to confirm the identity of these keys.
+* Please download the [KEYS](https://downloads.apache.org/incubator/devlake/KEYS) as well as the .asc signature files.
+
+### To verify the signature of the release artifact
+
+You will need to download both the release artifact and the .asc signature file for that artifact. Then verify the signature by:
+
+* Download the KEYS file and the .asc signature files for the relevant release artifacts.
+* Import the KEYS file to your GPG keyring: 
+
+    ```shell
+    gpg --import KEYS
+    ```
+
+* Verify the signature of the release artifact using the following command:
+  
+    ```shell
+    gpg --verify <artifact>.asc <artifact>
+    ```
+
+### To verify the checksum of the release artifact
+
+You will need to download both the release artifact and the .sha512 checksum file for that artifact. Then verify the checksum by:
+
+```shell
+shasum -a 512 -c <artifact>.sha512
+```
\ No newline at end of file
diff --git a/sidebarsDownload.js b/sidebarsDownload.js
new file mode 100644
index 0000000..156c316
--- /dev/null
+++ b/sidebarsDownload.js
@@ -0,0 +1,29 @@
+/**
+ * Creating a sidebar enables you to:
+ - create an ordered group of docs
+ - render a sidebar for each doc of that group
+ - provide next/previous navigation
+ The sidebars can be generated from the filesystem, or explicitly defined here.
+ Create as many sidebars as you want.
+ */
+
+// @ts-check
+
+/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */
+const sidebars = {
+  // By default, Docusaurus generates a sidebar from the docs folder structure
+  downloadSidebar: [{type: 'autogenerated', dirName: '.'}],
+
+  // But you can create a sidebar manually
+  /*
+  tutorialSidebar: [
+    {
+      type: 'category',
+      label: 'Tutorial',
+      items: ['hello'],
+    },
+  ],
+   */
+};
+
+module.exports = sidebars;