diff --git a/{{cookiecutter.project_name_slug}}/doc/source/conf.py b/{{cookiecutter.project_name_slug}}/doc/source/conf.py
new file mode 100755
index 000000000..c523464aa
--- /dev/null
+++ b/{{cookiecutter.project_name_slug}}/doc/source/conf.py
@@ -0,0 +1,76 @@
+"""Sphinx documentation configuration file."""
+from datetime import datetime
+
+from ansys.{{cookiecutter.product_name_slug}}.{{cookiecutter.library_name_slug}} import __version__
+from pyansys_sphinx_theme import pyansys_logo_black
+
+# Project information
+project = "{{ cookiecutter.pkg_name }}"
+copyright = f"(c) {datetime.now().year} ANSYS, Inc. All rights reserved"
+author = "ANSYS, Inc."
+release = version = __version__
+
+# use the default pyansys logo
+html_logo = pyansys_logo_black
+html_theme = "pyansys_sphinx_theme"
+
+# specify the location of your github repo
+html_theme_options = {
+    "github_url": "{{ cookiecutter.repository_url }}",
+    "show_prev_next": False,
+}
+
+# Sphinx extensions
+extensions = [
+    "sphinx.ext.autodoc",
+    "sphinx.ext.autosummary",
+    "numpydoc",
+    "sphinx.ext.intersphinx",
+    "sphinx_copybutton",
+]
+
+# Intersphinx mapping
+intersphinx_mapping = {
+    "python": ("https://docs.python.org/dev", None),
+    # kept here as an example
+    # "scipy": ("https://docs.scipy.org/doc/scipy/reference", None),
+    # "numpy": ("https://numpy.org/devdocs", None),
+    # "matplotlib": ("https://matplotlib.org/stable", None),
+    # "pandas": ("https://pandas.pydata.org/pandas-docs/stable", None),
+    # "pyvista": ("https://docs.pyvista.org/", None),
+}
+
+# numpydoc configuration
+numpydoc_show_class_members = False
+numpydoc_xref_param_type = True
+
+# Consider enabling numpydoc validation. See:
+# https://numpydoc.readthedocs.io/en/latest/validation.html#
+numpydoc_validate = True
+numpydoc_validation_checks = {
+    "GL06",  # Found unknown section
+    "GL07",  # Sections are in the wrong order.
+    "GL08",  # The object does not have a docstring
+    "GL09",  # Deprecation warning should precede extended summary
+    "GL10",  # reST directives {directives} must be followed by two colons
+    "SS01",  # No summary found
+    "SS02",  # Summary does not start with a capital letter
+    # "SS03", # Summary does not end with a period
+    "SS04",  # Summary contains heading whitespaces
+    # "SS05", # Summary must start with infinitive verb, not third person
+    "RT02",  # The first line of the Returns section should contain only the
+    # type, unless multiple values are being returned"
+}
+
+
+# static path
+html_static_path = ["_static"]
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ["_templates"]
+
+# The suffix(es) of source filenames.
+source_suffix = ".rst"
+
+# The master toctree document.
+master_doc = "index"
diff --git a/{{cookiecutter.project_name_slug}}/doc/source/index.rst b/{{cookiecutter.project_name_slug}}/doc/source/index.rst
new file mode 100644
index 000000000..d2824a5f6
--- /dev/null
+++ b/{{cookiecutter.project_name_slug}}/doc/source/index.rst
@@ -0,0 +1,6 @@
+..
+   Just reuse the root readme to avoid duplicating the documentation.
+   Provide any documentation specific to your online documentation
+   here.
+
+.. include:: ../../README.rst
diff --git a/{{cookiecutter.project_name_slug}}/pyproject_flit.toml b/{{cookiecutter.project_name_slug}}/pyproject_flit.toml
new file mode 100644
index 000000000..c2d20871b
--- /dev/null
+++ b/{{cookiecutter.project_name_slug}}/pyproject_flit.toml
@@ -0,0 +1,34 @@
+[build-system]
+requires = ["flit_core >=3.2,<4"]
+build-backend = "flit_core.buildapi"
+
+[project]
+# Check https://flit.readthedocs.io/en/latest/pyproject_toml.html for all available sections
+name = "{{ cookiecutter.pkg_name }}"
+version = "{{ cookiecutter.version }}"
+description = "{{ cookiecutter.short_description }}"
+readme = "README.rst"
+requires-python = ">={{ cookiecutter.requires_python }}"
+license = {file = "LICENSE"}
+authors = [
+    {name = "ANSYS, Inc.", email = "pyansys.support@ansys.com"},
+]
+maintainers = [
+    {name = "PyAnsys developers", email = "pyansys.maintainers@ansys.com"},
+]
+
+classifiers = [
+    "Development Status :: 4 - Beta",
+    "Programming Language :: Python :: 3",
+    "License :: OSI Approved :: MIT License",
+    "Operating System :: OS Independent",
+]
+dependencies = [
+    "importlib-metadata >=4.0",
+]
+
+[tool.flit.module]
+name = "ansys.{{ cookiecutter.product_name_slug }}.{{cookiecutter.library_name_slug }}"
+
+[project.urls]
+Source = "{{ cookiecutter.repository_url }}"
diff --git a/{{cookiecutter.project_name_slug}}/pyproject_poetry.toml b/{{cookiecutter.project_name_slug}}/pyproject_poetry.toml
new file mode 100644
index 000000000..e9fc46ddc
--- /dev/null
+++ b/{{cookiecutter.project_name_slug}}/pyproject_poetry.toml
@@ -0,0 +1,27 @@
+[build-system]
+requires = ["poetry-core>=1.0.0"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry]
+# Check https://python-poetry.org/docs/pyproject/ for all available sections
+name = "{{ cookiecutter.pkg_name }}"
+version = "{{ cookiecutter.version }}"
+description = "{{ cookiecutter.short_description }}"
+license = "MIT"
+authors = ["ANSYS, Inc.