diff --git a/README.md b/README.md
index fb333a63..5ce5fb19 100644
--- a/README.md
+++ b/README.md
@@ -1,11 +1,15 @@
[](https://oceanprotocol.com)
-[](https://travis-ci.com/oceanprotocol/lib-js)
-
Ocean-lib
-`ocean-lib` is a Javascript library to privately & securely publish, exchange,
-and consume data. With it, you can:
+> JavaScript library to privately & securely publish, exchange, and consume data.
+
+[](https://www.npmjs.com/package/@oceanprotocol/lib)
+[](https://travis-ci.com/oceanprotocol/ocean-lib-js)
+[](https://github.com/prettier/prettier)
+[](https://github.com/oceanprotocol/eslint-config-oceanprotocol)
+
+With it, you can:
- **Publish** data services: downloadable files, streaming data, or compute-to-data.
Ocean creates a new [ERC20](https://github.com/ethereum/EIPs/blob/7f4f0377730f5fc266824084188cc17cf246932e/EIPS/eip-20.md)
@@ -19,23 +23,91 @@ and consume data. With it, you can:
This is in alpha state and you can expect running into problems. If you run into them, please open up a [new issue](/issues).
-## Quick Install
+- [🏗 Installation](#-installation)
+- [🏄 Quick Start](#-quick-start)
+ - [Simple Flow](#simple-flow)
+ - [Marketplace Flow](#marketplace-flow)
+- [🦑 Development](#-development)
+- [✨ Code Style](#-code-style)
+- [🛳 Production](#-production)
+- [⬆️ Releases](#️-releases)
+ - [Production](#production)
+- [🏛 License](#-license)
-`npm i @oceanprotocol/lib`
+## 🏗 Installation
-## Quickstart: Simple Flow
+```bash
+npm install @oceanprotocol/lib
+```
+
+## 🏄 Quick Start
+
+### Simple Flow
This stripped-down flow shows the essence of Ocean. Just downloading, no metadata.
[Go to simple flow](docs/README_simple_flow.md)
-## Quickstart: Marketplace Flow
+### Marketplace Flow
This batteries-included flow includes metadata, multiple services for one datatoken, and compute-to-data.
[Go to marketplace flow](docs/README_marketplace_flow.md)
-## License
+## 🦑 Development
+
+The project is authored with TypeScript and compiled with `tsc`.
+
+To start compiler in watch mode:
+
+```bash
+npm start
+```
+
+## ✨ Code Style
+
+For linting and auto-formatting you can use from the root of the project:
+
+```bash
+# lint all js with eslint
+npm run lint
+
+# auto format all js & css with prettier, taking all configs into account
+npm run format
+```
+
+## 🛳 Production
+
+To create a production build, run from the root of the project:
+
+```bash
+npm run build
+```
+
+## ⬆️ Releases
+
+Releases are managed semi-automatically. They are always manually triggered from a developer's machine with release scripts.
+
+### Production
+
+From a clean `main` branch you can run any release task bumping the version accordingly based on semantic versioning:
+
+- To bump a patch version: `npm run release`
+- To bump a minor version: `npm run release -- minor`
+- To bump a major version: `npm run release -- major`
+
+Every task does the following:
+
+- bumps the project version in `package.json`, `package-lock.json`
+- auto-generates and updates the CHANGELOG.md file from commit messages
+- creates a Git tag
+- commits and pushes everything
+- creates a GitHub release with commit messages as description
+- Git tag push will trigger Travis to do a npm release
+
+For the GitHub releases steps a GitHub personal access token, exported as `GITHUB_TOKEN` is required. [Setup](https://github.com/release-it/release-it#github-releases)
+
+## 🏛 License
```
Copyright ((C)) 2020 Ocean Protocol Foundation
diff --git a/package.json b/package.json
index 47c04a44..a173de4a 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,7 @@
"typings": "./dist/node/lib.d.ts",
"unpkg": "./dist/browser/lib.cjs2.min.js",
"scripts": {
+ "start": "npm run clean && npm run build:metadata && tsc -w",
"build": "npm run clean && npm run build:metadata && npm run build:tsc",
"build:tsc": "tsc --sourceMap",
"build:metadata": "./scripts/get-metadata.js > src/metadata.json",