diff --git a/packages/redux-dynamic-modules/README.md b/packages/redux-dynamic-modules/README.md
new file mode 100644
index 0000000..a245414
--- /dev/null
+++ b/packages/redux-dynamic-modules/README.md
@@ -0,0 +1,118 @@
+
+
+
+
Redux Dynamic Modules
+
+[![Pipelines](https://dev.azure.com/redux-dynamic-modules/redux-dynamic-modules/_apis/build/status/Microsoft.redux-dynamic-modules?branchName=master)](https://dev.azure.com/redux-dynamic-modules/redux-dynamic-modules/redux-dynamic-modules%20Team/_build?definitionId=1&_a=summary) [![npm (scoped)](https://img.shields.io/npm/v/redux-dynamic-modules.svg)](https://npmjs.org/package/redux-dynamic-modules) [![Join the chat at https://gitter.im/redux-dynamic-modules/community](https://badges.gitter.im/redux-dynamic-modules/community.svg)](https://gitter.im/redux-dynamic-modules/community?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) ![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)
+
+## What is it?
+
+**redux-dynamic-modules** is a library that aims to make Redux Reducers and middleware easy to modular-ize and add/remove dynamically.
+
+## Motivation
+
+In large Javascript applications, it is often desired to perform some kind of code-splitting, so that the initial script size is small. However, in Redux, you are required to define your reducers and middleware up-front; there is no good way to dynamically add/remove these constructs at runtime.
+
+**redux-dynamic-modules** is designed to make dynamically loading these constructs easier. You can define a **module**, which contains reducers and middleware, and add it to the Redux store at runtime. We also provide a React component `DynamicModuleLoader`, which can load/unload modules on mount/unmount.
+
+Modules provide the following benefits:
+
+- Modules can be easily re-used across the application, or between multiple similar applications.
+- Components declare the modules needed by them and redux-dynamic-modules ensures that the module is loaded for the component.
+- Modules can be added/removed from the store dynamically, ex. when a component mounts or when a user performs an action
+
+## Features
+
+- Group together reducers, middleware, and state into a single, re-usable module.
+- Add and remove modules from a Redux store at any time.
+- Use the included `
` component to automatically add a module when a component is rendered
+- Extensions provide integration with popular libraries, including `redux-saga` and `redux-thunk`
+
+## Example Scenarios
+
+- You don't want to load the code for all your reducers up front. Define a module for some reducers and use `DynamicModuleLoader` and a library like [react-loadable](https://github.com/jamiebuilds/react-loadable) to download and add your module at runtime.
+- You have some common reducers/middleware that need to be re-used in different areas of your application. Define a module and easily include it in those areas.
+- You have a mono-repo that contains multiple applications which share similar state. Create a package containing some modules and re-use them across your applications
+
+## Install
+
+Run
+
+```
+npm install redux-dynamic-modules
+```
+
+or
+
+```
+yarn add redux-dynamic-modules
+```
+
+## Usage
+
+- Create a module with the following format
+
+```typescript
+export function getUsersModule(): IModule
{
+ return {
+ id: "users",
+ reducerMap: {
+ users: usersReducer,
+ },
+ // Actions to fire when this module is added/removed
+ // initialActions: [],
+ // finalActions: []
+ };
+}
+```
+
+- Create a `ModuleStore`
+
+```typescript
+import { createStore, IModuleStore } from "redux-dynamic-modules";
+import { getUsersModule } from "./usersModule";
+
+const store: IModuleStore = createStore({
+ initialState: { /** initial state */ },
+ enhancers: [ /** enhancers to include */ ],
+ extensions: [/** extensions to include i.e. getSagaExtension(), getThunkExtension() */],
+},
+ getUsersModule()
+ /* ...any additional modules */
+);
+```
+
+- Use like a standard Redux store
+- Use the `DynamicModuleLoader` React component to add/remove modules when components mount/unmount
+
+```jsx
+
+ Hello World!!
+
+```
+
+## Extensions
+
+- redux-saga - [redux-dynamic-modules-saga](https://www.npmjs.com/package/redux-dynamic-modules-saga)
+- redux-thunk - [redux-dynamic-modules-thunk](https://www.npmjs.com/package/redux-dynamic-modules-thunk)
+
+## Examples
+
+See the [Widgets](https://github.com/Microsoft/redux-dynamic-modules/tree/master/packages/widgets-example) for a quick of example of the library in practice.
+
+Step by step walthrough of start consuming `redux-dynamic-modules` in the widget app. [Youtube](https://www.youtube.com/watch?v=SktRbSZ-4Tk)
+
+## Contributing
+
+This project welcomes contributions and suggestions. Most contributions require you to agree to a
+Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
+the rights to use your contribution. For details, visit https://cla.microsoft.com.
+
+When you submit a pull request, a CLA-bot will automatically determine whether you need to provide
+a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions
+provided by the bot. You will only need to do this once across all repos using our CLA.
+
+This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
+For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
+contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.