diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..68c3e29
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+venv-docs
+_build
+.vscode
+.env
diff --git a/.gitreview b/.gitreview
new file mode 100644
index 0000000..4e4ec99
--- /dev/null
+++ b/.gitreview
@@ -0,0 +1,5 @@
+[gerrit]
+host=gerrit.opencord.org
+port=29418
+project=sdfabric-docs.git
+defaultremote=origin
diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt
new file mode 100644
index 0000000..d645695
--- /dev/null
+++ b/LICENSES/Apache-2.0.txt
@@ -0,0 +1,202 @@
+
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   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.
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..2b41867
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,65 @@
+# 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   ?= -W
+SPHINXBUILD  ?= sphinx-build
+SOURCEDIR    ?= .
+BUILDDIR     ?= _build
+
+# name of python virtualenv that is used to run commands
+VENV_NAME      := venv-docs
+
+.PHONY: help test lint doc8 reload Makefile prep
+
+# Put it first so that "make" without argument is like "make help".
+help: $(VENV_NAME)
+	source $</bin/activate ; set -u ;\
+  $(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+# Create the virtualenv with all the tools installed
+$(VENV_NAME):
+	python3 -m venv $(VENV_NAME) ;\
+  source $@/bin/activate ;\
+  pip install -r requirements.txt
+
+# automatically reload changes in browser as they're made
+reload: $(VENV_NAME)
+	source $</bin/activate ; set -u ;\
+  sphinx-reload $(SOURCEDIR)
+
+# lint and link verification. linkcheck is part of sphinx
+test: lint spelling linkcheck
+
+lint: doc8
+
+doc8: $(VENV_NAME) | $(OTHER_REPO_DOCS)
+	source $</bin/activate ; set -u ;\
+  doc8 --max-line-length 119 \
+  $$(find . -name \*.rst ! -path "*venv*" ! -path "*vendor*" ! -path "*repos*" )
+
+license: $(VENV_NAME)
+	source $</bin/activate ; set -u ;\
+  reuse --version ;\
+  reuse --root . lint
+
+# clean up
+clean:
+	rm -rf $(BUILDDIR)
+
+clean-all: clean
+	rm -rf $(VENV_NAME)
+
+# build multiple versions
+multiversion: $(VENV_NAME) Makefile | prep $(OTHER_REPO_DOCS)
+	source $</bin/activate ; set -u ;\
+  sphinx-multiversion "$(SOURCEDIR)" "$(BUILDDIR)/multiversion" $(SPHINXOPTS)
+	cp "$(SOURCEDIR)/_templates/meta_refresh.html" "$(BUILDDIR)/multiversion/index.html"
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option.  $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: $(VENV_NAME) Makefile | $(OTHER_REPO_DOCS) $(STATIC_DOCS)
+	source $</bin/activate ; set -u ;\
+  $(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/VERSION b/VERSION
new file mode 100644
index 0000000..0d4d124
--- /dev/null
+++ b/VERSION
@@ -0,0 +1 @@
+0.1.0-dev
diff --git a/_static/css/rtd_theme_mods.css b/_static/css/rtd_theme_mods.css
new file mode 100644
index 0000000..e449bde
--- /dev/null
+++ b/_static/css/rtd_theme_mods.css
@@ -0,0 +1,33 @@
+/*
+ * 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;
+}
+
+.wy-side-nav-search {
+  background-color: #d9d9d9;
+}
+
+.wy-side-nav-search>div.version {
+  color: #404040;
+}
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/_static/sdfabric-favicon-128.png b/_static/sdfabric-favicon-128.png
new file mode 100644
index 0000000..dea8c04
--- /dev/null
+++ b/_static/sdfabric-favicon-128.png
Binary files differ
diff --git a/_templates/meta_refresh.html b/_templates/meta_refresh.html
new file mode 100644
index 0000000..b940c76
--- /dev/null
+++ b/_templates/meta_refresh.html
@@ -0,0 +1,8 @@
+<!--
+SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+SPDX-License-Identifier: Apache-2.0
+--!>
+<html><head>
+    <meta charset="UTF-8">
+    <meta http-equiv="refresh" content="0;url=master/index.html" />
+</head></html>
diff --git a/_templates/versions.html b/_templates/versions.html
new file mode 100644
index 0000000..8ed5e31
--- /dev/null
+++ b/_templates/versions.html
@@ -0,0 +1,31 @@
+<!--
+SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
+SPDX-License-Identifier: Apache-2.0
+--!>
+{%- if current_version %}
+<div class="rst-versions" data-toggle="rst-versions" role="note" aria-label="versions">
+  <span class="rst-current-version" data-toggle="rst-current-version">
+    <span class="fa fa-book"> Other Versions</span>
+    v: {{ current_version.name }}
+    <span class="fa fa-caret-down"></span>
+  </span>
+  <div class="rst-other-versions">
+    {%- if versions.tags %}
+    <dl>
+      <dt>Tags</dt>
+      {%- for item in versions.tags %}
+      <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
+      {%- endfor %}
+    </dl>
+    {%- endif %}
+    {%- if versions.branches %}
+    <dl>
+      <dt>Branches</dt>
+      {%- for item in versions.branches %}
+      <dd><a href="{{ item.url }}">{{ item.name }}</a></dd>
+      {%- endfor %}
+    </dl>
+    {%- endif %}
+  </div>
+</div>
+{%- endif %}
diff --git a/conf.py b/conf.py
new file mode 100644
index 0000000..55466cb
--- /dev/null
+++ b/conf.py
@@ -0,0 +1,264 @@
+# -*- 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'SD-Fabric Docs'
+copyright = u'2021-current, Open Networking Foundation'
+author = u'Open Networking Foundation'
+
+# The short X.Y version
+version = get_version()
+
+# The full version, including alpha/beta/rc tags
+release = 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 = [
+    'sphinx.ext.autosectionlabel',
+    'sphinx.ext.coverage',
+    'sphinx.ext.graphviz',
+    'sphinx.ext.ifconfig',
+    'sphinx.ext.intersphinx',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.todo',
+    'sphinxcontrib.spelling',
+    "sphinx_multiversion",
+]
+
+# require document prefix on section labels
+autosectionlabel_prefix_document = True
+
+# Text files with lists of words that shouldn't fail the spellchecker:
+spelling_word_list_filename=['dict.txt', ]
+
+# sphinx-multiversion prep, run in each versioned source directory
+prep_commands = [
+]
+
+# inlcude only the branches matching master and sdfabric-*
+smv_branch_whitelist = r'^(master|sdfabric-.*)$'
+
+# include all remote branches
+smv_remote_whitelist = r'^.*$'
+
+# 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']
+
+# 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',
+        'venv-docs',
+        'requirements.txt',
+]
+
+# 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'
+
+# html_logo = '_static/sdfabric.svg'
+
+html_favicon = '_static/sdfabric-favicon-128.png'
+
+# 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 = {
+#   'logo_only': True
+# }
+
+# 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 = 'SDFabricDocs'
+
+
+# -- 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, 'SD-FabricDocs.tex', u'SD-Fabric Docs',
+     u'ONF', '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, 'SD-Fabric Docs', u'SD-Fabric 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, 'SD-Fabric Docs', u'SD-Fabric Docs',
+     author, 'SD-FabricDocs', '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
+
+# -- Options for linkcheck ---------------------------------------------------
+# The link checker strips off .md from links and then complains
+linkcheck_ignore = [
+]
+
+linkcheck_timeout = 3
+linkcheck_retries = 2
+
+# -- options for Intersphinx extension ---------------------------------------
+
+intersphinx_mapping = {
+    'ansible': ('https://docs.ansible.com/ansible/latest', None),
+    'sphinx': ('https://www.sphinx-doc.org/en/master', None),
+    'trellis': ('https://docs.trellisfabric.org/master', None),
+    'sysapproach5g': ('https://5g.systemsapproach.org/', None),
+    'sysapproachnet': ('https://book.systemsapproach.org/', None),
+    'sysapproachsdn': ('https://sdn.systemsapproach.org/', None),
+    }
+
+def setup(app):
+
+    app.add_css_file('css/rtd_theme_mods.css')
diff --git a/dict.txt b/dict.txt
new file mode 100644
index 0000000..e848b63
--- /dev/null
+++ b/dict.txt
@@ -0,0 +1,5 @@
+ONF
+SD-Fabric
+patchset
+reStructuredText
+virtualenv
diff --git a/index.rst b/index.rst
new file mode 100644
index 0000000..f9571ab
--- /dev/null
+++ b/index.rst
@@ -0,0 +1,35 @@
+SD-Fabric Documentation
+=======================
+
+SD-Fabric is an ONF's developer-friendly, cloud-managed, full stack,
+programmable network fabric.  More information about SD-Fabric can be found at
+the `ONF website <https://opennetworking.org/sd-fabric/>`_.
+
+Getting Started with SD-Fabric
+------------------------------
+
+TODO
+
+Community
+---------
+
+Information about participating in the SD-Fabric community and development
+process can be found on the `ONF Wiki
+<https://wiki.opennetworking.org/display/COM/SD-Fabric>`_.
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Releases
+   :hidden:
+   :glob:
+
+   release/1*
+   release/process.rst
+
+.. toctree::
+   :maxdepth: 1
+   :caption: Meta
+   :hidden:
+   :glob:
+
+   readme
diff --git a/readme.rst b/readme.rst
new file mode 100644
index 0000000..2e1bdd0
--- /dev/null
+++ b/readme.rst
@@ -0,0 +1,80 @@
+Documentation Guide
+===================
+
+Writing Documentation
+---------------------
+
+Docs are generated using :doc:`Sphinx <sphinx:usage/index>`.
+
+Documentation is written in :doc:`reStructuredText
+<sphinx:usage/restructuredtext/basics>` - see this link for the basic format.
+
+In reStructuredText documents, to create the section hierarchy (mapped in HTML
+to ``<h1>`` through ``<h5>``) use these characters to underline headings in the
+order given: ``=``, ``-`` ``"``, ``'``, ``^``.
+
+Referencing other Documentation
+-------------------------------
+
+Other Sphinx-built documentation, both ONF and non-ONF can be linked to using
+:doc:`Intersphinx <sphinx:usage/extensions/intersphinx>`.
+
+You can see all link targets available on a remote Sphinx's docs by running::
+
+  python -msphinx.ext.intersphinx http://otherdocs/objects.inv
+
+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
+(``venv_docs``) which contains the required tools.  You may also need to
+install the ``enchant`` C library using your system's package manager for the
+spelling checker to function properly.
+
+Run ``make html`` to generate html documentation in ``_build/html``.
+
+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.
+
+To check spelling, run ``make spelling``. If there are additional words that
+are correctly spelled but not in the dictionary (acronyms, trademarks, etc.)
+please add them to the ``dict.txt`` file.
+
+Creating new Versions of Docs
+-----------------------------
+
+To change the version shown on the built site, change the contents of the
+``VERSION`` file.
+
+There is a ``make multiversion`` target which will build all versions published
+on the remote to ``_build``. This will use `sphinx-multiversion
+<https://github.com/Holzhaus/sphinx-multiversion>`_ to build multiple versions
+of the site.
+
+Adding Images and Diagrams
+--------------------------
+
+There are multiple ways to add images and diagrams to the documentation.
+Generally, you should prefer using `SVG
+<https://en.wikipedia.org/wiki/Scalable_Vector_Graphics>`_ images, as these can
+be scaled to any size without quality loss.
+
+If you're creating diagrams, there are multiple tools available.
+:doc:`Graphviz <sphinx:usage/extensions/graphviz>` can render inline text-based
+graphs definitions and diagrams within the documentation, and is best for
+simple diagrams.
+
+More complex diagrams can be created in `Diagrams.net/Draw.io
+<https://www.diagrams.net/>`_ format. When saving these diagrams, use the
+SVG format, and check the "Include a copy of my diagram". This will let
+someone open the SVG later directly from the documentation and edit it, without
+any loss in functionality or quality.
+
+The last resort is to use raster images. If they're drawings or screen
+captures, use the `PNG
+<https://en.wikipedia.org/wiki/Portable_Network_Graphics>`_ format.  Consider
+compressing them with a tool like `OptiPNG <http://optipng.sourceforge.net/>`_,
+or `pngquant <https://pngquant.org/>`_.  If it's a photograph, use `JPEG
+<https://en.wikipedia.org/wiki/JPEG>`_.
diff --git a/release/1.0.rst b/release/1.0.rst
new file mode 100644
index 0000000..7b1a701
--- /dev/null
+++ b/release/1.0.rst
@@ -0,0 +1,36 @@
+SD-Fabric 1.0 Release
+=====================
+
+Highlights
+----------
+
+The focus of this release is support for...
+
+New Features and Improvements
+-----------------------------
+
+
+Development and Deployment Changes
+----------------------------------
+
+Support for ...
+
+
+Testing Improvements
+--------------------
+
+
+Certification Program
+---------------------
+
+
+Known Issues and Limitations
+----------------------------
+
+
+Component Versions in the 1.0 Release
+-------------------------------------
+
+
+Helm Chart Versions
+-------------------
diff --git a/release/process.rst b/release/process.rst
new file mode 100644
index 0000000..2530f87
--- /dev/null
+++ b/release/process.rst
@@ -0,0 +1,3 @@
+Release Process
+===============
+
diff --git a/requirements.txt b/requirements.txt
new file mode 100644
index 0000000..e81d18d
--- /dev/null
+++ b/requirements.txt
@@ -0,0 +1,7 @@
+Sphinx~=4.1.2
+doc8~=0.9.0
+reuse~=0.13.0
+docutils==0.16
+sphinx-rtd-theme~=0.5.2
+sphinxcontrib-spelling~=7.2.1
+sphinx-multiversion~=0.2.4
