diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 144ff5df748f33d86106d3a39cb8abb656f1a7c9..16484b836047d050a9e50677db1e72cd6445e4c1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -52,9 +52,8 @@ run-test-qt:
 pages: 
   image: python:3.10
   script:
-     - apt-get install --yes doxygen
-     - doxygen
-     - cp -r doc/html public
+     - pip install -U sphinx furo
+     - sphinx-build -b html . public
   artifacts:
     paths:
       - public
diff --git a/b_asic/schedule.py b/b_asic/schedule.py
index 83f3fb49b8eba7f32a8b0b0e195b3d9c7d92ccfd..1d50607a58807dc2988f1320692ab4cda5b1070b 100644
--- a/b_asic/schedule.py
+++ b/b_asic/schedule.py
@@ -1,4 +1,5 @@
-"""B-ASIC Schedule Module.
+"""
+B-ASIC Schedule Module.
 
 Contains the schedule class for scheduling operations in an SFG.
 """
diff --git a/docs_sphinx/api/core_operations.rst b/docs_sphinx/api/core_operations.rst
new file mode 100644
index 0000000000000000000000000000000000000000..c362191cfe742245c5b883b07a43cf697e839eeb
--- /dev/null
+++ b/docs_sphinx/api/core_operations.rst
@@ -0,0 +1,13 @@
+**************************
+``b_asic.core_operations``
+**************************
+
+.. inheritance-diagram:: b_asic.core_operations
+   :parts: 1
+   :top-classes: b_asic.graph_component.GraphComponent, b_asic.port.SignalSourceProvider
+
+.. automodule:: b_asic.core_operations
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
diff --git a/docs_sphinx/api/graph_component.rst b/docs_sphinx/api/graph_component.rst
new file mode 100644
index 0000000000000000000000000000000000000000..5c599035504cc5e7ce4f065f9632d780be75726d
--- /dev/null
+++ b/docs_sphinx/api/graph_component.rst
@@ -0,0 +1,13 @@
+**************************
+``b_asic.graph_component``
+**************************
+
+.. inheritance-diagram:: b_asic.graph_component
+   :parts: 1
+   :top-classes: b_asic.graph_component.GraphComponent
+
+.. automodule:: b_asic.graph_component
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
diff --git a/docs_sphinx/api/index.rst b/docs_sphinx/api/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..6d4e5707fb5e46d1381c064522eb8c7470f29629
--- /dev/null
+++ b/docs_sphinx/api/index.rst
@@ -0,0 +1,16 @@
+.. _api:
+
+API
+===
+.. toctree::
+    :maxdepth: 1
+	       
+    core_operations.rst
+    graph_component.rst
+    operation.rst
+    port.rst
+    schedule.rst
+    signal.rst
+    signal_flow_graph.rst
+    simulation.rst
+    special_operations.rst
diff --git a/docs_sphinx/api/operation.rst b/docs_sphinx/api/operation.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2d96ba5a4754467e6859d520174b1f4160dc63e8
--- /dev/null
+++ b/docs_sphinx/api/operation.rst
@@ -0,0 +1,11 @@
+********************
+``b_asic.operation``
+********************
+
+.. inheritance-diagram:: b_asic.operation
+   :parts: 1
+   :top-classes: b_asic.graph_component.GraphComponent, b_asic.port.SignalSourceProvider
+		 
+.. automodule:: b_asic.operation
+   :members:
+   :undoc-members:
diff --git a/docs_sphinx/api/port.rst b/docs_sphinx/api/port.rst
new file mode 100644
index 0000000000000000000000000000000000000000..f34f4301d8fd1a5de1c053228dd9334327f0b484
--- /dev/null
+++ b/docs_sphinx/api/port.rst
@@ -0,0 +1,13 @@
+***************
+``b_asic.port``
+***************
+
+.. inheritance-diagram:: b_asic.port
+   :parts: 1
+   :top-classes: b_asic.port.Port, b_asic.port.SignalSourceProvider
+
+.. automodule:: b_asic.port
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
diff --git a/docs_sphinx/api/schedule.rst b/docs_sphinx/api/schedule.rst
new file mode 100644
index 0000000000000000000000000000000000000000..a6f88acaca4ad46f058cb6f3d673bfff84b28690
--- /dev/null
+++ b/docs_sphinx/api/schedule.rst
@@ -0,0 +1,9 @@
+*******************
+``b_asic.schedule``
+*******************
+:mod:`.schedule`
+
+.. automodule:: b_asic.schedule
+   :members:
+   :undoc-members:
+   :show-inheritance:
diff --git a/docs_sphinx/api/signal.rst b/docs_sphinx/api/signal.rst
new file mode 100644
index 0000000000000000000000000000000000000000..2997948603598b3a35d621793890e59b48626203
--- /dev/null
+++ b/docs_sphinx/api/signal.rst
@@ -0,0 +1,9 @@
+*******************
+``b_asic.signal``
+*******************
+
+.. automodule:: b_asic.signal
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
diff --git a/docs_sphinx/api/signal_flow_graph.rst b/docs_sphinx/api/signal_flow_graph.rst
new file mode 100644
index 0000000000000000000000000000000000000000..ee2f7fb0e452f3bd2c67411a5ff0e43960b2dd42
--- /dev/null
+++ b/docs_sphinx/api/signal_flow_graph.rst
@@ -0,0 +1,9 @@
+****************************
+``b_asic.signal_flow_graph``
+****************************
+
+.. automodule:: b_asic.signal_flow_graph
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
diff --git a/docs_sphinx/api/simulation.rst b/docs_sphinx/api/simulation.rst
new file mode 100644
index 0000000000000000000000000000000000000000..580596f56b45a9452b726df4a6622e324073eb7f
--- /dev/null
+++ b/docs_sphinx/api/simulation.rst
@@ -0,0 +1,9 @@
+*********************
+``b_asic.simulation``
+*********************
+
+.. automodule:: b_asic.simulation
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
diff --git a/docs_sphinx/api/special_operations.rst b/docs_sphinx/api/special_operations.rst
new file mode 100644
index 0000000000000000000000000000000000000000..d80e446051d42e1b50b6c23fe727a954523bbb25
--- /dev/null
+++ b/docs_sphinx/api/special_operations.rst
@@ -0,0 +1,13 @@
+*****************************
+``b_asic.special_operations``
+*****************************
+
+.. inheritance-diagram:: b_asic.special_operations
+   :parts: 1
+   :top-classes: b_asic.graph_component.GraphComponent, b_asic.port.SignalSourceProvider
+
+.. automodule:: b_asic.special_operations
+   :members:
+   :undoc-members:
+   :show-inheritance:
+
diff --git a/docs_sphinx/conf.py b/docs_sphinx/conf.py
new file mode 100644
index 0000000000000000000000000000000000000000..b5869c1ab31d8acc7e20f10dd3242f128610ccc1
--- /dev/null
+++ b/docs_sphinx/conf.py
@@ -0,0 +1,47 @@
+# Configuration file for the Sphinx documentation builder.
+#
+# For the full list of built-in configuration values, see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
+
+# -- Project information -----------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
+import shutil
+
+project = 'B-ASIC'
+copyright = '2020-2022, Oscar Gustafsson et al'
+author = 'Oscar Gustafsson et al'
+html_logo = "../logo_tiny.png"
+
+pygments_style = 'sphinx'
+
+# -- General configuration ---------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
+
+extensions = [
+    'sphinx.ext.autodoc',
+    'sphinx.ext.autosummary',
+    'sphinx.ext.inheritance_diagram',
+    'sphinx.ext.intersphinx',
+    'numpydoc',
+]
+
+templates_path = ['_templates']
+exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
+
+autodoc_docstring_signature = True
+
+intersphinx_mapping = {
+    'python': ('https://docs.python.org/3/', None),
+}
+
+numpydoc_show_class_members = False
+
+inheritance_node_attrs = dict(fontsize=16)
+
+graphviz_dot = shutil.which('dot')
+
+# -- Options for HTML output -------------------------------------------------
+# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
+
+html_theme = 'furo'
+html_static_path = ['_static']
diff --git a/docs_sphinx/index.rst b/docs_sphinx/index.rst
new file mode 100644
index 0000000000000000000000000000000000000000..fd2eff3d9dcc96c27c0ab9d82a9ed467772c5c03
--- /dev/null
+++ b/docs_sphinx/index.rst
@@ -0,0 +1,28 @@
+.. B-ASIC documentation master file, created by
+   sphinx-quickstart on Fri Sep  2 20:10:06 2022.
+   You can adapt this file completely to your liking, but it should at least
+   contain the root `toctree` directive.
+
+Welcome to B-ASIC's documentation!
+==================================
+
+.. toctree::
+   :maxdepth: 2
+   :caption: Contents:
+
+
+
+Indices and tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`
+
+Table of Contents
+^^^^^^^^^^^^^^^^^
+.. toctree::
+   :maxdepth: 2
+
+   self
+   api/index
diff --git a/docs_sphinx/make.bat b/docs_sphinx/make.bat
new file mode 100644
index 0000000000000000000000000000000000000000..32bb24529f92346af26219baed295b7488b77534
--- /dev/null
+++ b/docs_sphinx/make.bat
@@ -0,0 +1,35 @@
+@ECHO OFF
+
+pushd %~dp0
+
+REM Command file for Sphinx documentation
+
+if "%SPHINXBUILD%" == "" (
+	set SPHINXBUILD=sphinx-build
+)
+set SOURCEDIR=.
+set BUILDDIR=_build
+
+%SPHINXBUILD% >NUL 2>NUL
+if errorlevel 9009 (
+	echo.
+	echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
+	echo.installed, then set the SPHINXBUILD environment variable to point
+	echo.to the full path of the 'sphinx-build' executable. Alternatively you
+	echo.may add the Sphinx directory to PATH.
+	echo.
+	echo.If you don't have Sphinx installed, grab it from
+	echo.https://www.sphinx-doc.org/
+	exit /b 1
+)
+
+if "%1" == "" goto help
+
+%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+goto end
+
+:help
+%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
+
+:end
+popd