diff --git a/docs/conf.py b/docs/conf.py
index 455b579..57793b2 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -1,4 +1,20 @@
 # -*- coding: utf-8 -*-
+# Copyright 2020 SkyWater PDK Authors
+#
+# 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
+#
+#     https://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.
+#
+# SPDX-License-Identifier: Apache-2.0
+
 #
 # Configuration file for the Sphinx documentation builder.
 #
@@ -21,9 +37,9 @@
 
 # -- Project information -----------------------------------------------------
 
-project = 'Skywater SKY130 PDK'
-copyright = '2020, Skywater PDK Authors'
-author = 'Skywater PDK Authors'
+project = 'SkyWater SKY130 PDK'
+copyright = '2020, SkyWater PDK Authors'
+author = 'SkyWater PDK Authors'
 
 # The short X.Y version
 version = ''
@@ -41,10 +57,13 @@
 # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
 # ones.
 extensions = [
-    'sphinx.ext.todo',
-    'sphinx.ext.mathjax',
-    'sphinx.ext.ifconfig',
+    'sphinx.ext.autodoc',
+    'sphinx.ext.autosectionlabel',
     'sphinx.ext.githubpages',
+    'sphinx.ext.ifconfig',
+    'sphinx.ext.mathjax',
+    'sphinx.ext.napoleon',
+    'sphinx.ext.todo',
     'sphinxcontrib_verilog_diagrams',
 ]
 
@@ -96,7 +115,15 @@
 # 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 = ['_build', 'env', 'Thumbs.db', '.DS_Store']
+exclude_patterns = [
+    '_build',
+    'env',
+    'Thumbs.db',
+    '.DS_Store',
+    # Files included in other rst files.
+    'code-of-conduct.rst',
+    'rules/periphery-rules.rst',
+]
 
 # The name of the Pygments (syntax highlighting) style to use.
 pygments_style = None
@@ -104,6 +131,15 @@
 
 # -- Options for HTML output -------------------------------------------------
 
+# Prefix each section label with the name of the document it is in, followed by
+# a colon. For example, index:Introduction for a section called Introduction
+# that appears in document index.rst. Useful for avoiding ambiguity when the
+# same section heading appears in different documents.
+#autosectionlabel_prefix_document = True
+
+
+# -- Options for HTML output -------------------------------------------------
+
 # The theme to use for HTML and HTML Help pages.  See the documentation for
 # a list of builtin themes.
 #
@@ -128,7 +164,7 @@
     # https://material.io/icons/
     'header_links': [
         ('Home', 'index', False, 'home'),
-        ("GitHub", "https://github.com/google/skywater-pdk", True, 'link'),
+        ("GitHub", "https://github.com/google/skywater-pdk", True, 'code'),
         ("SkyWater", "https://www.skywatertechnology.com/", True, 'link'),
     ],
 
@@ -138,36 +174,30 @@
     #
     # Values: amber, blue, brown, cyan deep_orange, deep_purple, green, grey, indigo, light_blue,
     #         light_green, lime, orange, pink, purple, red, teal, yellow(Default: indigo)
-    'primary_color':
-    'light_green',
+    'primary_color': 'light_green',
     # Values: Same as primary_color. (Default: pink)
-    'accent_color':
-    'teal',
+    'accent_color': 'teal',
 
     # Customize layout.
     # For details see link.
     # https://getmdl.io/components/index.html#layout-section
-    'fixed_drawer':
-    True,
-    'fixed_header':
-    True,
-    'header_waterfall':
-    True,
-    'header_scroll':
-    False,
+    'fixed_drawer': True,
+    'fixed_header': True,
+    'header_waterfall': True,
+    'header_scroll': False,
 
     # Render title in header.
     # Values: True, False (Default: False)
-    'show_header_title':
-    False,
+    'show_header_title': False,
     # Render title in drawer.
     # Values: True, False (Default: True)
-    'show_drawer_title':
-    True,
+    'show_drawer_title': True,
     # Render footer.
     # Values: True, False (Default: True)
-    'show_footer':
-    True
+    'show_footer': True,
+
+    # Hide the symbiflow links
+    'hide_symbiflow_links': True,
 }
 
 # Add any paths that contain custom static files (such as style sheets) here,
@@ -182,12 +212,11 @@
 # defined by theme itself.  Builtin themes are using these templates by
 # default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
 # 'searchbox.html']``.
-#
 
 # -- Options for HTMLHelp output ---------------------------------------------
 
 # Output file base name for HTML help builder.
-htmlhelp_basename = 'SkywaterSKY130PDKdoc'
+htmlhelp_basename = 'skywater-pdk-doc'
 
 
 # -- Options for LaTeX output ------------------------------------------------
@@ -214,17 +243,26 @@
 # (source start file, target name, title,
 #  author, documentclass [howto, manual, or own class]).
 latex_documents = [
-    (master_doc, 'SkywaterSKY130PDK.tex', 'Skywater SKY130 PDK Documentation',
-     'Skywater PDK Authors', 'manual'),
+    (
+        # source start file
+        master_doc,
+        # target name
+        'skywater-pdk.tex',
+        # title
+        'SkyWater SKY130 PDK Documentation',
+        # author
+        author,
+        # document class
+        '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, 'skywaters8pdk', 'Skywater SKY130 PDK Documentation',
+    (master_doc, 'skywater-pdk', 'SkyWater SKY130 PDK Documentation',
      [author], 1)
 ]
 
@@ -235,12 +273,24 @@
 # (source start file, target name, title, author,
 #  dir menu entry, description, category)
 texinfo_documents = [
-    (master_doc, 'SkywaterSKY130PDK', 'Skywater SKY130 PDK Documentation',
-     author, 'SkywaterSKY130PDK', 'One line description of project.',
-     'Miscellaneous'),
+    (
+        # source start file
+        master_doc,
+        # target name
+        'skywater-pdk',
+        # title
+        'SkyWater SKY130 PDK Documentation',
+        # author
+        author,
+        # dir menu entry
+        'SkyWater SKY130 PDK',
+        # description
+        'Documentation for open source PDK targetting SkyWater SKY130 process node.',
+        # category
+        'Miscellaneous',
+    ),
 ]
 
-
 # -- Options for Epub output -------------------------------------------------
 
 # Bibliographic Dublin Core info.
diff --git a/docs/environment.yml b/docs/environment.yml
index 9cf963d..9aa3b81 100644
--- a/docs/environment.yml
+++ b/docs/environment.yml
@@ -1,3 +1,18 @@
+# Copyright 2020 SkyWater PDK Authors
+#
+# 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
+#
+#     https://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.
+#
+# SPDX-License-Identifier: Apache-2.0
 name: skywater-pdk
 channels:
 - symbiflow
@@ -7,7 +22,6 @@
 - python=3.7
 - pip
 - yosys
-- nodejs
 - netlistsvg
 - pip:                            # Packages installed from PyPI
   - -r file:requirements.txt
