diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md
new file mode 100644
index 00000000..46246696
--- /dev/null
+++ b/DEVELOPMENT.md
@@ -0,0 +1,65 @@
+# Developers Guide
+
+## Running dashboard server
+
+### Building TypeScript files
+
+Node.js v14.14.0 is required to build TypeScript files.
+
+```
+$ npm install
+$ npm run build:dev
+```
+
+
+Watch for files changes
+
+```
+$ npm run watch
+```
+
+
+
+
+Production builds
+
+```
+$ npm run build:prd
+```
+
+
+
+### Running servers
+
+```
+$ pip install .
+$ optuna-dashboard sqlite:///db.sqlite3
+```
+
+
+## Running formatters
+
+### Auto-formatting TypeScript files
+
+```
+$ npm run fmt
+```
+
+### Auto-formatting Python files
+
+```
+$ pip install .[lint]
+$ black .
+```
+
+
+## Release process
+
+The release process is fully automated by GitHub Actions.
+GitHub Actions will be automatically building TypeScript, packaging the distributions and uploading to PyPI
+after you pushed the new git tag to the GitHub.
+
+1. Replace 'optuna_dashboard.version.__version__' to the next version.
+2. Create a git tag (e.g. `$ git tag v0.X.Y`).
+3. Push the tag to GitHub (e.g. `$ git push origin v0.X.Y`)
+