diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..60b433c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+# build related
+doc_venv
+_build
+repos
+
+# subrepos
+bbsim
+pyvoltha
+voltha-go
+voltha-openolt-adapter
+voltha-openonu-adapter
+voltha-protos
+voltha-system-tests
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..94a12ba
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=gerrit.opencord.org
+port=29418
+project=voltha-docs.git
+defaultremote=origin
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..34575c2
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,111 @@
+# Makefile for Sphinx documentation
+
+# use bash for pushd/popd, and to fail quickly
+SHELL = bash -e -o pipefail
+
+# You can set these variables from the command line.
+SPHINXOPTS   ?=
+SPHINXBUILD  ?= sphinx-build
+SOURCEDIR    ?= .
+BUILDDIR     ?= _build
+
+# Put it first so that "make" without argument is like "make help".
+help: doc_venv
+	source ./doc_venv/bin/activate ;\
+	$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help test lint reload Makefile
+
+# Create the virtualenv with all the tools installed
+doc_venv:
+	virtualenv doc_venv ;\
+	source ./doc_venv/bin/activate ;\
+	pip install livereload ;\
+	pip install -r requirements.txt
+
+# automatically reload changes in browser as they're made
+reload: doc_venv
+	source ./doc_venv/bin/activate ;\
+	set -u ;\
+	sphinx-reload $(SOURCEDIR)
+
+# lint and link verification. linkcheck is part of sphinx
+test: lint linkcheck
+
+lint: rst-lint
+
+rst-lint: doc_venv | $(OTHER_REPO_DOCS)
+	source ./doc_venv/bin/activate ;\
+	set -u ;\
+	rstcheck -r $$(find . -name \*.rst ! -path "*doc_venv*" ! -path "./repos/*" ! -path "*vendor*")
+
+# markdown linting
+#  currently not enabled, should be added to lint target
+LINT_STYLE ?= mdl_strict.rb
+md-lint: | $(OTHER_REPO_DOCS)
+	@echo "markdownlint(mdl) version: `mdl --version`"
+	@echo "style config:"
+	@echo "---"
+	@cat $(LINT_STYLE)
+	@echo "---"
+	mdl -s $(LINT_STYLE) `find -L $(SOURCEDIR) ! -path "./_doc_venv/*" ! -path "./_build/*" ! -path "./repos/*" ! -path "*vendor*" -name "*.md"`
+
+# clean up
+clean:
+	rm -rf $(BUILDDIR) $(OTHER_REPO_DOCS)
+
+clean-all: clean
+	rm -rf doc_venv repos
+
+# Other repos with documentation to include.
+# edit the `git_refs` file with the commit/tag/branch that you want to use
+OTHER_REPO_DOCS ?= bbsim voltha-go voltha-openolt-adapter voltha-openonu-adapter voltha-protos
+
+# checkout the repos inside repos/ dir
+repos:
+	mkdir repos
+
+# build directory paths in repos/* to perform 'git clone <repo>' into
+CHECKOUT_REPOS   = $(foreach repo,$(OTHER_REPO_DOCS),repos/$(repo))
+
+# Host holding the git server
+REPO_HOST       ?= https://gerrit.opencord.org
+
+# For QA patchset validation - set SKIP_CHECKOUT to the repo name and
+# pre-populate it under repos/ with the specific commit to being validated
+SKIP_CHECKOUT   ?=
+
+# clone (only if doesn't exist), then checkout ref in repos/*
+$(CHECKOUT_REPOS): | repos
+	GIT_REF=`grep '^$(@F) ' git_refs | awk '{print $$3}'` ;\
+	if [ ! -d '$@' ] ;\
+	  then git clone $(REPO_HOST)/$(@F) $@ ;\
+	fi ;\
+	if [ "$(SKIP_CHECKOUT)" = "$(@F)" ] ;\
+	  then echo "Skipping checkout of repo $(SKIP_CHECKOUT) as it's being tested" ;\
+	else pushd $@ ;\
+	  git checkout $$GIT_REF ;\
+	  popd ;\
+	fi
+
+# link subdirectories (if applicable) into main docs dir
+$(OTHER_REPO_DOCS): | $(CHECKOUT_REPOS)
+	GIT_SUBDIR=`grep '^$@ ' git_refs | awk '{print $$2}'` ;\
+	ln -s repos/$(@)$$GIT_SUBDIR $@
+
+# generate a list of git checksums suitable for updating git_refs
+freeze: repos
+	@for repo in $(OTHER_REPO_DOCS) ; do \
+	  GIT_SUBDIR=`grep "^$$repo " git_refs | awk '{print $$2}'` ;\
+	  cd "repos/$$repo" > /dev/null ;\
+	    HEAD_SHA=`git rev-parse HEAD` ;\
+	    printf "%-24s %-8s %-40s\n" $$repo $$GIT_SUBDIR $$HEAD_SHA ;\
+	  cd ../.. ;\
+	done
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile doc_venv | $(OTHER_REPO_DOCS)
+	source ./doc_venv/bin/activate ;\
+	$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..97ade15
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+2.2.0-dev
diff --git a/_static/css/rtd_theme_mods.css b/_static/css/rtd_theme_mods.css
new file mode 100644
index 0000000..30da586
--- /dev/null
+++ b/_static/css/rtd_theme_mods.css
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2019-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.  */
+
+/* Don't restrict content width on the RTD theme
+ * from: https://stackoverflow.com/a/32898444 */
+
+.wy-nav-content {
+  max-width: none;
+}
+
+.wy-table-responsive table td, .wy-table-responsive table th {
+  white-space: normal;
+}
diff --git a/_static/fonts/Inconsolata-Bold.ttf b/_static/fonts/Inconsolata-Bold.ttf
new file mode 100644
index 0000000..9addc89
--- /dev/null
+++ b/_static/fonts/Inconsolata-Bold.ttf
Binary files differ
diff --git a/_static/fonts/Inconsolata-Regular.ttf b/_static/fonts/Inconsolata-Regular.ttf
new file mode 100644
index 0000000..592ccd2
--- /dev/null
+++ b/_static/fonts/Inconsolata-Regular.ttf
Binary files differ
diff --git a/conf.py b/conf.py
new file mode 100644
index 0000000..9ea3196
--- /dev/null
+++ b/conf.py
@@ -0,0 +1,259 @@
+# -*- coding: utf-8 -*-
+#
+# Configuration file for the Sphinx documentation builder.
+#
+# This file does only contain a selection of the most common options. For a
+# full list see the documentation:
+# http://www.sphinx-doc.org/en/master/config
+
+# -- Path setup --------------------------------------------------------------
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+# import os
+# import sys
+# sys.path.insert(0, os.path.abspath('.'))
+
+import os
+
+def get_version():
+    with open("VERSION") as f:
+        return f.read().strip()
+
+# -- Project information -----------------------------------------------------
+
+project = u'VOLTHA Docs'
+copyright = u'2019, VOLTHA Contributors'
+author = u'VOLTHA Contributors'
+
+# The short X.Y version
+version = get_version()
+
+# The full version, including alpha/beta/rc tags
+release = get_version()
+
+# -- General configuration ---------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+# needs_sphinx = '1.0'
+
+# make all warnings errors
+warning_is_error = True
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+    'recommonmark',
+    'sphinx.ext.coverage',
+    'sphinx.ext.graphviz',
+    'sphinx.ext.ifconfig',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.todo',
+    'sphinxcontrib.actdiag',
+    'sphinxcontrib.blockdiag',
+    'sphinxcontrib.nwdiag',
+    'sphinxcontrib.openapi',
+    'sphinxcontrib.packetdiag',
+    'sphinxcontrib.rackdiag',
+    'sphinxcontrib.seqdiag',
+#    'sphinxcontrib.golangdomain',
+#    'autoapi.extension',
+]
+
+# API documentation
+# https://github.com/rtfd/sphinx-autoapi
+# https://sphinx-autoapi.readthedocs.io
+#   autoapi_type = 'go'
+#   autoapi_dirs = [
+#       'voltha-go/cli/util',
+#       'voltha-go/rw_core/config',
+#       'voltha-go/rw_core/core',
+#       'voltha-go/rw_core/graph',
+#       'voltha-go/rw_core/utils',
+#   ]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+# source_suffix = ['.rst', '.md']
+source_suffix = ['.rst', '.md']
+
+# The master toctree document.
+master_doc = 'index'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path.
+exclude_patterns = [
+        '*/LICENSE.md',
+        '*/vendor',
+        '.DS_Store',
+        'Thumbs.db',
+        '_build',
+        'doc_venv',
+        'repos',
+        'requirements.txt',
+        'bbsim/README.md',
+]
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = None
+
+# -- Options for HTML output -------------------------------------------------
+
+# The theme to use for HTML and HTML Help pages.  See the documentation for
+# a list of builtin themes.
+#
+html_theme = 'sphinx_rtd_theme'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further.  For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself.  Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+
+# -- Options for HTMLHelp output ---------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'VOLTHADocs'
+
+
+# -- Options for LaTeX output ------------------------------------------------
+
+latex_elements = {
+    # The paper size ('letterpaper' or 'a4paper').
+    #
+    # 'papersize': 'letterpaper',
+
+    # The font size ('10pt', '11pt' or '12pt').
+    #
+    # 'pointsize': '10pt',
+
+    # Additional stuff for the LaTeX preamble.
+    #
+    # 'preamble': '',
+
+    # Latex figure (float) alignment
+    #
+    # 'figure_align': 'htbp',
+}
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+#  author, documentclass [howto, manual, or own class]).
+latex_documents = [
+    (master_doc, 'VOLTHADocs.tex', u'VOLTHA Docs',
+     u'VOLTHA Team', 'manual'),
+]
+
+
+# -- Options for manual page output ------------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+    (master_doc, 'VOLTHA Docs', u'VOLTHA Docs',
+     [author], 1)
+]
+
+
+# -- Options for Texinfo output ----------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+#  dir menu entry, description, category)
+texinfo_documents = [
+    (master_doc, 'VOLTHA Docs', u'VOLTHA Docs',
+     author, 'VOLTHADocs', 'One line description of project.',
+     'Miscellaneous'),
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
+# Bibliographic Dublin Core info.
+epub_title = project
+
+# The unique identifier of the text. This can be a ISBN number
+# or the project homepage.
+#
+# epub_identifier = ''
+
+# A unique identification for the text.
+#
+# epub_uid = ''
+
+# A list of files that should not be packed into the epub file.
+epub_exclude_files = ['search.html']
+
+
+# -- Extension configuration -------------------------------------------------
+
+# blockdiag/etc. config
+
+rackdiag_antialias = True
+rackdiag_html_image_format = "SVG"
+rackdiag_fontpath = [
+    "_static/fonts/Inconsolata-Regular.ttf",
+    "_static/fonts/Inconsolata-Bold.ttf",
+]
+
+nwdiag_antialias = True
+nwdiag_html_image_format = "SVG"
+nwdiag_fontpath = [
+    "_static/fonts/Inconsolata-Regular.ttf",
+    "_static/fonts/Inconsolata-Bold.ttf",
+]
+
+# -- Options for todo extension ----------------------------------------------
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = True
+
+# -- Configure recommonmark to use AutoStructify -----------------------------
+# Docs: https://recommonmark.readthedocs.io/en/latest/auto_structify.html
+
+import recommonmark
+from recommonmark.transform import AutoStructify
+
+github_doc_root = 'https://github.com/opencord/voltha-docs'
+
+def setup(app):
+
+    app.add_css_file('css/rtd_theme_mods.css')
+
+    app.add_config_value('recommonmark_config', {
+            'url_resolver': lambda url: github_doc_root + url,
+            'auto_toc_tree_section': 'Contents',
+        }, True)
+
+    app.add_transform(AutoStructify)
diff --git a/git_refs b/git_refs
new file mode 100644
index 0000000..1aba496
--- /dev/null
+++ b/git_refs
@@ -0,0 +1,20 @@
+# git_refs
+#
+# This file contains a list of repos, paths within those repos, and git
+# references (branch/tag/commit hash) that are checked out with `git checkout
+# <ref>` during creation of documentation.
+#
+# - First column is the git repo name
+# - Second column is the subdirectory of the repo to symlink into the
+#   docs directory
+# - Third column is the reference (branch/tag/commit) to checkout
+
+_REPO NAME_             _DIR_    _REF_
+
+pyvoltha                /        master
+bbsim                   /        master
+voltha-go               /        master
+voltha-openolt-adapter  /        master
+voltha-openonu-adapter  /        master
+voltha-protos           /        master
+voltha-system-tests     /        master
diff --git a/images/VOLTHA_LOGO.png b/images/VOLTHA_LOGO.png
new file mode 100644
index 0000000..50c7880
--- /dev/null
+++ b/images/VOLTHA_LOGO.png
Binary files differ
diff --git a/index.rst b/index.rst
new file mode 100644
index 0000000..7dcc158
--- /dev/null
+++ b/index.rst
@@ -0,0 +1,51 @@
+VOLTHA Documentation
+====================
+
+.. image:: images/VOLTHA_LOGO.png
+
+This documents the VOLTHA project
+
+.. toctree::
+   :maxdepth: 1
+   :caption: VOLTHA Core
+
+   voltha-go/README.md
+   voltha-go/quickstart.md
+   voltha-go/BUILD.md
+   voltha-go/python/adapters/BUILD_ENV.md
+   voltha-go/python/adapters/README.md
+   voltha-go/python/cli/docs/README.md
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Adapters
+
+   voltha-openolt-adapter/README.md
+
+.. toctree::
+   :maxdepth: 1
+   :caption: VOLTHA-protos
+
+   voltha-protos/README.md
+
+.. toctree::
+   :maxdepth: 2
+   :caption: BBSim
+
+   bbsim/docs/source/index.rst
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Documentation Notes
+
+   readme
+
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
diff --git a/mdl_strict.rb b/mdl_strict.rb
new file mode 100644
index 0000000..2e02e7c
--- /dev/null
+++ b/mdl_strict.rb
@@ -0,0 +1,37 @@
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# markdownlint(mdl) strict rules file
+# To use: `make LINT_STYLE=mdl_strict.rb lint`
+#
+# Rule descriptions:
+#  https://github.com/markdownlint/markdownlint/blob/master/docs/RULES.md
+# Instructions on modifying the rules file:
+#  https://github.com/markdownlint/markdownlint/blob/master/docs/creating_styles.md
+
+# use all rules
+all
+
+# Indent lists with 4 spaces
+rule 'MD007', :indent => 4
+
+# Don't enforce line length limitations within code blocks and tables
+rule 'MD013', :code_blocks => false, :tables => false
+
+# Allow  ! and ? as trailing punctuation in headers
+rule 'MD026', :punctuation => '.,;:'
+
+# Numbered lists should have the correct order
+rule 'MD029', :style => "ordered"
+
diff --git a/readme.rst b/readme.rst
new file mode 100644
index 0000000..d73f458
--- /dev/null
+++ b/readme.rst
@@ -0,0 +1,49 @@
+Documentation Guide
+===================
+
+Building the Docs
+------------------
+
+The documentation build process is stored in the Makefile. Building docs
+requires Python to be installed, and most steps will create a virtualenv
+(``doc_venv``) which install the documentation generation toolset.
+
+Run ``make html`` to generate html documentation in ``_build/html``.
+
+Run ``make reload`` to get a live reload in your browser (refreshes on document
+save).
+
+To check the formatting of documentation, run ``make lint``. This will be done
+in Jenkins to validate the documentation, so please do this before you create a
+patchset.
+
+Writing Docs
+------------
+
+Docs written using sphinx: http://www.sphinx-doc.org
+
+Documentation is done in reStructuredText (``.rst``)  or Markdown (``.md``),
+but only .rst files can use certain features like embedded diagrams.
+
+reStructuredText Primer:
+http://www.sphinx-doc.org/en/master/usage/restructuredtext/index.html
+
+Creating Diagrams
+-----------------
+
+Inline Graphviz is supported:
+https://www.sphinx-doc.org/en/master/usage/extensions/graphviz.html
+
+The blockdiag suite of tools can be used for other specific graph types:
+
+- Block diagrams: http://blockdiag.com/en/blockdiag/sphinxcontrib.html
+- Network diagrams (& racks): http://blockdiag.com/en/nwdiag/sphinxcontrib.html
+
+Attributes that can be applied to nodes:
+http://blockdiag.com/en/blockdiag/attributes/node.attributes.html
+
+Examples:
+
+- blockdiag: http://blockdiag.com/en/blockdiag/examples.html
+- nwdiag: http://blockdiag.com/en/nwdiag/nwdiag-examples.html
+- rackdiag: http://blockdiag.com/en/nwdiag/rackdiag-examples.html
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..340b706
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,17 @@
+Sphinx~=1.8.5
+actdiag~=0.5.4
+blockdiag~=1.5.4
+livereload~=2.6.1
+nwdiag~=1.0.4
+recommonmark~=0.6.0
+rstcheck~=3.3.1
+seqdiag~=0.9.6
+sphinx-reload~=0.2.0
+sphinx-rtd-theme~=0.4.3
+sphinxcontrib-actdiag~=0.8.5
+sphinxcontrib-blockdiag~=1.5.5
+sphinxcontrib-nwdiag~=0.9.5
+sphinxcontrib-seqdiag~=0.8.5
+sphinxcontrib-openapi~=0.5.0
+# sphinx-autoapi~=1.2.1
+# sphinxcontrib-golangdomain
