diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml
new file mode 100644
index 0000000000..bc08868dc1
--- /dev/null
+++ b/.github/workflows/documentation.yml
@@ -0,0 +1,63 @@
+name: documentation
+
+on:
+ pull_request:
+ branches: [develop]
+ types: [review_requested, ready_for_review]
+ paths:
+ - 'website/**'
+ push:
+ branches: [main]
+ paths:
+ - 'website/**'
+
+jobs:
+ check-build:
+ if: github.event_name != 'push'
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - uses: actions/setup-node@v1
+ with:
+ node-version: '12.x'
+ - name: Test Build
+ run: |
+ cd website
+ if [ -e yarn.lock ]; then
+ yarn install --frozen-lockfile
+ elif [ -e package-lock.json ]; then
+ npm ci
+ else
+ npm i
+ fi
+ npm run build
+ deploy-website:
+ if: github.event_name != 'pull_request'
+ runs-on: ubuntu-latest
+ steps:
+ - name: ๐ Get latest code
+ uses: actions/checkout@v2
+
+ - uses: actions/setup-node@v1
+ with:
+ node-version: '12.x'
+
+ - name: ๐จ Build
+ run: |
+ cd website
+ if [ -e yarn.lock ]; then
+ yarn install --frozen-lockfile
+ elif [ -e package-lock.json ]; then
+ npm ci
+ else
+ npm i
+ fi
+ npm run build
+
+ - name: ๐ Sync files
+ uses: SamKirkland/FTP-Deploy-Action@4.0.0
+ with:
+ server: ftp.openpype.io
+ username: ${{ secrets.ftp_user }}
+ password: ${{ secrets.ftp_password }}
+ local-dir: ./website/build/
\ No newline at end of file
diff --git a/.github/workflows/test_build.yml b/.github/workflows/test_build.yml
new file mode 100644
index 0000000000..e17d75c453
--- /dev/null
+++ b/.github/workflows/test_build.yml
@@ -0,0 +1,88 @@
+# This workflow will upload a Python Package using Twine when a release is created
+# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
+
+name: Test Build
+
+on:
+ pull_request:
+ branches: [develop]
+ types: [review_requested, ready_for_review]
+ paths-ignore:
+ - 'docs/**',
+ - 'website/**'
+ - 'vendor/**'
+
+jobs:
+ Windows-latest:
+
+ runs-on: windows-latest
+ strategy:
+ matrix:
+ python-version: [3.7]
+
+ steps:
+ - name: ๐ Checkout Code
+ uses: actions/checkout@v2
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: ๐งต Install Requirements
+ shell: pwsh
+ run: |
+ ./tools/create_env.ps1
+
+ - name: ๐จ Build
+ shell: pwsh
+ run: |
+ ./tools/build.ps1
+
+ Ubuntu-latest:
+
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: [3.7]
+
+ steps:
+ - name: ๐ Checkout Code
+ uses: actions/checkout@v2
+
+ - name: Set up Python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+
+ - name: ๐งต Install Requirements
+ run: |
+ ./tools/create_env.sh
+
+ - name: ๐จ Build
+ run: |
+ ./tools/build.sh
+
+ # MacOS-latest:
+
+ # runs-on: macos-latest
+ # strategy:
+ # matrix:
+ # python-version: [3.7]
+
+ # steps:
+ # - name: ๐ Checkout Code
+ # uses: actions/checkout@v2
+
+ # - name: Set up Python
+ # uses: actions/setup-python@v2
+ # with:
+ # python-version: ${{ matrix.python-version }}
+
+ # - name: ๐งต Install Requirements
+ # run: |
+ # ./tools/create_env.sh
+
+ # - name: ๐จ Build
+ # run: |
+ # ./tools/build.sh
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 2ea7d93c5c..ebb47e55d2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,7 +66,7 @@ coverage.xml
# Node JS packages
##################
-node_modules/
+node_modules
package-lock.json
openpype/premiere/ppro/js/debug.log
@@ -81,3 +81,14 @@ openpype/premiere/ppro/js/debug.log
.env
dump.sql
test_localsystem.txt
+
+# website
+##########
+website/translated_docs
+website/build/
+website/node_modules
+website/i18n/*
+
+website/debug.log
+
+website/.docusaurus
\ No newline at end of file
diff --git a/igniter/__init__.py b/igniter/__init__.py
index 6f9757cfc8..c2442ad57f 100644
--- a/igniter/__init__.py
+++ b/igniter/__init__.py
@@ -1,15 +1,11 @@
# -*- coding: utf-8 -*-
"""Open install dialog."""
+import os
import sys
-import os
os.chdir(os.path.dirname(__file__)) # for override sys.path in Deadline
-from Qt import QtWidgets # noqa
-from Qt.QtCore import Signal # noqa
-
-from .install_dialog import InstallDialog
from .bootstrap_repos import BootstrapRepos
from .version import __version__ as version
@@ -25,16 +21,21 @@ def get_result(res: int):
def open_dialog():
"""Show Igniter dialog."""
+ from Qt import QtWidgets
+ from .install_dialog import InstallDialog
+
app = QtWidgets.QApplication(sys.argv)
+
d = InstallDialog()
d.finished.connect(get_result)
d.open()
+
app.exec()
+
return RESULT
__all__ = [
- "InstallDialog",
"BootstrapRepos",
"open_dialog",
"version"
diff --git a/openpype/hosts/celaction/api/cli.py b/openpype/hosts/celaction/api/cli.py
index 0a70610acb..5b30da7273 100644
--- a/openpype/hosts/celaction/api/cli.py
+++ b/openpype/hosts/celaction/api/cli.py
@@ -57,25 +57,10 @@ def _prepare_publish_environments():
project_name = os.getenv("AVALON_PROJECT")
asset_name = os.getenv("AVALON_ASSET")
- io.install()
- project_doc = io.find_one({
- "type": "project"
- })
- av_asset = io.find_one({
- "type": "asset",
- "name": asset_name
- })
- parents = av_asset["data"]["parents"]
- hierarchy = ""
- if parents:
- hierarchy = "/".join(parents)
-
env["AVALON_PROJECT"] = project_name
env["AVALON_ASSET"] = asset_name
env["AVALON_TASK"] = os.getenv("AVALON_TASK")
env["AVALON_WORKDIR"] = os.getenv("AVALON_WORKDIR")
- env["AVALON_HIERARCHY"] = hierarchy
- env["AVALON_PROJECTCODE"] = project_doc["data"].get("code", "")
env["AVALON_APP"] = f"hosts.{publish_host}"
env["AVALON_APP_NAME"] = "celaction_local"
diff --git a/openpype/hosts/nuke/api/__init__.py b/openpype/hosts/nuke/api/__init__.py
index 25504aa12b..c80507e7ea 100644
--- a/openpype/hosts/nuke/api/__init__.py
+++ b/openpype/hosts/nuke/api/__init__.py
@@ -1,18 +1,12 @@
import os
-import sys
import nuke
-from avalon import api as avalon
-from openpype.tools import workfiles
-from pyblish import api as pyblish
-from openpype.api import Logger
-import openpype.hosts.nuke
+import avalon.api
+import pyblish.api
+import openpype
from . import lib, menu
-
-self = sys.modules[__name__]
-self.workfiles_launched = False
-log = Logger().get_logger(__name__)
+log = openpype.api.Logger().get_logger(__name__)
AVALON_CONFIG = os.getenv("AVALON_CONFIG", "pype")
HOST_DIR = os.path.dirname(os.path.abspath(openpype.hosts.nuke.__file__))
@@ -25,7 +19,7 @@ INVENTORY_PATH = os.path.join(PLUGINS_DIR, "inventory")
# registering pyblish gui regarding settings in presets
if os.getenv("PYBLISH_GUI", None):
- pyblish.register_gui(os.getenv("PYBLISH_GUI", None))
+ pyblish.api.register_gui(os.getenv("PYBLISH_GUI", None))
def reload_config():
@@ -61,15 +55,16 @@ def install():
'''
log.info("Registering Nuke plug-ins..")
- pyblish.register_plugin_path(PUBLISH_PATH)
- avalon.register_plugin_path(avalon.Loader, LOAD_PATH)
- avalon.register_plugin_path(avalon.Creator, CREATE_PATH)
- avalon.register_plugin_path(avalon.InventoryAction, INVENTORY_PATH)
+ pyblish.api.register_plugin_path(PUBLISH_PATH)
+ avalon.api.register_plugin_path(avalon.api.Loader, LOAD_PATH)
+ avalon.api.register_plugin_path(avalon.api.Creator, CREATE_PATH)
+ avalon.api.register_plugin_path(avalon.api.InventoryAction, INVENTORY_PATH)
# Register Avalon event for workfiles loading.
- avalon.on("workio.open_file", lib.check_inventory_versions)
+ avalon.api.on("workio.open_file", lib.check_inventory_versions)
- pyblish.register_callback("instanceToggled", on_pyblish_instance_toggled)
+ pyblish.api.register_callback(
+ "instanceToggled", on_pyblish_instance_toggled)
workfile_settings = lib.WorkfileSettings()
# Disable all families except for the ones we explicitly want to see
family_states = [
@@ -79,39 +74,27 @@ def install():
"gizmo"
]
- avalon.data["familiesStateDefault"] = False
- avalon.data["familiesStateToggled"] = family_states
-
- # Workfiles.
- launch_workfiles = os.environ.get("WORKFILES_STARTUP")
-
- if launch_workfiles:
- nuke.addOnCreate(launch_workfiles_app, nodeClass="Root")
+ avalon.api.data["familiesStateDefault"] = False
+ avalon.api.data["familiesStateToggled"] = family_states
# Set context settings.
nuke.addOnCreate(workfile_settings.set_context_settings, nodeClass="Root")
- # nuke.addOnCreate(workfile_settings.set_favorites, nodeClass="Root")
-
+ nuke.addOnCreate(workfile_settings.set_favorites, nodeClass="Root")
+ nuke.addOnCreate(lib.open_last_workfile, nodeClass="Root")
+ nuke.addOnCreate(lib.launch_workfiles_app, nodeClass="Root")
menu.install()
-def launch_workfiles_app():
- '''Function letting start workfiles after start of host
- '''
- if not self.workfiles_launched:
- self.workfiles_launched = True
- workfiles.show(os.environ["AVALON_WORKDIR"])
-
-
def uninstall():
'''Uninstalling host's integration
'''
log.info("Deregistering Nuke plug-ins..")
- pyblish.deregister_plugin_path(PUBLISH_PATH)
- avalon.deregister_plugin_path(avalon.Loader, LOAD_PATH)
- avalon.deregister_plugin_path(avalon.Creator, CREATE_PATH)
+ pyblish.api.deregister_plugin_path(PUBLISH_PATH)
+ avalon.api.deregister_plugin_path(avalon.api.Loader, LOAD_PATH)
+ avalon.api.deregister_plugin_path(avalon.api.Creator, CREATE_PATH)
- pyblish.deregister_callback("instanceToggled", on_pyblish_instance_toggled)
+ pyblish.api.deregister_callback(
+ "instanceToggled", on_pyblish_instance_toggled)
reload_config()
menu.uninstall()
@@ -123,7 +106,7 @@ def on_pyblish_instance_toggled(instance, old_value, new_value):
log.info("instance toggle: {}, old_value: {}, new_value:{} ".format(
instance, old_value, new_value))
- from avalon.nuke import (
+ from avalon.api.nuke import (
viewer_update_and_undo_stop,
add_publish_knob
)
diff --git a/openpype/hosts/nuke/api/lib.py b/openpype/hosts/nuke/api/lib.py
index 8618b03cdc..d95af6ec4c 100644
--- a/openpype/hosts/nuke/api/lib.py
+++ b/openpype/hosts/nuke/api/lib.py
@@ -3,9 +3,14 @@ import re
import sys
from collections import OrderedDict
+
from avalon import api, io, lib
+from avalon.tools import workfiles
import avalon.nuke
from avalon.nuke import lib as anlib
+from avalon.nuke import (
+ save_file, open_file
+)
from openpype.api import (
Logger,
Anatomy,
@@ -13,6 +18,7 @@ from openpype.api import (
get_anatomy_settings,
get_hierarchy,
get_asset,
+ get_current_project_settings,
config,
ApplicationManager
)
@@ -25,8 +31,10 @@ log = Logger().get_logger(__name__)
self = sys.modules[__name__]
self._project = None
+self.workfiles_launched = False
self._node_tab_name = "{}".format(os.getenv("AVALON_LABEL") or "Avalon")
+
def get_node_imageio_setting(**kwarg):
''' Get preset data for dataflow (fileType, compression, bitDepth)
'''
@@ -1616,3 +1624,41 @@ def find_free_space_to_paste_nodes(
xpos = min(group_xpos)
ypos = max(group_ypos) + abs(offset)
return xpos, ypos
+
+
+def launch_workfiles_app():
+ '''Function letting start workfiles after start of host
+ '''
+ # get state from settings
+ open_at_start = get_current_project_settings()["nuke"].get(
+ "general", {}).get("open_workfile_at_start")
+
+ # return if none is defined
+ if not open_at_start:
+ return
+
+ if not self.workfiles_launched:
+ self.workfiles_launched = True
+ workfiles.show(os.environ["AVALON_WORKDIR"])
+
+
+def open_last_workfile():
+ # get state from settings
+ open_last_version = get_current_project_settings()["nuke"].get(
+ "general", {}).get("create_initial_workfile")
+
+ log.info("Opening last workfile...")
+ last_workfile_path = os.environ.get("AVALON_LAST_WORKFILE")
+
+ if not os.path.exists(last_workfile_path):
+ # return if none is defined
+ if not open_last_version:
+ return
+
+ save_file(last_workfile_path)
+ else:
+ # to avoid looping of the callback, remove it!
+ nuke.removeOnCreate(open_last_workfile, nodeClass="Root")
+
+ # open workfile
+ open_file(last_workfile_path)
diff --git a/openpype/modules/deadline/plugins/publish/submit_harmony_deadline..py b/openpype/modules/deadline/plugins/publish/submit_harmony_deadline.py
similarity index 99%
rename from openpype/modules/deadline/plugins/publish/submit_harmony_deadline..py
rename to openpype/modules/deadline/plugins/publish/submit_harmony_deadline.py
index 58379443f7..ba1ffdcf30 100644
--- a/openpype/modules/deadline/plugins/publish/submit_harmony_deadline..py
+++ b/openpype/modules/deadline/plugins/publish/submit_harmony_deadline.py
@@ -252,7 +252,7 @@ class HarmonySubmitDeadline(
def get_job_info(self):
job_info = DeadlineJobInfo("Harmony")
job_info.Name = self._instance.data["name"]
- job_info.Plugin = "HarmonyPype"
+ job_info.Plugin = "HarmonyOpenPype"
job_info.Frames = "{}-{}".format(
self._instance.data["frameStartHandle"],
self._instance.data["frameEndHandle"]
diff --git a/openpype/modules/ftrack/ftrack_module.py b/openpype/modules/ftrack/ftrack_module.py
index 8a40cac91a..e1af9c15a7 100644
--- a/openpype/modules/ftrack/ftrack_module.py
+++ b/openpype/modules/ftrack/ftrack_module.py
@@ -42,7 +42,7 @@ class FtrackModule(
ftrack_settings = settings[self.name]
self.enabled = ftrack_settings["enabled"]
- self.ftrack_url = ftrack_settings["ftrack_server"]
+ self.ftrack_url = ftrack_settings["ftrack_server"].strip("/ ")
current_dir = os.path.dirname(os.path.abspath(__file__))
server_event_handlers_paths = [
diff --git a/openpype/settings/defaults/project_settings/harmony.json b/openpype/settings/defaults/project_settings/harmony.json
index e1de4485a4..f5f084dd44 100644
--- a/openpype/settings/defaults/project_settings/harmony.json
+++ b/openpype/settings/defaults/project_settings/harmony.json
@@ -14,7 +14,7 @@
"priority": 50,
"primary_pool": "",
"secondary_pool": "",
- "chunk_size": 0
+ "chunk_size": 1000000
}
}
}
\ No newline at end of file
diff --git a/openpype/settings/defaults/project_settings/nuke.json b/openpype/settings/defaults/project_settings/nuke.json
index 0173eb0a82..852e041805 100644
--- a/openpype/settings/defaults/project_settings/nuke.json
+++ b/openpype/settings/defaults/project_settings/nuke.json
@@ -6,7 +6,9 @@
"load": "ctrl+alt+l",
"manage": "ctrl+alt+m",
"build_workfile": "ctrl+alt+b"
- }
+ },
+ "open_workfile_at_start": false,
+ "create_initial_workfile": true
},
"create": {
"CreateWriteRender": {
diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_nuke.json b/openpype/settings/entities/schemas/projects_schema/schema_project_nuke.json
index 75ca5411a1..5022b75719 100644
--- a/openpype/settings/entities/schemas/projects_schema/schema_project_nuke.json
+++ b/openpype/settings/entities/schemas/projects_schema/schema_project_nuke.json
@@ -43,6 +43,16 @@
"label": "Build Workfile"
}
]
+ },
+ {
+ "type": "boolean",
+ "key": "open_workfile_at_start",
+ "label": "Open Workfile window at start of a Nuke session"
+ },
+ {
+ "type": "boolean",
+ "key": "create_initial_workfile",
+ "label": "Create initial workfile version if none available"
}
]
},
@@ -87,7 +97,7 @@
"name": "schema_nuke_publish",
"template_data": []
},
- {
+ {
"type": "schema",
"name": "schema_nuke_load",
"template_data": []
@@ -101,4 +111,4 @@
"name": "schema_publish_gui_filter"
}
]
-}
+}
\ No newline at end of file
diff --git a/openpype/tools/standalonepublish/widgets/widget_components.py b/openpype/tools/standalonepublish/widgets/widget_components.py
index e6682d97aa..2ac54af4e3 100644
--- a/openpype/tools/standalonepublish/widgets/widget_components.py
+++ b/openpype/tools/standalonepublish/widgets/widget_components.py
@@ -160,32 +160,11 @@ def set_context(project, asset, task):
os.environ["AVALON_TASK"] = task
io.Session["AVALON_TASK"] = task
- io.install()
-
- av_project = io.find_one({'type': 'project'})
- av_asset = io.find_one({
- "type": 'asset',
- "name": asset
- })
-
- parents = av_asset['data']['parents']
- hierarchy = ''
- if parents and len(parents) > 0:
- hierarchy = os.path.sep.join(parents)
-
- os.environ["AVALON_HIERARCHY"] = hierarchy
- io.Session["AVALON_HIERARCHY"] = hierarchy
-
- os.environ["AVALON_PROJECTCODE"] = av_project['data'].get('code', '')
- io.Session["AVALON_PROJECTCODE"] = av_project['data'].get('code', '')
-
io.Session["current_dir"] = os.path.normpath(os.getcwd())
os.environ["AVALON_APP"] = HOST_NAME
io.Session["AVALON_APP"] = HOST_NAME
- io.uninstall()
-
def cli_publish(data, publish_paths, gui=True):
PUBLISH_SCRIPT_PATH = os.path.join(
diff --git a/setup.cfg b/setup.cfg
index 03c999e05f..51a3c1a9ca 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -6,7 +6,8 @@ exclude =
.git,
__pycache__,
docs,
- */vendor
+ */vendor,
+ website
max-complexity = 30
diff --git a/tools/build.ps1 b/tools/build.ps1
index a6c76dfafb..412bb111c1 100644
--- a/tools/build.ps1
+++ b/tools/build.ps1
@@ -157,11 +157,12 @@ Write-Host "Reading Poetry ... " -NoNewline
if (-not (Test-Path -PathType Container -Path "$($env:USERPROFILE)\.poetry\bin")) {
Write-Host "NOT FOUND" -ForegroundColor Yellow
Install-Poetry
+
Write-Host "INSTALLED" -ForegroundColor Cyan
} else {
Write-Host "OK" -ForegroundColor Green
}
-
+$env:PATH = "$($env:PATH);$($env:USERPROFILE)\.poetry\bin"
Write-Host ">>> " -NoNewline -ForegroundColor green
Write-Host "Cleaning cache files ... " -NoNewline
@@ -172,6 +173,7 @@ Write-Host "OK" -ForegroundColor green
Write-Host ">>> " -NoNewline -ForegroundColor green
Write-Host "Building OpenPype ..."
+
$out = & poetry run python setup.py build 2>&1
if ($LASTEXITCODE -ne 0)
{
diff --git a/tools/create_env.sh b/tools/create_env.sh
index 6ca0731963..7bdb8503fd 100755
--- a/tools/create_env.sh
+++ b/tools/create_env.sh
@@ -172,6 +172,7 @@ main () {
poetry run python -m pip install --upgrade pip
poetry run pip install --force-reinstall setuptools
poetry run pip install --force-reinstall wheel
+ poetry run python -m pip install --force-reinstall pip
}
main -3
diff --git a/website/docs/admin_distribute.md b/website/docs/admin_distribute.md
new file mode 100644
index 0000000000..b0ab71e2f3
--- /dev/null
+++ b/website/docs/admin_distribute.md
@@ -0,0 +1,50 @@
+---
+id: admin_distribute
+title: Distribute
+sidebar_label: Distribute
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+To let your artists to use OpenPype, you'll need to distribute the frozen executables to them.
+
+Distribution consists of two parts
+
+ ### 1. OpenPype Igniter
+
+ This is the base application that will be installed locally on each workstation.
+ It is self contained (frozen) software that also includes all of the OpenPype codebase with the version
+ from the time of the build.
+
+ Igniter package is around 500MB and preparing an updated version requires you to re-build pype. That would be
+ inconvenient for regular and quick distribution of production updates and fixes. So you can distribute those
+ independently, without requiring you artists to re-install every time.
+
+ ### 2. OpenPype Codebase
+
+When you upgrade your studio pype deployment to a new version or make any local code changes, you can distribute
+these changes to your artists, without the need of re-building OpenPype, by using `create_zip` tool provided.
+The resulting zip needs to be made available to the artists and it will override their local OpenPype install
+with the updated version.
+
+You have two ways of making this happen
+
+#### Automatic Updates
+
+Everytime and Artist launches OpenPype on their workstation, it will look to a pre-defined
+[openPype update location](#self) for any versions that are newer than the
+latest, locally installed version. If such version is found, it will be downloaded,
+automatically extracted to the correct place and launched. This will become the default
+version to run for the artist, until a higher version is detected in the update location again.
+
+#### Manual Updates
+
+If for some reason you don't want to use the automatic updates, you can distribute your
+zips manually. Your artist will then have to unpack them to the correct place on their disk.
+
+The default locations are:
+
+- Windows: `C:\Users\%USERNAME%\AppData\Local\pypeclub\openpype`
+- Linux: ` `
+- Mac: ` `
diff --git a/website/docs/admin_docsexamples.md b/website/docs/admin_docsexamples.md
new file mode 100644
index 0000000000..6b4ae101d3
--- /dev/null
+++ b/website/docs/admin_docsexamples.md
@@ -0,0 +1,119 @@
+---
+id: admin_docsexamples
+title: Examples of using notes
+sidebar_label: docsexamples
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+
+
+
+This is your mac stuff
+
+
+
+
+This is your linux stuff
+
+
+
+
+
+This is your mac stuff
+
+
+
+
+
+
+
+
+
+:::note Name of the category
+
+
+
+
+
+This is your mac stuff
+
+
+
+
+This is your linux stuff
+
+
+
+
+
+This is your mac stuff
+
+
+
+
+:::
+
+
+=========================
+
+:::important
+
+- This is my note
+- another list
+- super list
+
+```python
+import os
+print(os.environ)
+```
+
+:::
+
+:::tip
+This is my note
+:::
+
+:::note
+This is my note
+:::
+
+:::warning
+This is my note
+:::
+
+:::caution
+This is my note
+:::
+
+export const Highlight = ({children, color}) => (
+
+ {children}
+
+);
+
+Docusaurus green and Facebook blue are my favorite colors.
+
+I can write **Markdown** alongside my _JSX_!
diff --git a/website/docs/admin_openpype_commands.md b/website/docs/admin_openpype_commands.md
new file mode 100644
index 0000000000..6e187c3c8a
--- /dev/null
+++ b/website/docs/admin_openpype_commands.md
@@ -0,0 +1,140 @@
+---
+id: admin_openpype_commands
+title: OpenPype Commands Reference
+sidebar_label: OpenPype Commands
+---
+
+
+## `tray`
+
+To launch Tray:
+```sh
+pype tray
+```
+
+### `--debug`
+
+To launch Tray with debugging information:
+```sh
+pype tray --debug
+```
+
+--------------------
+
+
+## `eventserver`
+
+This command launches ftrack event server.
+
+This should be ideally used by system service (such us systemd or upstart
+on linux and window service).
+
+You have to set either proper environment variables to provide URL and
+credentials or use option to specify them. If you use `--store_credentials`
+provided credentials will be stored for later use.
+
+To run ftrack event server:
+```sh
+pype eventserver --ftrack-url= --ftrack-user= --ftrack-api-key= --ftrack-events-path= --no-stored-credentials --store-credentials
+```
+
+
+### `--debug`
+- print debug info
+
+### `--ftrack-url`
+- URL to ftrack server
+
+### `--ftrack-user`
+- user name to log in to ftrack
+
+### `--ftrack-api-key`
+- ftrack api key
+
+### `--ftrack-events-path`
+- path to event server plugins
+
+### `--no-stored-credentials`
+- will use credential specified with options above
+
+### `--store-credentials`
+- will store credentials to file for later use
+
+--------------------
+
+## `launch`
+
+Launch application in Pype environment.
+
+### `--app`
+
+Application name - this should be the same as it's [defining toml](admin_hosts#launchers) file (without .toml)
+
+### `--project`
+Project name
+
+### `--asset`
+Asset name
+
+### `--task`
+Task name
+
+### `--tools`
+*Optional: Additional tools environment files to add*
+
+### `--user`
+*Optional: User on behalf to run*
+
+### `--ftrack-server` / `-fs`
+*Optional: Ftrack server URL*
+
+### `--ftrack-user` / `-fu`
+*Optional: Ftrack user*
+
+### `--ftrack-key` / `-fk`
+*Optional: Ftrack API key*
+
+For example to run Python interactive console in Pype context:
+```sh
+pype launch --app python --project my_project --asset my_asset --task my_task
+```
+
+--------------------
+
+
+## `publish`
+
+Pype takes JSON from provided path and use it to publish data in it.
+```sh
+pype publish
+```
+
+### `--debug`
+- print more verbose infomation
+
+--------------------
+
+## `extractenvironments`
+
+Extract environment variables for entered context to a json file.
+
+Entered output filepath will be created if does not exists.
+
+All context options must be passed otherwise only openpype's global environments will be extracted.
+
+Context options are "project", "asset", "task", "app"
+
+### `output_json_path`
+- Absolute path to the exported json file
+
+### `--project`
+- Project name
+
+### `--asset`
+- Asset name
+
+### `--task`
+- Task name
+
+### `--app`
+- Application name
\ No newline at end of file
diff --git a/website/docs/admin_settings.md b/website/docs/admin_settings.md
new file mode 100644
index 0000000000..0cd10f81dc
--- /dev/null
+++ b/website/docs/admin_settings.md
@@ -0,0 +1,86 @@
+---
+id: admin_settings
+title: Working with settings
+sidebar_label: Working with settings
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+OpenPype stores all of it's settings and configuration in the mongo database. To make the configuration as easy as possible we provide a robust GUI where you can access and change everything that is configurable
+
+**Settings** GUI can be started from the tray menu.
+
+Please keep in mind that these settings are set-up for the full studio and not per-individual. If you're looking for individual artist settings, you can head to
+[Local Settings](#local-settings) section in the artist documentation.
+
+
+## Categories
+
+We use simple colour coding to show you any changes to the settings:
+- **Grey**: [OpenPype default](#openpype-defaults)
+- **Green**: [Studio default](#openpype-defaults)
+- **Orange**: [Project Override](#project-overrides)
+- **Blue**: Changed and unsaved value
+
+You'll find that settings are split into categories:
+
+### [System](admin_settings_system)
+
+System sections contains all settings that can be configured on a studio level, but cannot
+be changed on a per-project basis. These include mostly high level options like path to
+mongo database, toggling major modules on and off and configuring studio wide application
+availability.
+
+### [Project](admin_settings_project)
+
+Project tab contains most of OpenPype settings and all of them can be configured and overriden on a per-project basis if need be. This includes most of the workflow behaviors
+like what formats to export, naming conventions, publishing validations, automatic assets loaders and a lot more.
+
+We recommend to try to keep as many configurations as possible on a studio level and only override selectively, because micromanaging all of the project settings might become cumbersome down the line. Most of the settings can be safely adjusted and locked on a project
+after the production started.
+
+## Understanding Overrides
+
+Most of the individual settings can be set and overriden on multiple levels.
+
+### OpenPype defaults
+When you first open settings all of the values and categories will be marked with a
+light **grey labels** or a **grey vertical bar** on the left edge of the expandable category.
+
+That means, the value has been left at OpenPype Default. If the default changes in future
+OpenPype versions, these values will be reflect the change after you deploy the new version.
+
+### Studio defaults
+
+Any values that you change and then press save in the bottom right corner, will be saved
+as studio defaults. This means they will stay at those values even if you update your pype.
+To make it clear which settings are set by you specifically, they are marked with a **green
+edge** and **green labels**, once set.
+
+To set studio default, just change the value in the system tab and press save. If you want
+to keep the value but add the option to your studio default to protect it from potential
+future updates, you ran `right click` and choose `add to studio default`, then press save.
+
+In the Project settings tab, you need to select the **( Default )** project on the left, to set your studio defaults for projects. The rest works the same as in the System tab.
+
+
+
+You can also reset any settings to OpenPype default by doing `right click` and `remove from studio default`
+
+
+
+### Project Overrides
+
+Many settings are usefull to be adjusted on a per-project basis. To identify project
+overrides, they are marked with **orange edge** and **orange labels** in the settings GUI.
+
+To set project overrides proceed the same way as with the Studio defaults, but first select
+a particular project you want to be configuring on the left hand side of the Project Settings tab.
+
+Here you can see all three overrides at the same time. Deadline has not studio changes at all, Maya has some studio defaults configures and Nuke also contains project specific overrides.
+
+
+Override colours work as breadcrumbs to allow quick identification of what was changed and where. As you can see on this image, Orange colour is propagated up the hierarchy even though only a single value (sync render version with workfile toggle), was changed.
+
+
diff --git a/website/docs/admin_settings_project.md b/website/docs/admin_settings_project.md
new file mode 100644
index 0000000000..a30c0f0082
--- /dev/null
+++ b/website/docs/admin_settings_project.md
@@ -0,0 +1,11 @@
+---
+id: admin_settings_project
+title: Project Settings
+sidebar_label: Project Settings
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+PROJECT Settings
\ No newline at end of file
diff --git a/website/docs/admin_settings_project_anatomy.md b/website/docs/admin_settings_project_anatomy.md
new file mode 100644
index 0000000000..54023d468f
--- /dev/null
+++ b/website/docs/admin_settings_project_anatomy.md
@@ -0,0 +1,106 @@
+---
+id: admin_settings_project_anatomy
+title: Project Anatomy
+sidebar_label: Project Anatomy
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+Project Anatomy is the most important configuration piece for each project you work on with openPype.
+
+It defines:
+- Project Root folders
+- File naming conventions
+- Folder structure templates
+- Default project attributes
+- Task Types
+- Applications and Tool versions
+- Colour Management
+- File Formats
+
+Anatomy is the only configuration that is always saved as project override. This is to make sure, that any updates to OpenPype or Studio default values, don't affect currently running productions.
+
+
+
+## Roots
+
+Roots define where files are stored with path to shared folder. It is required to set root path for each platform you are using in studio. All paths must point to same folder!
+
+
+
+It is possible to set multiple roots when necessary. That may be handy when you need to store specific type of data on another disk.
+
+
+
+Note how multiple roots are used here, to push different types of files to different shared storage.
+
+
+
+## Templates
+
+Templates define project's folder structure and filenames.
+
+We have a few required anatomy templates for OpenPype to work properly, however we keep adding more when needed.
+
+### Available template keys
+
+
+
+
+
+| Context key | Description |
+| --- | --- |
+| `root[name]` | Path to root folder |
+| `project[name]` | Project's full name |
+| `project[code]` | Project's code |
+| `hierarchy` | All hierarchical parents as subfolders |
+| `asset` | Name of asset or shot |
+| `task` | Name of task |
+| `version` | Version number |
+| `subset` | Subset name |
+| `family` | Main family name |
+| `ext` | File extention |
+| `representation` | Representation name |
+| `frame` | Frame number for sequence files. |
+| `output` | |
+| `comment` | |
+
+
+
+
+| Date-Time key | Example result | Description |
+| --- | --- | --- |
+| `d` | 1, 30 | Short day of month |
+| `dd` | 01, 30 | Day of month with 2 digits. |
+| `ddd` | Mon | Shortened week day name. |
+| `dddd` | Monday | Full week day name. |
+| `m` | 1, 12 | Short month number. |
+| `mm` | 01, 12 | Month number with 2 digits. |
+| `mmm` | Jan | Shortened month name. |
+| `mmmm` | January | Full month name. |
+| `yy` | 20 | Shortened year. |
+| `yyyy` | 2020 | Full year. |
+| `H` | 4, 17 | Shortened 24-hour number. |
+| `HH` | 04, 17 | 24-hour number with 2 digits. |
+| `h` | 5 | Shortened 12-hour number. |
+| `hh` | 05 | 12-hour number with 2 digits. |
+| `ht` | AM, PM | Midday part. |
+| `M` | 0 | Shortened minutes number. |
+| `MM` | 00 | Minutes number with 2 digits. |
+| `S` | 0 | Shortened seconds number. |
+| `SS` | 00 | Seconds number with 2 digits. |
+
+
+
+
+
+## Attributes
+
+
+
+## Task Types
+
+
+## Colour Management and Formats
\ No newline at end of file
diff --git a/website/docs/admin_settings_system.md b/website/docs/admin_settings_system.md
new file mode 100644
index 0000000000..0c4a6c863d
--- /dev/null
+++ b/website/docs/admin_settings_system.md
@@ -0,0 +1,132 @@
+---
+id: admin_settings_system
+title: System Settings
+sidebar_label: System settings
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+## Global
+
+Settings applicable to the full studio.
+
+`Studio Name`
+
+`Studio Code`
+
+`Environment`
+
+## Modules
+
+Configuration of OpenPype modules. Some can only be turned on and off, others have
+their own attributes that need to be set, before they become fully functional.
+
+### Avalon
+
+`Avalon Mongo Timeout` - You might need to change this if your mongo connection is a bit slow. Making the
+timeout longer will give Avalon better chance to connect.
+
+`Thumbnail Storage Location` - simple disk storage path, where all thumbnails will be stored.
+
+### Ftrack
+
+`Server` - URL of your ftrack server.
+
+Additional Action paths
+
+`Action paths` - Directories containing your custom ftrack actions.
+
+`Event paths` - Directories containing your custom ftrack event plugins.
+
+`Intent` - Special ftrack attribute that mark the intention of individual publishes. This setting will be reflected
+in publisher as well as ftrack custom attributes
+
+`Custom Attributes` - Write and Read permissions for all OpenPype required ftrack custom attributes. The values should be
+ftrack roles names.
+
+### Sync Server
+
+Disable/Enable OpenPype site sync feature
+
+### Standalone Publisher
+
+Disable/Enable Standalone Publisher option
+
+### Deadline
+
+`Deadline Rest URL` - URL to deadline webservice that. This URL must be reachable from every
+workstation that should be submitting render jobs to deadline via OpenPype.
+
+### Muster
+
+`Muster Rest URL` - URL to Muster webservice that. This URL must be reachable from every
+workstation that should be submitting render jobs to muster via OpenPype.
+
+`templates mapping` - you can customize Muster templates to match your existing setup here.
+
+### Clockify
+
+`Workspace Name` - name of the clockify workspace where you would like to be sending all the timelogs.
+
+### Timers Manager
+
+`Max Idle Time` - Duration (minutes) of inactivity, after which currently running timer will be stopped.
+
+`Dialog popup time` - Time in minutes, before the end of Max Idle ti, when a notification will alert
+the user that their timer is about to be stopped.
+
+### Idle Manager
+
+Service monitoring the activity, which triggers the Timers Manager timeouts.
+
+### Logging
+
+Module that allows storing all logging into the database for easier retrieval and support.
+
+## Applications
+
+In this section you can manage what Applications are available to your studio, locations of their
+executables and their additional environments.
+
+Each DCC is made of two levels.
+1. **Application group** - This is the main name of the application and you can define extra environments
+that are applicable to all version of the give application. For example any extra Maya scripts that are not
+version dependant, can be added to `Maya` environment here.
+2. **Application versions** - Here you can define executables (per platform) for each supported version of
+the DCC and any default arguments (`--nukex` for instance). You can also further extend it's environment.
+
+
+
+Please keep in mind that the environments are not additive by default, so if you are extending variables like
+`PYTHONPATH`, or `PATH` make sure that you add themselves to the end of the list.
+
+For instance:
+
+```json
+{
+ "PYTHONPATH": [
+ "my/path/to/python/scripts",
+ "{PYTHONPATH}"
+ ]
+}
+```
+
+
+
+
+## Tools
+
+A tool in openPype is anything that needs to be selectively added to your DCC applications. Most often these are plugins, modules, extensions or similar depending on what your package happens to call it.
+
+OpenPype comes with some major CG renderers pre-configured as an example, but these and any others will need to be changed to match your particular environment.
+
+Their environment settings are split to two levels just like applications to allow more flexibility when setting them up.
+
+In the image before you can see that we set most of the environment variables in the general MTOA level, and only specify the version variable in the individual versions below. Because all environments within pype setting will resolve any cross references, this is enough to get a fully dynamic plugin loading as far as your folder structure where you store the plugins is nicely organized.
+
+
+In this example MTOA will automatically will the `MAYA_VERSION`(which is set by Maya Application environment) and `MTOA_VERSION` into the `MTOA` variable. We then use the `MTOA` to set all the other variables needed for it to function within Maya.
+
+
+All of the tools defined in here can then be assigned to projects. You can also change the tools versions on any project level all the way down to individual asset or shot overrides. So if you just need to upgrade you render plugin for a single shot, while not risking the incompatibilities on the rest of the project, it is possible.
\ No newline at end of file
diff --git a/website/docs/admin_use.md b/website/docs/admin_use.md
new file mode 100644
index 0000000000..376e9397a1
--- /dev/null
+++ b/website/docs/admin_use.md
@@ -0,0 +1,37 @@
+---
+id: admin_use
+title: Install and Run
+sidebar_label: Install & Run
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+## Install
+
+You can install OpenPype on individual workstations the same way as any other software.
+When you create you build, you will end up with an installation package for the platform
+that was used for the build.
+
+- Windows: `OpenPype-3.0.0.msi`
+- Linux: `OpenPype-3.0.0.zip`
+- Mac: `OpenPype-3.0.0.dmg`
+
+After OpenPype is installed, it will ask the user for further installation if it detects a
+newer version in the studio update location.
+
+## Run OpenPype
+
+To use OpenPype on a workstation simply run the executable that was installed.
+On the first run the user will be prompted to for OpenPype Mongo URL.
+This piece of information needs to be provided to the artist by the admin setting
+up OpenPype in the studio.
+
+Once artist enters the Mongo URL address, OpenPype will remember the connection for the
+next launch, so it is a one time process.From that moment OpenPype will do it's best to
+always keep up to date with the latest studio updates.
+
+If the launch was successfull, the artist should see a green OpenPype logo in their
+tray menu. Keep in mind that on Windows this icon might be hidden by default, in which case,
+the artist can simply drag the icon down to the tray.
\ No newline at end of file
diff --git a/website/docs/api.md b/website/docs/api.md
new file mode 100644
index 0000000000..7cad92d603
--- /dev/null
+++ b/website/docs/api.md
@@ -0,0 +1,7 @@
+---
+id: api
+title: Pype API
+sidebar_label: API
+---
+
+Work in progress
diff --git a/website/docs/artist_concepts.md b/website/docs/artist_concepts.md
new file mode 100644
index 0000000000..6046ba6214
--- /dev/null
+++ b/website/docs/artist_concepts.md
@@ -0,0 +1,53 @@
+---
+id: artist_concepts
+title: Key concepts
+sidebar_label: Key Concepts
+---
+
+## Glossary
+
+### Asset
+
+In our pipeline all the main entities the project is made from are internally considered *'Assets'*. Episode, sequence, shot, character, prop, etc. All of these behave identically in the pipeline. Asset names need to be absolutely unique within the project because they are their key identifier.
+
+### Subset
+
+Usually, an asset needs to be created in multiple *'flavours'*. A character might have multiple different looks, model needs to be published in different resolutions, a standard animation rig might not be useable in a crowd system and so on. 'Subsets' are here to accommodate all this variety that might be needed within a single asset. A model might have subset: *'main'*, *'proxy'*, *'sculpt'*, while data of *'look'* family could have subsets *'main'*, *'dirty'*, *'damaged'*. Subsets have some recommendations for their names, but ultimately it's up to the artist to use them for separation of publishes when needed.
+
+### Version
+
+A numbered iteration of a given subset. Each version contains at least one [representation][daa74ebf].
+
+ [daa74ebf]: #representation "representation"
+
+### Representation
+
+Each published variant can come out of the software in multiple representations. All of them hold exactly the same data, but in different formats. A model, for example, might be saved as `.OBJ`, Alembic, Maya geometry or as all of them, to be ready for pickup in any other applications supporting these formats.
+
+### Family
+
+Each published [subset][3b89d8e0] can have exactly one family assigned to it. Family determines the type of data that the subset holds. Family doesn't dictate the file type, but can enforce certain technical specifications. For example OpenPype default configuration expects `model` family to only contain geometry without any shaders or joins when it is published.
+
+
+ [3b89d8e0]: #subset "subset"
+
+
+
+### Host
+
+General term for Software or Application supported by OpenPype and Avalon. These are usually DCC applications like Maya, Houdini or Nuke, but can also be a web based service like Ftrack or Clockify.
+
+
+### Tool
+
+Small piece of software usually dedicated to a particular purpose. Most of OpenPype and Avalon tools have GUI, but some are command line only
+
+
+### Publish
+
+Process of exporting data from your work scene to versioned, immutable file that can be used by other artists in the studio.
+
+### Load
+
+Process of importing previously published subsets into your current scene, using any of the OpenPype tools.
+Loading asset using proper tools will ensure that all your scene content stays version controlled and updatable at a later point
diff --git a/website/docs/artist_ftrack.md b/website/docs/artist_ftrack.md
new file mode 100644
index 0000000000..e42136fa89
--- /dev/null
+++ b/website/docs/artist_ftrack.md
@@ -0,0 +1,82 @@
+---
+id: artist_ftrack
+title: Ftrack
+sidebar_label: Artist
+---
+
+# How to use Ftrack in OpenPype
+
+## Login to Ftrack module in OpenPype tray (best case scenario)
+1. Launch OpenPype tray if not launched yet
+2. *Ftrack login* window pop up on start
+ - or press **login** in **Ftrack menu** to pop up *Ftrack login* window
+
+ 
+
+3. Press `Ftrack` button
+
+4. Web browser opens
+5. Sign in Ftrack if you're requested
+
+
+6. Message is shown
+
+
+7. Close message and you're ready to use actions - continue with [Application launch](#application-launch-best-case-scenario)
+
+---
+## Application launch (best case scenario)
+1. Make sure OpenPype is running and you passed [Login to Ftrack](#login-to-ftrack-module-in-pype-tray-best-case-scenario) guide
+2. Open web browser and go to your studio Ftrack web page *(e.g. https://mystudio.ftrackapp.com/)*
+3. Locate the task on which you want to run the application
+4. Display actions for the task
+ 
+5. Select application you want to launch
+ - application versions may be grouped to one action in that case press the action to reveal versions to choose *(like Maya in the picture)*
+ 
+6. Work
+
+---
+## Change Ftrack user
+1. Log out the previous user from Ftrack Web app *(skip if new is already logged)*
+
+
+2. Log out the previous user from Ftrack module in tray
+
+
+3. Follow [Login to Ftrack](#login-to-ftrack-module-in-pype-tray-best-case-scenario) guide
+
+---
+## What if...
+
+### Ftrack login window didn't pop up and Ftrack menu is not in tray
+**1. possibility - OpenPype tray didn't load properly**
+- try to restart OpenPype
+
+**2. possibility - Ftrack is not set in OpenPype**
+- inform your administrator
+
+
+### Web browser did not open
+**1. possibility - button was not pressed**
+- Try to press again the `Ftrack` button in *Ftrack login* window
+
+**2. possibility - Ftrack URL is not set or is not right**
+- Check **Ftrack URL** value in *Ftrack login* window
+- Inform your administrator if URL is incorrect and launch tray again when administrator fix it
+
+**3. possibility - Ftrack Web app can't be reached the way OpenPype use it**
+- Enter your **Username** and [API key](#where-to-find-api-key) in *Ftrack login* window and press **Login** button
+
+### Ftrack action menu is empty
+**1. possibility - OpenPype is not running**
+- launch OpenPype
+
+**2. possibility - You didn't go through Login to Ftrack guide**
+- please go through [Login to Ftrack](#login-to-ftrack-module-in-pype-tray-best-case-scenario) guide
+
+**3. possibility - User logged to Ftrack Web is not the same as user logged to Ftrack module in tray**
+- Follow [Change user](#change-user) guide
+
+**4. possibility - Project don't have set applications**
+- ask your Project Manager to check if he set applications for the project
diff --git a/website/docs/artist_getting_started.md b/website/docs/artist_getting_started.md
new file mode 100644
index 0000000000..be1960a38c
--- /dev/null
+++ b/website/docs/artist_getting_started.md
@@ -0,0 +1,84 @@
+---
+title: Getting started with OpenPype
+sidebar_label: Getting started
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+## Working in the studio
+
+In studio environment you should have OpenPype already installed and deployed, so you can start using it without much setup. Your admin has probably put OpenPype icon on your desktop or even had your computer set up so OpenPype will start automatically.
+
+If this is not the case, please contact your administrator to consult on how to launch OpenPype in your studio
+
+## Working from home
+
+If you are working from home though, you'll need to install it yourself. You should, however, receive the OpenPype installer files from your studio
+admin, supervisor or production, because OpenPype versions and executables might not be compatible between studios.
+
+To install OpenPype you just need to unzip it anywhere on the disk
+
+To use it, you have two options
+
+**openpype_gui.exe** is the most common for artists. It runs OpenPype GUI in system tray. From there you can run all the available tools. To use any of the features, OpenPype must be running in the tray.
+
+**openpype_console.exe** in usefull for debugging and error reporting. It opens console window where all the necessary information will appear during user's work.
+
+
+
+
+
+
+WIP - Windows instructions once installers are finished
+
+
+
+
+WIP - Linux instructions once installers are finished
+
+
+
+
+WIP - Mac instructions once installers are finished
+
+
+
+
+
+## First Launch
+
+
+When you first start OpenPype, you will be asked to give it some basic information.
+### MongoDB
+
+In most cases that will only be your studio MongoDB Address.
+
+It is a URL that you should receive from you studio and most often will look like this `mongodb://username:passwword@mongo.mystudiodomain.com:12345` or `mongodb://192.168.100.15:27071`, it really depends on your studio setup. When OpenPype Igniter
+asks for it, just put it in the corresponding text field and press `install` button.
+
+### OpenPype Version Repository
+
+Sometimes your studio might also ask you to fill in the path to it's version
+repository. This is a location where OpenPype will be looking for when checking
+if it's up to date and where updates are installed from automatically.
+
+This pat is usually taken from the database directly, so you shouldn't need it.
+
+
+## Updates
+
+If you're connected to your studio, OpenPype will check for, and install updates automatically everytime you run it. That's why during the first start, it will go through a quick update installation process, even though you might have just installed it.
+
+
+## Advanced use
+
+For more advanced use of OpenPype commands please visit [Admin section](admin_openpype_commands).
diff --git a/website/docs/artist_hosts.md b/website/docs/artist_hosts.md
new file mode 100644
index 0000000000..609f6d97c8
--- /dev/null
+++ b/website/docs/artist_hosts.md
@@ -0,0 +1,17 @@
+---
+id: artist_hosts
+title: Hosts
+sidebar_label: Hosts
+---
+
+## Maya
+
+## Houdini
+
+## Nuke
+
+## Fusion
+
+## Unreal
+
+## System
diff --git a/website/docs/artist_hosts_aftereffects.md b/website/docs/artist_hosts_aftereffects.md
new file mode 100644
index 0000000000..879c0d4646
--- /dev/null
+++ b/website/docs/artist_hosts_aftereffects.md
@@ -0,0 +1,107 @@
+---
+id: artist_hosts_aftereffects
+title: AfterEffects
+sidebar_label: AfterEffects
+---
+
+## Available Tools
+
+- [Work Files](artist_tools.md#workfiles)
+- [Create](artist_tools.md#creator)
+- [Load](artist_tools.md#loader)
+- [Publish](artist_tools.md#publisher)
+- [Manage](artist_tools.md#inventory)
+- [Subset Manager](artist_tools.md#subset-manager)
+
+## Setup
+
+To install the extension, download, install [Anastasyi's Extention Manager](https://install.anastasiy.com/). Open Anastasyi's Extension Manager and select AfterEffects in menu. Then go to `{path to pype}/repos/avalon-core/avalon/aftereffects/extension.zxp`.
+
+Drag extension.zxp and drop it to Anastasyi's Extension Manager. The extension will install itself.
+
+## Implemented functionality
+
+AfterEffects implementation currently allows you to import and add various media to composition (image plates, renders, audio files, video files etc.)
+and send prepared composition for rendering to Deadline.
+
+## Usage
+
+When you launch AfterEffects you will be met with the Workfiles app. If don't
+have any previous workfiles, you can just close this window.
+
+Workfiles tools takes care of saving your .AEP files in the correct location and under
+a correct name. You should use it instead of standard file saving dialog.
+
+In AfterEffects you'll find the tools in the `OpenPype` extension:
+
+
+
+You can show the extension panel by going to `Window` > `Extensions` > `OpenPype`.
+
+### Create
+
+When you have created an composition you want to publish, you will need to tag existing composition. To do this open the `Creator` through the extensions `Create` button.
+
+
+
+Because of current rendering limitations, it is expected that only single composition will be marked for publishing!
+
+After Creator is successfully triggered on selected composition, it will be marked with an icon and its color
+will be changed.
+
+
+
+### Publish
+
+When you are ready to share your work, you will need to publish it. This is done by opening the `Publish` by clicking the corresponding button in the OpenPype Panel.
+
+
+
+This tool will run through checks to make sure the contents you are publishing is correct. Hit the "Play" button to start publishing.
+
+You may encounter issues with publishing which will be indicated with red squares. If these issues are within the validation section, then you can fix the issue. If there are issues outside of validation section, please let the OpenPype team know. For More details have a look at the general [Publish](artist_tools.md#publisher) documentation.
+
+### Load
+
+When you want to load existing published work, you can use the `Loader` tool. You can reach it in the extension's panel.
+
+
+
+The supported families for loading into AfterEffects are:
+
+- `image`
+- `plate`
+- `render`
+- `prerender`
+- `review`
+- `audio`
+- `background` `(set of images sorted in predefined order)`
+
+To load an item, right-click on the subset you want and choose a representation you want to load:
+
+
+
+### Manage
+
+Now that we have some content loaded, you can manage which version is loaded. This is done through the `Scene Manager`. You can reach it through the extension's `Manage` button.
+
+:::note
+Loaded images have to stay as smart layers in order to be updated. If you rasterize the layer, you can no longer update it to a different version using OpenPype tools.
+:::
+
+
+
+You can switch to a previous version of the image or update to the latest.
+
+
+
+
+### Subset Manager
+
+
+
+All created compositions will be shown in a simple list. If user decides, that this composition shouldn't be
+published after all, right click on that item in the list and select 'Remove instance'
+
+Removing composition direclty in the AE would result to worfile contain phantom metadata which could result in
+errors during publishing!
\ No newline at end of file
diff --git a/website/docs/artist_hosts_harmony.md b/website/docs/artist_hosts_harmony.md
new file mode 100644
index 0000000000..3e945a2852
--- /dev/null
+++ b/website/docs/artist_hosts_harmony.md
@@ -0,0 +1,128 @@
+---
+id: artist_hosts_harmony
+title: Harmony
+sidebar_label: Harmony
+---
+
+## Available Tools
+
+- [Work Files](artist_tools.md#workfiles)
+- [Create](artist_tools.md#creator)
+- [Load](artist_tools.md#loader)
+- [Publish](artist_tools.md#publisher)
+- [Manage](artist_tools.md#inventory)
+
+:::note
+Only one tool can be open at a time. If you open a tool while another tool is open, it will wait in queue for the existing tool to be closed. Once the existing tool is closed, the new tool will open.
+:::
+
+## Usage
+
+The integration creates an `OpenPype` menu entry where all related tools are located.
+
+:::note
+Menu creation can be temperamental. Its best to start Harmony and do nothing else until the application is fully launched.
+If you dont see the `OpenPype` menu, then follow this to create it:
+- Go to the `Script Editor`
+- Find the script called `TB_sceneOpened.js` and run it.
+- Choose the `start` method to run.
+:::
+
+### Workfiles
+
+`OpenPype > Workfiles`
+
+Work files are temporarily stored locally, in `[user]/.avalon/harmony`, to reduce network bandwidth. When saving the Harmony scene, a background process ensures the network files are updated.
+
+:::important
+Because the saving to the network location happens in the background, be careful when quickly saving and closing Harmony (and the terminal window) since an interrupted saving to the network location can corrupt the workfile. To be sure the workfile is saved to the network location look in the terminal for a line similar to this:
+
+`DEBUG:avalon.harmony.lib:Saved "[Local Scene Directory]" to "[Network Scene Directory]\[Name Of Workfile].zip"`
+:::
+
+### Create
+
+`OpenPype > Create`
+
+
+
+These are the families supported in Harmony:
+
+- `Render`
+ - This instance is for generating a render and review. This is a normal write node, but only PNGs are supported at the moment.
+- `Template`
+ - This instance is for generating a templates. This is a normal composite node, which you can connect any number of nodes to.
+ - Any connected nodes will be published along with their dependencies and any back drops.
+- `Palette`
+ - Palettes are indirectly supported in Harmony. This means you just have to have palettes in your scene to publish them.
+
+When you `Use selection` on creation, the last selected node will be connected to the created node.
+
+### Publish
+
+`OpenPype > Publish`
+
+
+
+This tool will run through checks to make sure the contents you are publishing is correct. Hit the "Play" button to start publishing.
+
+You may encounter issues with publishing which will be indicated with red squares. If these issues are within the validation section, then you can fix the issue. If there are issues outside of validation section, please let the OpenPype team know.
+
+#### Repair Validation Issues
+
+All validators will give some description about what the issue is. You can inspect this by going into the validator through the arrow:
+
+
+
+You can expand the errors by clicking on them for more details:
+
+
+
+Some validator have repair actions, which will fix the issue. If you can identify validators with actions by the circle icon with an "A":
+
+
+
+To access the actions, you right click on the validator. If an action runs successfully, the actions icon will turn green. Once all issues are fixed, you can just hit the "Refresh" button and try to publish again.
+
+
+
+### Load
+
+`OpenPype > Load`
+
+
+
+The supported families for Harmony are:
+
+- `image`
+- `harmony.template`
+ - Only import is current supported for templates.
+- `harmony.palette`
+ - Loaded palettes are moved to the top of the colour stack, so they will acts as overrides. Imported palettes are left in the scene.
+- `workfile`
+ - Only of type `zip`.
+
+To load, right-click on the subset you want and choose a representation:
+
+
+
+:::note
+Loading templates or workfiles will import the contents into scene. Referencing is not supported at the moment, so you will have to load newer versions into the scene.
+:::
+
+### Manage
+
+`OpenPype > Manage`
+
+
+
+You can switch to a previous version of the image or update to the latest.
+
+
+
+
+:::note
+Images and image sequences will be loaded into the scene as read nodes can coloured green. On startup the pipeline checks for any outdated read nodes and colours them red.
+- Green = Up to date version in scene.
+- Red = Outdated version in scene.
+:::
diff --git a/website/docs/artist_hosts_maya.md b/website/docs/artist_hosts_maya.md
new file mode 100644
index 0000000000..1ed326ebe7
--- /dev/null
+++ b/website/docs/artist_hosts_maya.md
@@ -0,0 +1,693 @@
+---
+id: artist_hosts_maya
+title: Maya
+sidebar_label: Maya
+---
+
+## OpenPype global tools
+
+- [Set Context](artist_tools.md#set-context)
+- [Work Files](artist_tools.md#workfiles)
+- [Create](artist_tools.md#creator)
+- [Load](artist_tools.md#loader)
+- [Manage (Inventory)](artist_tools.md#inventory)
+- [Publish](artist_tools.md#publisher)
+- [Library Loader](artist_tools.md#library-loader)
+
+## Working with OpenPype in Maya
+
+OpenPype is here to ease you the burden of working on project with lots of
+collaborators, worrying about naming, setting stuff, browsing through endless
+directories, loading and exporting and so on. To achieve that, OpenPype is using
+concept of being _"data driven"_. This means that what happens when publishing
+is influenced by data in scene. This can by slightly confusing so let's get to
+it with few examples.
+
+## Publishing models
+
+### Intro
+
+Publishing models in Maya is pretty straightforward. Create your model as you
+need. You need to adhere to specifications of your studio that can be different
+between studios and projects but by default your geometry has to be named properly.
+For example `sphere_GEO` or `cube1_GEO`. Geometry needs to have freezed transformations
+and must reside under one group, for example `model_GRP`.
+
+
+
+Note that `sphere_GEO` has frozen transformations.
+
+### Creating instance
+
+Now create **Model instance** from it to let OpenPype know what in the scene you want to
+publish. Go **OpenPype โ Create... โ Model**
+
+
+
+`Asset` field is a name of asset you are working on - it should be already filled
+with correct name as you've started Maya or switched context to specific asset. You
+can edit that field to change it to different asset (but that one must already exists).
+
+`Subset` field is a name you can decide on. It should describe what kind of data you
+have in the model. For example, you can name it `Proxy` to indicate that this is
+low resolution stuff. See [Subset](artist_concepts#subset).
+
+:::note LOD support
+By changing subset name you can take advantage of _LOD support_ in OpenPype. Your
+asset can contain various resolution defined by different subsets. You can then
+switch between them very easy using [Inventory (Manage)](artist_tools#inventory).
+There LODs are conveniently grouped so they don't clutter Inventory view.
+
+Name your subset like `main_LOD1`. Important part is that `_LOD1`. You can have as many LODs as you need.
+:::
+
+Read-only field just under it show final subset name, adding subset field to
+name of the group you have selected.
+
+`Use selection` checkbox will use whatever you have selected in Outliner to be
+wrapped in Model instance. This is usually what you want. Click on **Create** button.
+
+You'll notice then after you've created new Model instance, there is new set
+in Outliner called after your subset, in our case it is `modelMain`.
+
+And that's it, you have your first model ready to publish.
+
+Now save your scene (if you didn't do it already). You will notice that path
+in Save dialog is already set to place where scenes related to modeling task on
+your asset should reside. As in our case we are working on asset called
+**Ben** and on task **modeling**, path relative to your project directory will be
+`project_XY/assets/ben/work/modeling`. Let's save our scene as `model_test_v01`.
+
+### Publishing models
+
+Now let's publish it. Go **OpenPype โ Publish...**. You will be presented with following window:
+
+
+
+Note that content of this window can differs by your pipeline configuration.
+For more detail see [Publisher](artist_tools#publisher).
+
+Items in left column are instances you will be publishing. You can disable them
+by clicking on square next to them. Green square indicate they are ready for
+publishing, red means something went wrong either during collection phase
+or publishing phase. Empty one with gray text is disabled.
+
+See that in this case we are publishing from scene file `model_test_v01.mb` in
+Maya model named `modelMain (ben)` (next item). Publishing of workfile is
+currenly disabled (last item).
+
+Right column lists all tasks that are run during collection, validation,
+extraction and integration phase. White items are optional and you can disable
+them by clicking on them.
+
+Lets do dry-run on publishing to see if we pass all validators. Click on flask
+icon at the bottom. Validators are run. Ideally you will end up with everything
+green in validator section.
+
+### Fixing problems
+
+To make things interesting, I intentionally forgot to freeze transformations
+on `sphere_GEO` as I know it will trigger validator designed to check just this.
+
+
+
+You can see our model is now marked red in left column and in right we have
+red box next to `Transform Zero (Freeze)` validator.
+
+You can click on arrow next to it to see more details:
+
+
+
+From there you can see in **Records** entry that there is problem with `sphere_GEO`.
+Some validators have option to fix problem for you or just select objects that
+cause trouble. This is the case with our failed validator.
+
+In main overview you can notice little up arrow in a circle next to validator
+name. Right click on it and you can see menu item `select invalid`. This
+will select offending object in Maya.
+
+Fix is easy. Without closing Publisher window we just freeze transformations.
+Then we need to reset it to make it notice changes we've made. Click on arrow
+circle button at the bottom and it will reset Publisher to initial state. Run
+validators again (flask icon) to see if everything is ok.
+
+It should be now. Write some comment if you want and click play icon button
+when ready.
+
+Publish process will now take its course. Depending on data you are publishing
+it can take a while. You should end up with everything green and message
+**Finished successfully ...** You can now close publisher window.
+
+To check for yourself that model is published, open
+[Asset Loader](artist_tools#loader) - **OpenPype โ Load...**.
+There you should see your model, named `modelMain`.
+
+## Look development
+
+Look development in OpenPype is easy. It helps you with versioning different
+kinds of shaders and easy switching between them.
+
+Let se how it works.
+
+### Loading model
+
+In this example I have already published model of Buddha. To see how to publish
+model with OpenPype see [Publishing Model](artist_hosts_maya#publishing-models).
+
+First of lets start with empty scene. Now go **OpenPype โ Load...**
+
+
+
+Here I am loading `modelBuddha`, its version 1 for asset **foo**. Just right-click
+on it and select **Reference (abc)**. This will load model into scene as alembic.
+Now you can close Loader window.
+
+### Creating look
+
+Now you can create whatever look you want. Assign shaders, textures, etc. to model.
+In my case, I assigned simple Arnolds _aiSurfaceShader_ and changed its color to red.
+
+
+
+I am quite happy with it so I want to publish it as my first look.
+
+### Publishing look
+
+Select your model in outliner and ho **OpenPype โ Create...**. From there
+select **Look**. Make sure `use selection` checkbox is checked.
+Mine subset name is `Main`. This will create _Look instance_ with a name **lookMain**.
+
+Close _Creator_ window.
+
+Now save your scene, give it some sensible name. Next, go **OpenPype โ Publish**.
+This process is almost identical as publishing models, only different _Validators_
+and other plugins will be used.
+
+This should be painless and cause no trouble so go ahead, click play icon button at
+the bottom and it will publish your look.
+
+:::note publishing multiple looks
+You can reference same model into scene multiple times, change materials on every
+instance with what you need. Then on every model create _Look instance_. When
+publishing all those _Look instances_ will be published at same time.
+:::
+
+### Loading looks into models
+
+Now lets see how look are applied. Start new empty scene, load your published
+model there as before (using _Reference (abc)_). If you didn't notice until now,
+there are few yellow icons in left shelf:
+
+
+
+Those are shortcuts for **Look Manager**, [Work Files](artist_tools.md#workfiles),
+[Load](artist_tools.md#loader), and [Manage (Inventory)](artist_tools.md#inventory).
+
+Those can be found even in top menu, but that depends on your studio setup.
+
+You are interested now in **Look Manager** - first item with brush icon. Select
+your Buddha model and open **Look Manager**.
+
+
+
+This is **Look Manager** window. Yours would be empty until you click **Get All Assets**
+or **Get Assets From Selection**. You can use later to quick assign looks if you have
+multiple assets loaded in scene. Click on one of those button now.
+
+You should now see all assets and their subsets loaded in scene, and on right side
+all applicable published looks.
+
+Select you asset and on the right side right click on `Main` look. Apply it.
+
+You notice that Buddha model is now red, materials you've published are now applied
+to it.
+
+That way you can create looks as you want and version them using OpenPype.
+
+## Setting scene data
+
+Maya settings concerning framerate, resolution and frame range are handled by
+OpenPype. If set correctly in Ftrack, Maya will validate you have correct fps on
+scene save and publishing offering way to fix it for you.
+
+For resolution and frame range, use **OpenPype โ Reset Frame Range** and
+**OpenPype โ Reset Resolution**
+
+
+## Creating rigs with OpenPype
+
+Creating and publishing rigs with OpenPype follows similar workflow as with
+other data types. Create your rig and mark parts of your hierarchy in sets to
+help OpenPype validators and extractors to check it and publish it.
+
+### Preparing rig for publish
+
+When creating rigs, it is recommended (and it is in fact enforced by validators)
+to separate bones or driving objects, their controllers and geometry so they are
+easily managed. Currently OpenPype doesn't allow to publish model at the same time as
+its rig so for demonstration purposes, I'll first create simple model for robotic
+arm, just made out of simple boxes and I'll publish it.
+
+
+
+For more information about publishing models, see [Publishing models](artist_hosts_maya#publishing-models).
+
+Now lets start with empty scene. Load your model - **OpenPype โ Load...**, right
+click on it and select **Reference (abc)**.
+
+I've created few bones and their controllers in two separate
+groups - `rig_GRP` and `controls_GRP`. Naming is not important - just adhere to
+your naming conventions.
+
+Then I've put everything into `arm_rig` group.
+
+When you've prepared your hierarchy, it's time to create *Rig instance* in OpenPype.
+Select your whole rig hierarchy and go **OpenPype โ Create...**. Select **Rig**.
+Set is created in your scene to mark rig parts for export. Notice that it has
+two subsets - `controls_SET` and `out_SET`. Put your controls into `controls_SET`
+and geometry to `out_SET`. You should end up with something like this:
+
+
+
+### Publishing rigs
+
+Publishing rig is done in same way as publishing everything else. Save your scene
+and go **OpenPype โ Publish**. When you run validation you'll mostly run at first into
+few issues. Although number of them will seem to be intimidating at first, you'll
+find out they are mostly minor things easily fixed.
+
+* **Non Duplicate Instance Members (ID)** - This will most likely fail because when
+creating rigs, we usually duplicate few parts of it to reuse them. But duplication
+will duplicate also ID of original object and OpenPype needs every object to have
+unique ID. This is easily fixed by **Repair** action next to validator name. click
+on little up arrow on right side of validator name and select **Repair** form menu.
+
+* **Joints Hidden** - This is enforcing joints (bones) to be hidden for user as
+animator usually doesn't need to see them and they clutter his viewports. So
+well behaving rig should have them hidden. **Repair** action will help here also.
+
+* **Rig Controllers** will check if there are no transforms on unlocked attributes
+of controllers. This is needed because animator should have ease way to reset rig
+to it's default position. It also check that those attributes doesn't have any
+incoming connections from other parts of scene to ensure that published rig doesn't
+have any missing dependencies.
+
+### Loading rigs
+
+You can load rig with [Loader](artist_tools.md#loader). Go **OpenPype โ Load...**,
+select your rig, right click on it and **Reference** it.
+
+## Point caches
+OpenPype is using Alembic format for point caches. Workflow is very similar as
+other data types.
+
+### Creating Point Caches
+
+To create point cache just create whatever hierarchy you want and animate it.
+Select its root and Go **OpenPype โ Create...** and select **Point Cache**.
+
+After that, publishing will create corresponding **abc** files.
+
+Example setup:
+
+
+
+### Loading Point Caches
+
+Loading point cache means creating reference to **abc** file with Go **OpenPype โ Load...**.
+
+Example result:
+
+
+
+## Set dressing in Maya
+
+Set dressing is term for easily populate complex scenes with individual parts.
+OpenPype allows to version and manage those sets.
+
+### Publishing Set dress / Layout
+
+Working with Set dresses is very easy. Just load your assets into scene with
+[Loader](artist_tools.md#loader) (**OpenPype โ Load...**). Populate your scene as
+you wish, translate each piece to fit your need. When ready, select all imported
+stuff and go **OpenPype โ Create...** and select **Set Dress** or **Layout**.
+This will create set containing your selection and marking it for publishing.
+
+:::note set dress vs layout
+Currently *set dress* and *layout* are functionally identical
+:::
+
+Now you can publish is with **OpenPype โ Publish**.
+
+### Loading Set dress / Layout
+
+You can load Set dress / Layout using [Loader](artist_tools.md#loader)
+(**OpenPype โ Load...**). Select you layout or set dress, right click on it and
+select **Reference Maya Ascii (ma)**. This will populate your scene with all those
+models you've put into layout.
+
+## Rendering with OpenPype
+
+OpenPype in Maya can be used for submitting renders to render farm and for their
+subsequent publishing. Right now OpenPype support [AWS Thinkbox Deadline](https://www.awsthinkbox.com/deadline)
+and [Virtual Vertex Muster](https://www.vvertex.com/overview/).
+
+* For setting up Muster support see [admin section](admin_config#muster)
+* For setting up Deadline support see [here](admin_config#aws-thinkbox-deadline)
+
+:::note Muster login
+Muster is now configured so every user must log in to get authentication support. If OpenPype founds out this token is missing or expired, it will ask again for credentials.
+:::
+
+### Creating basic render setup
+
+If you want to submit your render to farm, just follow these simple steps.
+
+#### Preparing scene
+
+Lets start with empty scene. First I'll pull in my favorite Buddha model.
+**OpenPype โ Load...**, select model and right+click to pop up context menu. From
+there just click on **Reference (abc)**.
+
+Next, I want to be sure that I have same frame range as is set on shot I am working
+on. To do this just **OpenPype โ Reset Frame Range**. This should set Maya timeline to same
+values as they are set on shot in *Ftrack* for example.
+
+I have my time set, so lets create some animation. We'll turn Buddha model around for
+50 frames (this is length of my timeline).
+
+Select model, go to first frame, key Y axis rotation, go to last frame, enter 360 to
+**Channel Editor** Y rotation, key it and its done. If you are not sure how to do it,
+you are probably reading wrong documentation.
+
+Now let set up lights, ground and camera. I am lazy so I create Arnolds Skydome light:
+**Arnold โ Lights โ Skydome Light**. As ground simple Plane will suffice and I'll set
+my perspective view as I like and create new camera from it (`CTRL+SHIFT+C`) and rename
+it from `persp1` to `mainCamera`.
+
+One last thing, I'll assign basic *aiSurfaceShader* to my Buddha and do some little
+tweaks on it.
+
+#### Prepare scene for submission
+
+As we have working simple scene we can start preparing it for rendering. OpenPype is fully utilizing
+Render Setup layers for this. First of all, we need to create *Render instance* to tell OpenPype what
+to do with renders. You can easily render locally or on render farm without it, but *Render instance*
+is here to mark render layers you want to publish.
+
+Lets create it. Go **OpenPype โ Create...**. There select **Render** from list. If you keep
+checked **Use selection** it will use your current Render Layers (if you have them). Otherwise,
+if no render layers is present in scene, it will create one for you named **Main** and under it
+default collection with `*` selector.
+
+No matter if you use *Deadline* or *Muster*, OpenPype will try to connect to render farm and
+fetch machine pool list.
+
+:::note Muster login
+This might fail on *Muster* in the event that you have expired authentication token. In that case, you'll be presented with login window. Nothing will be created in the scene until you log in again and do create **Render** again.
+:::
+
+So now my scene now looks like this:
+
+
+
+You can see that it created `renderingMain` set and under it `LAYER_Main`. This set corresponds to
+**Main** render layer in Render Setup. This was automatically created because I had not created any
+render layers in scene before. If you already have layers and you use **Use selection**, they will
+appear here, prefixed with `LAYER_`. Those layer set are created whenever you create new layer in
+Render Setup and are deleted if you delete layer in Render Setup. However if you delete `LAYER_` set,
+layer in Render Setup isn't deleted. It just means it won't be published.
+
+Creating *Render instance* will also set image prefix in render settings to OpenPype defaults based on
+renderer you use - for example if you render with Arnold, it is `maya///_`.
+
+There are few setting on *Render instance* `renderingMain` in **Attributes Editor**:
+
+
+
+Few options that needs explaining:
+
+* `Primary Pool` - here is list of pool fetched from server you can select from.
+* `Suspend publish Job` - job sent to farm will not start render automatically
+but is in *waiting* state.
+* `Extend Frames` - if checked it will add new frames to previous render, so you can
+extend previous image sequence.
+* `Override Existing Frame` - will overwrite file in destination if they exists
+* `Priority` is priority of job on farm
+* `Frames Per Task` is number of sequence division between individual tasks (chunks)
+making one job on farm.
+
+Now if you run publish, you notice there is in right column new item called
+`Render Layers` and in it there is our new layer `Main (999_abc_0010) [1-10]`. First part is
+layer name, second `(999_abc_0010)` is asset name and rest is frame range.
+
+
+
+You see I already tried to run publish but was stopped by few errors. Lets go
+through them one by one just to see what we need to set up further in scene for
+successful publish.
+
+**No Default Cameras Renderable** is telling me:
+
+```fix
+Renderable default cameras found: [u'|persp|perspShape']
+```
+
+and so can be resolved by simple change in *Main* layer render settings.
+All I have to do is just remove the `persp` camera from render settings and add there correct camera.
+
+This leaves me only with **Render Settings** error. If I click on it to see
+details, I see it has problem with animation not being enabled:
+
+```fix
+Animation needs to be enabled. Use the same frame for start and end to render single frame
+```
+
+Go to **Render Settings**, select your render layer and in **Common** tab change
+in **File Output** `Frame/Animation ext` to whatever you want, just not _Single Frame_.
+Set **Frame Range** `Start frame` and `End frame` according your needs.
+
+If you run into problems with *image file prefix* - this should be set correctly when
+creating *Render instance*, but you can tweak it. It needs to begin with `maya/` token
+to avoid render conflicts between DCCs. It needs to have `` or `` (vray) and
+`` or `` (vray). If you have more then one renderable cameras, add `` token.
+
+Sane default for arnold, redshift or renderman is:
+
+```fix
+maya//_
+```
+
+and for vray:
+
+```fix
+maya//
+```
+
+Doing **OpenPype โ Reset Resolution** will set correct resolution on camera.
+
+Scene is now ready for submission and should publish without errors.
+
+:::tip what happens when I publish my render scene
+When publishing is finished, job is created on farm. This job has one more dependent job connected to itself.
+When render is finished, this other job triggers in and run publish again, but this time it is publishing rendered image sequence and creating quicktime movie for preview from it. Only those rendered sequences that have **beauty** AOV get preview as it doesn't make sense to make it for example from cryptomatte.
+:::
+
+### Attaching render to subset
+
+You can create render that will be attached to another subset you are publishing, rather than being published on its own. Let's assume, you want to render a model turnaround.
+In the scene from where you want to publish your model create *Render subset*. Prepare your render layer as needed and then drag
+model subset (Maya set node) under corresponding `LAYER_` set under *Render instance*. During publish, it will submit this render to farm and
+after it is rendered, it will be attached to your model subset.
+
+## Render Setups
+
+### Publishing Render Setups
+
+OpenPype can publish whole **Render Settings** setup. You can then version in and load it to
+any Maya scene. This helps TDs to distribute per asset/shots render settings for Maya.
+
+To publish render settings, go **OpenPype โ Create...** and select **Render Setup Preset**.
+
+In your scene will appear set `rendersetup`. This one has no settings, only its presence
+in scene will trigger publishing of render settings.
+
+When you publish scene, current settings in **Render Settings** will be serialized to json file.
+
+### Loading Render Setups
+
+In any scene, you can load published render settings with **OpenPype โ Load...**. Select your published
+render setup settings, right+click on it and select **Load RenderSetup template**.
+
+This will load and parse json file and apply all setting there to your Render Setting.
+
+:::warning
+This will overwrite all setting you already have.
+:::
+
+## Reviews
+
+OpenPype supports creating review video for almost any type of data you want to publish.
+What we call review video is actually _playblast_ or _capture_ (depending on terminology
+you are familiar with) made from pre-defined camera in scene. This is very useful
+in cases where you want to add turntable preview of your model for example. But it can
+be used to generate preview for animation, simulations, and so on.
+
+### Setting scene for review extraction
+
+Lets see how review publishing works on simple scene. We will publish model with
+turntable preview video.
+
+I'll be using Stanford University dragon model. Start with empty scene.
+Create your model, import it or load from OpenPype. I'll just import model as OBJ
+file.
+
+After we have our model in, we need to set everything to be able to publish it
+as model - for detail see [Publishing models](artist_hosts_maya#publishing-models).
+
+To recap - freeze transforms, rename it to `dragon_GEO` and put it into group
+`dragon_GRP`. Then select this group and **OpenPype โ Create...** and choose **Model**.
+
+Now, lets create camera we need to generate turntable video. I prefer to animate
+camera itself and not model because all animation keys will be associated with camera
+and not model we want to publish.
+
+I've created camera, named it `reviewCamera` and parent it under `reviewRotation_LOC`
+locator. I set my timeline to 50 frames, key `reviewRotation_LOC` Y axis on frame
+1 to 0 and on frame 50 to 360. I've also set animation curve between those two keys
+to linear.
+
+To mark camera to be used for review, select camera `reviewCamera` and go **OpenPype โ Create...**
+and choose **Review**.
+
+This will create set `review` including selected camera. You can set few options
+on this set to control review video generation:
+
+* `Active` - control on/off state
+* `Frame Start` - starting frame for review
+* `Frame End` - end frame for review
+* `Handles` - number of handle frame before and after
+* `Step` - number of steps
+* `Fps` - framerate
+
+This is my scene:
+
+
+
+_* note that I had to fix UVs and normals on Stanford dragon model as it wouldn't pass
+model validators_
+
+### Publishing model with review
+
+You can now publish your model and generate review video. Go **OpenPype โ Publish...**,
+validate if you will, and publish it. During publishing, Maya will create _playblast_
+for whole frame range you've specified, then it will pass those frames to _ffmpeg_.
+That will create video file, pass it to another extractor creating burnins in it
+and finally uploading this video to ftrack with your model (or other type) published
+version. All parts of this process - like what burnins, what type of video file,
+settings for Maya playblast - can be customized by your TDs. For more information
+about customizing review process refer to [admin section](admin_presets_plugins).
+
+
+## Working with Yeti in OpenPype
+
+OpenPype can work with [Yeti](https://peregrinelabs.com/yeti/) in two data modes.
+It can handle Yeti caches and Yeti rigs.
+
+### Creating and publishing Yeti caches
+
+Let start by creating simple Yeti setup, just one object and Yeti node. Open new
+empty scene in Maya and create sphere. Then select sphere and go **Yeti โ Create Yeti Node on Mesh**
+Open Yeti node graph **Yeti โ Open Graph Editor** and create setup like this:
+
+
+
+It doesn't matter what setting you use now, just select proper shape in first
+*Import* node. Select your Yeti node and create *Yeti Cache instance* - **OpenPype โ Create...**
+and select **Yeti Cache**. Leave `Use selection` checked. You should end up with this setup:
+
+
+
+You can see there is `yeticacheDefault` set. Instead of *Default* it could be named with
+whatever name you've entered in `subset` field during instance creation.
+
+We are almost ready for publishing cache. You can check basic settings by selecting
+Yeti cache set and opening *Extra attributes* in Maya **Attribute Editor**.
+
+
+
+Those attributes there are self-explanatory, but:
+
+- `Preroll` is number of frames simulation will run before cache frames are stored.
+This is usefull to "steady" simulation for example.
+- `Frame Start` from what frame we start to store cache files
+- `Frame End` to what frame we are storing cache files
+- `Fps` of cache
+- `Samples` how many time samples we take during caching
+
+You can now publish Yeti cache as any other types. **OpenPype โ Publish**. It will
+create sequence of `.fur` files and `.fursettings` metadata file with Yeti node
+setting.
+
+### Loading Yeti caches
+
+You can load Yeti cache by **OpenPype โ Load ...**. Select your cache, right+click on
+it and select **Load Yeti cache**. This will create Yeti node in scene and set its
+cache path to point to your published cache files. Note that this Yeti node will
+be named with same name as the one you've used to publish cache. Also notice that
+when you open graph on this Yeti node, all nodes are as they were in publishing node.
+
+### Creating and publishing Yeti Rig
+
+Yeti Rigs are working in similar way as caches, but are more complex and they deal with
+other data used by Yeti, like geometry and textures.
+
+Let's start by [loading](artist_hosts_maya#loading-model) into new scene some model.
+I've loaded my Buddha model.
+
+Create select model mesh, create Yeti node - **Yeti โ Create Yeti Node on Mesh** and
+setup similar Yeti graph as in cache example above.
+
+Then select this Yeti node (mine is called with default name `pgYetiMaya1`) and
+create *Yeti Rig instance* - **OpenPype โ Create...** and select **Yeti Cache**.
+Leave `Use selection` checked.
+
+Last step is to add our model geometry to rig instance, so middle+drag its
+geometry to `input_SET` under `yetiRigDefault` set representing rig instance.
+Note that its name can differ and is based on your subset name.
+
+
+
+Save your scene and ready for publishing our new simple Yeti Rig!
+
+Go to publish **OpenPype โ Publish** and run. This will publish rig with its geometry
+as `.ma` scene, save Yeti node settings and export one frame of Yeti cache from
+the beginning of your timeline. It will also collect all textures used in Yeti
+node, copy them to publish folder `resource` directory and set *Image search path*
+of published node to this location.
+
+:::note Collect Yeti Cache failure
+If you encounter **Collect Yeti Cache** failure during collecting phase, and the error is like
+```fix
+No object matches name: pgYetiMaya1Shape.cbId
+```
+then it is probably caused by scene not being saved before publishing.
+:::
+
+### Loading Yeti Rig
+
+You can load published Yeti Rigs as any other thing in OpenPype - **OpenPype โ Load ...**,
+select you Yeti rig and right+click on it. In context menu you should see
+**Load Yeti Cache** and **Load Yeti Rig** items (among others). First one will
+load that one frame cache. The other one will load whole rig.
+
+Notice that although we put only geometry into `input_SET`, whole hierarchy was
+pulled inside also. This allows you to store complex scene element along Yeti
+node.
+
+:::tip auto-connecting rig mesh to existing one
+If you select some objects before loading rig it will try to find shapes
+under selected hierarchies and match them with shapes loaded with rig (published
+under `input_SET`). This mechanism uses *cbId* attribute on those shapes.
+If match is found shapes are connected using their `outMesh` and `outMesh`. Thus you can easily connect existing animation to loaded rig.
+:::
diff --git a/website/docs/artist_hosts_nuke.md b/website/docs/artist_hosts_nuke.md
new file mode 100644
index 0000000000..1e02599570
--- /dev/null
+++ b/website/docs/artist_hosts_nuke.md
@@ -0,0 +1,145 @@
+---
+id: artist_hosts_nuke
+title: Nuke
+sidebar_label: Nuke
+---
+
+:::important
+After Nuke starts it will automatically **Apply All Settings** for you. If you are sure the settings are wrong just contact your supervisor and he will set them correctly for you in project database.
+:::
+
+:::note
+The workflows are identical for both. We are supporting versions **`11.0`** and above.
+:::
+
+## OpenPype global tools
+
+- [Set Context](artist_tools.md#set-context)
+- [Work Files](artist_tools.md#workfiles)
+- [Create](artist_tools.md#creator)
+- [Load](artist_tools.md#loader)
+- [Manage (Inventory)](artist_tools.md#inventory)
+- [Publish](artist_tools.md#publisher)
+- [Library Loader](artist_tools.md#library-loader)
+
+## Nuke specific tools
+
+
+
+
+### Set Frame Ranges
+
+Use this feature in case you are not sure the frame range is correct.
+
+##### Result
+
+- setting Frame Range in script settings
+- setting Frame Range in viewers (timeline)
+
+
+
+
+
+
+
+
+
+
+1. limiting to Frame Range without handles
+2. **Input** handle on start
+3. **Output** handle on end
+
+
+
+
+### Set Resolution
+
+
+
+
+
+This menu item will set correct resolution format for you defined by your production.
+
+##### Result
+
+- creates new item in formats with project name
+- sets the new format as used
+
+
+
+This menu item will set correct Colorspace definitions for you. All has to be configured by your production (Project coordinator).
+
+##### Result
+
+- set Colorspace in your script settings
+- set preview LUT to your viewers
+- set correct colorspace to all discovered Read nodes (following expression set in settings)
+
+
+
+It is usually enough if you once per while use this option just to make yourself sure the workfile is having set correct properties.
+
+##### Result
+
+- set Frame Ranges
+- set Colorspace
+- set Resolution
+
+
+
+
+
+
+
+
+
+### Build Workfile
+
+
+
+
+This tool will append all available subsets into an actual node graph. It will look into database and get all last [versions](artist_concepts.md#version) of available [subsets](artist_concepts.md#subset).
+
+
+##### Result
+
+- adds all last versions of subsets (rendered image sequences) as read nodes
+- adds publishable write node as `renderMain` subset
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/website/docs/artist_hosts_nukestudio.md b/website/docs/artist_hosts_nukestudio.md
new file mode 100644
index 0000000000..23301f53bf
--- /dev/null
+++ b/website/docs/artist_hosts_nukestudio.md
@@ -0,0 +1,284 @@
+---
+id: artist_hosts_nukestudio
+title: Hiero
+sidebar_label: Hiero / Nuke Studio
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+:::note
+All the information also applies to **_Nuke Studio_**, but for simplicity we only refer to Hiero. The workflows are identical for both. We are supporting versions **`11.0`** and above.
+:::
+
+
+## Hiero specific tools
+
+
+
+
+
+
+### Create Default Tags
+
+This tool will recreate all necessary OpenPype tags needed for successful publishing. It is automatically ran at start of the Hiero. Use this tool to manually re-create all the tags if you accidentaly delete them, or you want to reset them to default values.
+
+
+
+#### Result
+
+- Will create tags in Tags bin in case there were none
+- Will set all tags to default values if they have been altered
+
+## Publishing Shots
+
+
+
+
+
+
+With OpenPype, you can use Hiero as a starting point for creating project hierarchy in avalon and ftrack database (episodes, sequences, shots, folders etc.), publishing plates, reference quicktimes, audio and various soft effects that will be evailable later on for compositors and 3D artist to use.
+
+There are two ways to `Publish` data and create shots in database from Hiero. Use either context menu on right clicking selected clips or go to top `menu > OpenPype > Publish`.
+
+
+
+Keep in mind that the publishing currently works on selected shots
+
+Shot names for all the related plates that you want to publish (subsets) has to be the same to be correctly paired together (as it is shown in image).
+Note the layer **review** which contains `plateMainReview`.
+This media is just h264, 1920x1080 video for that will be used as preview of the actual `plateMain` subset and will be uploaded to Ftrack. We explain how to work with review tag in [**Reviewing**](#reviewing).
+
+
+:::important
+To to successfuly publish a shot from Hiero:
+1. At least one clip of your shot must be tagged with `Hierarchy`, `subset` and `handleStart/End`.
+2. Your source media must be pre-cut to correct length (including handles)
+:::
+
+### Tagging
+
+
+OpenPype's custom tags are used for defining shot parameters and to define which clips and how they are going to be published.
+
+If you want to add any properties to your clips you'll need to adjust values on the given tag and then drag it onto the clip.
+
+
+
+
+
+
+
+
+1. double click on preferable tag and drag&drop it to selected clip(s)
+2. Basic set of tags on clip (usually subset: plateMain)
+3. Additionally select clip and edit its parameters
+4. Edit parameters here but do not touch `family`
+
+
+
+
+:::important
+Only clips with `subset` will be directly processed for publishing.
+:::
+
+### Custom Tags Details
+
+#### Asset related
+| Icon | Description | Editable | Options |
+| ------------------- | ---------------------------------------------------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------------------------- |
+| ![Hierarchy][hi] | Define parent hierarchy of the shot. Usually combined with one of subset tags. | root, folder, sequence, episode, shot | example: {sequence} = name of Hiero sequence or overwrite by any text without `-` or `_` |
+| ![Frame Start][fst] | Set start frame of the shot. Using `"source"` will keep original frame numbers. | number | int `number` or `"source"` |
+
+
+#### Subsets
+
+| Icon | Description | Editable | Options |
+| ------------------ | ------------------------------------------------------------------------------ | -------- | --------------------------------- |
+| ![Review][rew] | Choose which track holds review quicktime for the given shot. | track | `"review"` or other track name |
+| ![Plate Main][pmn] | Main plate subset identifier | subset | `"main"` or other |
+| ![Plate FG][pfg] | Foreground plate subset identifier (comped over the main plate) | subset | `"Fg##"` or other |
+| ![Plate BG][pbg] | Background plate subset identifier (comped under the main plate) | subset | `"Bg##"` or other |
+| ![Plate Ref][ref] | Reference plate subset identifier | subset | `"Ref"` or other |
+
+#### Subset's attributes
+
+| Icon | Description | Editable | Options |
+| ------------------ | --------------------------------------------------------------------------------- | ------------------- | ----------------------------- |
+| ![Resolution][rsl] | Use source resolution instead of sequence settings. | none | |
+| ![Retiming][rtm] | Publish retime metadata to shot if retime or time-warp found on clip | marginIn, marginOut | int `number` frame cushioning |
+| ![Lens][lns] | Specify lens focal length metadata (work in progress) | focalLengthMm | int `number` |
+
+#### Handles
+
+| Icon | Description | Editable | Options |
+| --------------------- | ---------------------------------------------------------------------------- | -------- | -------------------------- |
+| ![Handles Start][ahs] | Handles at the start of the clip/shot | value | change to any int `number` |
+| ![Handles End][ahe] | Handles at the end of a clip/shot | value | change to any int `number` |
+
+[hi]: assets/nks_icons/hierarchy.png
+
+[ahs]: assets/nks_icons/3_add_handles_start.png
+
+[ahe]: assets/nks_icons/1_add_handles_end.png
+
+[rsl]: assets/nks_icons/resolution.png
+
+[rtm]: assets/nks_icons/retiming.png
+
+[rew]: assets/nks_icons/review.png
+
+[pmn]: assets/nks_icons/z_layer_main.png
+
+[pfg]: assets/nks_icons/z_layer_fg.png
+
+[pbg]: assets/nks_icons/z_layer_bg.png
+
+[lns]: assets/nks_icons/lense1.png
+
+[fst]: assets/nks_icons/frame_start.png
+
+[ref]: assets/nks_icons/reference.png
+
+### Handles
+
+OpenPype requires handle information in shot metadata even if they are set to 0.
+For this you need to add handles tags to the main clip (Should be the one with Hierarchy tag).
+This way we are defining a shot property. In case you wish to have different
+handles on other subsets (e.g. when plateBG is longer than plateFG) you can add handle tags with different value to this longer plate.
+
+If you wish to have different handles length (say 100) than one of the default tags, simply drag `start: add 10 frames` to your clip
+and then go to clips tags, find the tag, then replace 10 for 100 in name and also change value to 100.
+This is also explained following tutorial [`Extending premade handles tags`](#extending-premade-handles-tags)
+
+:::caution
+Even if you don't need any handles you have to add `start: add 0 frames` and `end: add 0 frames` tags to the clip with Hierarchy tag.
+:::
+
+### Retiming
+
+OpenPype is also able to publish retiming parameters into the database.
+Any clip with **editorial**/**retime** or **TimeWarp** soft effect has to be tagged with `Retiming` tag, if you want this information preserved during publishing.
+
+Any animation on **TimeWarp** is also preserved and reapplied in _Nuke_.
+
+You can only combine **retime** and with a single **Timewarp**.
+
+### Reviewing
+
+There are two ways to publish reviewable **h264 mov** into OpenPype (and Ftrack).
+
+
+
+
+
+
+
+The first one uses the Review Tag pointing to the track that holds the reviewable quicktimes for plates.
+
+This tag metadata has `track` key inside that points to `review` track by default. If you drop this tag onto any publishable clip on the timeline you're telling OpenPype "you will find quicktime version of this plate on `review` track (clips must have the same name)"
+
+In the image on the right we dropped it to **plateMain** clip. Then we renamed the layer tha hold reviewable quicktime called `plateMainReview`. You can see that the clip names are the same.
+
+
+
+
+
+
+
+
+
+1. `-review` suffix is added to publishing item label if any reviewable file is found
+2. `plateMain` clip is holding the Review tag
+3. layer name is `review` as it is used as default in _Review_ Tag in _track_
+4. name of clip is the same across all subsets
+
+
+
+
+
+
+
+
+Second way would be to add the **h264 mov 1920x1080** into the same folder
+as image sequence. The name of the file has to be the same as image sequence.
+Publisher will pick this file up and add it to the files list during collecting.
+This will also add `"- review"` to instance label in **Publish**.
+
+Example:
+
+- img seq: `image_sequence_name.0001.exr`
+- mov: `image_sequence_name.mov`
+
+
+
+
+
+--------------
+
+
+### LUT Workflow
+
+
+
+
+
+It is possible to publish Hiero soft effects for compositors to use later on. You can add the effect to a particular clip or to whole layer as shows on the picture. All clips
+below the `Video 6` layer (green arrow) will be published with the **LUT** subset which combines all the colour corrections from he soft effects. Any clips above the `Video 6` layer will have no **LUT** published with them.
+
+
+
+
+Any external Lut files used in the soft effects will be copied over to `resources` of the published subset folder `lutPlateMain` (in our example).
+
+:::note
+
+
+
+
+You cannot currently publish soft effects on their own because at the moment we only support soft effects as a part of other subset publishing. Image is demonstrating successful publishing.
+
+
+
+:::
+
+## Tutorials
+
+
+### Basic publishing with soft effects
+
+
+
+
+### Extending premade handles tags
+
+
diff --git a/website/docs/artist_hosts_photoshop.md b/website/docs/artist_hosts_photoshop.md
new file mode 100644
index 0000000000..7e84349565
--- /dev/null
+++ b/website/docs/artist_hosts_photoshop.md
@@ -0,0 +1,107 @@
+---
+id: artist_hosts_photoshop
+title: Photoshop
+sidebar_label: Photoshop
+---
+
+## Available Tools
+
+- [Work Files](artist_tools.md#workfiles)
+- [Create](artist_tools.md#creator)
+- [Load](artist_tools.md#loader)
+- [Publish](artist_tools.md#publisher)
+- [Manage](artist_tools.md#inventory)
+
+## Setup
+
+To install the extension, download, install [Anastasyi's Extention Manager](https://install.anastasiy.com/). Open Anastasyi's Extension Manager and select Photoshop in menu. Then go to `{path to pype}/repos/avalon-core/avalon/photoshop/extension.zxp`. Drag extension.zxp and drop it to Anastasyi's Extension Manager. The extension will install itself.
+
+## Usage
+
+When you launch Photoshop you will be met with the Workfiles app. If dont have any previous workfiles, you can just close this window.
+
+In Photoshop you can find the tools in the `OpenPype` extension:
+
+
+
+You can show the extension panel by going to `Window` > `Extensions` > `OpenPype`.
+
+### Create
+
+When you have created an image you want to publish, you will need to create special groups or tag existing groups. To do this open the `Creator` through the extensions `Create` button.
+
+
+
+With the `Creator` you have a variety of options to create:
+
+- Check `Use selection` (A dialog will ask whether you want to create one image per selected layer).
+ - Yes.
+ - No selection.
+ - This will create a single group named after the `Subset` in the `Creator`.
+ - Single selected layer.
+ - The selected layer will be grouped under a single group named after the selected layer.
+ - Single selected group.
+ - The selected group will be tagged for publishing.
+ - Multiple selected items.
+ - Each selected group will be tagged for publishing and each layer will be grouped individually.
+ - No.
+ - All selected layers will be grouped under a single group named after the `Subset` in the `Creator`.
+- Uncheck `Use selection`.
+ - This will create a single group named after the `Subset` in the `Creator`.
+
+### Publish
+
+When you are ready to share some work, you will need to publish. This is done by opening the `Pyblish` through the extensions `Publish` button.
+
+
+
+This tool will run through checks to make sure the contents you are publishing is correct. Hit the "Play" button to start publishing.
+
+You may encounter issues with publishing which will be indicated with red squares. If these issues are within the validation section, then you can fix the issue. If there are issues outside of validation section, please let the OpenPype team know.
+
+#### Repair Validation Issues
+
+All validators will give some description about what the issue is. You can inspect this by going into the validator through the arrow:
+
+
+
+You can expand the errors by clicking on them for more details:
+
+
+
+Some validator have repair actions, which will fix the issue. If you can identify validators with actions by the circle icon with an "A":
+
+
+
+To access the actions, you right click on the validator. If an action runs successfully, the actions icon will turn green. Once all issues are fixed, you can just hit the "Refresh" button and try to publish again.
+
+
+
+### Load
+
+When you want to load existing published work, you can load in smart layers through the `Loader`. You can reach the `Loader` through the extension's `Load` button.
+
+
+
+The supported families for Photoshop are:
+
+- `image`
+
+To load an image, right-click on the subset you want and choose a representation:
+
+
+
+### Manage
+
+Now that we have some images loaded, we can manage which version is loaded. This is done through the `Scene Inventory`. You can reach it through the extension's `Manage` button.
+
+:::note
+Loaded images has to stay as smart layers in order to be updated. If you rasterize the layer, you cannot update it to a different version.
+:::
+
+
+
+You can switch to a previous version of the image or update to the latest.
+
+
+
diff --git a/website/docs/artist_hosts_unreal.md b/website/docs/artist_hosts_unreal.md
new file mode 100644
index 0000000000..1c2c22937c
--- /dev/null
+++ b/website/docs/artist_hosts_unreal.md
@@ -0,0 +1,40 @@
+---
+id: artist_hosts_unreal
+title: Unreal
+sidebar_label: Unreal
+---
+
+## Introduction
+
+OpenPype supports Unreal in similar ways as in other DCCs Yet there are few specific you need to be aware of.
+
+### Project naming
+
+Unreal doesn't support project names starting with non-alphabetic character. So names like `123_myProject` are
+invalid. If OpenPype detects such name it automatically prepends letter **P** to make it valid name, so `123_myProject` will become `P123_myProject`. There is also soft-limit on project name length to be shorter then 20 characters. Longer names will issue warning in Unreal Editor that there might be possible side effects.
+
+## OpenPype global tools
+
+OpenPype global tools can be found in *Window* main menu:
+
+
+
+- [Create](artist_tools.md#creator)
+- [Load](artist_tools.md#loader)
+- [Manage (Inventory)](artist_tools.md#inventory)
+- [Publish](artist_tools.md#publisher)
+- [Library Loader](artist_tools.md#library-loader)
+
+## Static Mesh
+
+### Loading
+
+To import Static Mesh model, just choose **OpenPype โ Load ...** and select your mesh. Static meshes are transfered as FBX files as specified in [Unreal Engine 4 Static Mesh Pipeline](https://docs.unrealengine.com/en-US/Engine/Content/Importing/FBX/StaticMeshes/index.html). This action will create new folder with subset name (`unrealStaticMeshMain_CON` for example) and put all data into it. Inside, you can find:
+
+
+
+In this case there is **lambert1**, material pulled from Maya when this static mesh was published, **unrealStaticMeshCube** is the geometry itself, **unrealStaticMeshCube_CON** is a *AssetContainer* type and is there to mark this directory as Avalon Container (to track changes) and to hold OpenPype metadata.
+
+### Publishing
+
+Publishing of Static Mesh works in similar ways. Select your mesh in *Content Browser* and **OpenPype โ Create ...**. This will create folder named by subset you've choosen - for example **unrealStaticMeshDefault_INS**. It this folder is that mesh and *Avalon Publish Instance* asset marking this folder as publishable instance and holding important metadata on it. If you want to publish this instance, go **OpenPype โ Publish ...**
\ No newline at end of file
diff --git a/website/docs/artist_publish.md b/website/docs/artist_publish.md
new file mode 100644
index 0000000000..a7cb7a1bad
--- /dev/null
+++ b/website/docs/artist_publish.md
@@ -0,0 +1,184 @@
+---
+id: artist_publish
+title: Publishing
+sidebar_label: Publishing
+---
+
+## What is publishing?
+
+A process of exporting particular data from your work scene to be shared with others.
+
+Think of publishing as a checkpoint between two people, making sure that we catch mistakes as soon as possible and donโt let them pass through pipeline step that would eventually need to be repeated if these mistakes are not caught.
+
+Every time you want to share a piece of work with others (be it camera, model, textures, animation or whatever), you need toย publishย this data. The main reason is to save time down the line and make it very clear what can and cannot be used in production.
+This process should mostly be handled by publishing scripts but in certain cases might have to be done manually.
+
+Published assets should comply to these rules:
+
+- Clearly named, based on internal naming conventions.
+- Versioned (with master version created for certain types of assets).
+- Immediately usable, without any dependencies to unpublished assets or work files.
+- Immutable
+
+All of these go into the publish folder for the given entity (shot, asset, sequence)
+
+:::note
+Keep in mind that while publishing the data might take you some extra time, it will save much more time in the long run when your colleagues donโt need to dig through your work files trying to understand them and find that model you saved by hand.
+:::
+
+## Families:
+
+The Instances are categorized into โfamiliesโ based on what type of data they contain. Some instances might have multiple families if needed. A shot camera will for example have families 'camera' and 'review' to indicate that it's going to be used for review quicktime, but also exported into a file on disk.
+
+Following family definitions and requirements are OpenPype defaults and what we consider good industry practice, but most of the requirements can be easily altered to suit the studio or project needs.
+Here's a list of supported families
+
+| Family | Comment | Example Subsets |
+| ----------------------- | ------------------------------------------------ | ------------------------- |
+| [Model](#model) | Cleaned geo without materials | main, proxy, broken |
+| [Look](#look) | Package of shaders, assignments and textures | main, wet, dirty |
+| [Rig](#rig) | Characters or props with animation controls | main, deform, sim |
+| [Assembly](#assembly) | A complex model made from multiple other models. | main, deform, sim |
+| [Layout](#layout) | Simple representation of the environment | main, |
+| [Setdress](#setdress) | Environment containing only referenced assets | main, |
+| [Camera](#camera) | May contain trackers or proxy geo | main, tracked, anim |
+| [Animation](#animation) | Animation exported from a rig. | characterA, vehicleB |
+| [Cache](#cache) | Arbitrary animated geometry or fx cache | rest, ROM , pose01 |
+| MayaAscii | Maya publishes that don't fit other categories | |
+| [Render](#render) | Rendered frames from CG or Comp | |
+| RenderSetup | Scene render settings, AOVs and layers | |
+| Plate | Ingested, transcode, conformed footage | raw, graded, imageplane |
+| Write | Nuke write nodes for rendering | |
+| Image | Any non-plate image to be used by artists | Reference, ConceptArt |
+| LayeredImage | Software agnostic layered image with metadata | Reference, ConceptArt |
+| Review | Reviewable video or image. | |
+| Matchmove | Matchmoved camera, potentially with geometry | main |
+| Workfile | Backup of the workfile with all its content | uses the task name |
+| Nukenodes | Any collection of nuke nodes | maskSetup, usefulBackdrop |
+| Yeticache | Cached out yeti fur setup | |
+| YetiRig | Yeti groom ready to be applied to geometry cache | main, destroyed |
+| VrayProxy | Vray proxy geometry for rendering | |
+| VrayScene | Vray full scene export | |
+| ArnodldStandin | All arnold .ass archives for rendering | main, wet, dirty |
+| LUT | | |
+| Nukenodes | | |
+| Gizmo | | |
+| Nukenodes | | |
+| Harmony.template | | |
+| Harmony.pallette | | |
+
+
+
+### Model
+
+Clean geometry without any material assignments. Published model can be as small as a single mesh, or as complex as a full building. That is purely up to the artist or the supervisor. Models can contain hierarchy defined by groups or nulls for better organisation.
+
+Apart from model subsets, we also support LODs as extra level on top of subset. To publish LODs, you just need to prepare subsets for publishing names `modelMySubsetName_LOD##`, if OpenPype finds `_LOD##` (hashes replaced with LOD level), it will automatically be considered a LOD of the given subset.
+
+Example Subsets:
+`modelMain`, `modelProxy`, `modelSculpt`, `modelBroken`, `modelMain_LOD01`, `modelMain_LOD02`
+
+Example representations:
+`.ABC`, `.MA`, `.MB`, `.BLEND`, `.OBJ`, `.FBX`
+
+
+### Look
+
+A package of materials, shaders, assignments, textures and attributes that collectively define a look of a model for rendering or preview purposes. This can usually be applied only to the model is was authored for, or its corresponding cache, however, material sharing across multiple models is also possible. A look should be fully self-contained and ready for rendering.
+
+Example Subsets:
+`lookMain`, `lookProxy`, `lookWet`, `lookDirty`, `lookBlue`, `lookRed`
+
+Example Representations:
+`.MA + .JSON`, `.MTLX (yet unsupported)`, `.BLEND`
+
+Please note that a look is almost never a single representation, but a combination of multiple.
+For example in Maya a look consists of `.ma` file with the shaders, `.json` file which
+contains the attributes and assignments and `/resources` folder with all the required textures.
+
+
+### Rig
+
+Characters or props with animation controls or other parameters, ready to be referenced into a scene and animated. Animation Rigs tend to be very software specific, but in general they tend to consist of Geometry, Bones or Joints, Controllers and Deformers. OpenPype in maya supports both, self-contained rigs, that include everything in one file, but also rigs that use nested references to bring in geometry, or even skeleton. By default we bake rigs into a single file during publishing, but that behaviour can be turned off to keep the nested references live in the animation scenes.
+
+Example Subsets:
+`rigMain`, `rigMocap`, `rigSim`, `rigCamera`, `rigMuscle`
+
+Example Representations:
+`.MA`, `.MB`, `.BLEND`, `.HDA`
+
+
+### Assembly
+
+A subset created by combining two or more smaller subsets into a composed bigger asset.
+A good example would be a restaurant table asset with the cutlery and chairs included,
+that will eventually be loaded into a restaurant Set. Instead of loading each individual
+fork and knife for each table in the restaurant, we can first prepare `assemblyRestaurantTable` subset
+which will contain the table itself, with cutlery, flowers, plates and chairs nicely arranged.
+
+This table can then be loaded multiple times into the restaurant for easier scene management
+and updates.
+
+Extracted assembly doesn't contain any geometry directly, but rather information about all the individual subsets that are inside the assembly, their version and transformations. On top of that and alembic is exported which only holds any extra transforms and groups that are needed to fully re-create the original assembled scene.
+
+Assembly ca also be used as a sort of collection of elements that are often used together in the shots. For example if we're set dressing lot's of forest shots, it would make sense to make and assembly of all the forest elements for scattering so we don't have to load them individually into each shot.
+
+Example Subsets:
+`assemblyTable`, `assemblyForestElements`, `assemblyRoof`
+
+Example Representations:
+`.ABC + .JSON`
+
+
+
+### Setdress
+
+Fully prepared environment scene assembled from other previously published assets. Setdress should be ready for rendering as is, including any instancing, material assignments and other complex setups the environment requires. Due to this complexity, setdress is currently only publishable in the native file format of the host where it was created. In maya that would be `.ma` or `.mb` file.
+
+
+### Camera
+
+Clean virtual camera without any proprietary rigging, or host specific information. Considering how widely across the hosts published cameras are used in production, published camera should ideally be as simple and clean as possible to ensure consistency when loaded into various hosts.
+
+
+Example Representations:
+`.MA`, `.ABC`
+
+
+### Cache
+
+Geometry or effect with baked animation. Cache is usually exported as alembic,
+but can be potentially any other representation that makes sense in the given scenario.
+Cache is defined by the artist directly in the fx or animation scene.
+
+Example Subsets:
+`assemblyTable`, `assemblyForestElements`, `assemblyRoof`
+
+Example Representations:
+`.ABC`, `.VDB`, `.BGEO`
+
+
+### Animation
+
+Published result of an animation created with a rig. Animation can be extracted
+as animation curves, cached out geometry or even fully animated rig with all the controllers.
+Animation cache is usually defined by a rigger in the rig file of a character or
+by FX TD in the effects rig, to ensure consistency of outputs.
+
+Example Subsets:
+`animationBob_01`, `animationJack_02`, `animationVehicleA`
+
+Example Representations:
+`.MA`, `.ABC`, `.JSON`
+
+
+### Yeti Cache
+
+Cached out yeti fur simulation that originates from a yeti rig applied in the shot context.
+
+
+### Yeti Rig
+
+Yeti groom setup ready to be applied to a cached out character in the shot context.
+
+### Render
diff --git a/website/docs/artist_tools.md b/website/docs/artist_tools.md
new file mode 100644
index 0000000000..f03ea8e249
--- /dev/null
+++ b/website/docs/artist_tools.md
@@ -0,0 +1,414 @@
+---
+id: artist_tools
+title: Tools
+sidebar_label: Tools
+---
+
+## Set Context
+
+
+
+
+
+Any time your host app is open in defined context it can be changed to different hierarchy, asset or task within a project. This will allow you to change your opened session to any other asset, shot and tasks within the same project. This is useful particularly in cases where your host takes long time to start.
+
+
+
+
+
+:::note
+
+Notice that the window doesn't close after hitting `Accept` and confirming the change of context. This behaviour let's you keep the window open and change the context multiple times in a row.
+:::
+
+## Creator
+
+### Details
+
+Despite the name, Creator isn't for making new content in your scene, but rather taking what's already in it and creating all the metadata your content needs to be published.
+
+In Maya this means creating a set with everything you want to publish and assigning custom attributes to it so it get's picked up during publishing stage.
+
+In Nuke it's either converting an existing write node to a publishable one, or simply creating a write node with all the correct settings and outputs already set.
+
+### Usage
+
+1. select what you want to publish from your scenes
+2. Open *Creator* from OpenPype menu
+3. Choose what family (data type) you need to export
+4. Type the name for you export. This name is how others are going to be able to refer to this particular subset when loading it into their scenes. Every assets should have a Main subset, but can have any number of other variants.
+5. Click on *Create*
+
+ * * *
+
+## Loader
+Loader loads published subsets into your current scene or script.
+
+### Usage
+1. open *Loader* from OpenPype menu
+2. select the asset where the subset you want to load is published
+3. from subset list select the subset you want
+4. right-click the subset
+5. from action menu select what you want to do *(load, reference, ...)*
+
+
+
+
+
+
+
+### Refresh data
+Data are not auto-refreshed to avoid database issues. To refresh assets or subsets press refresh button.
+
+
+
+### Load another version
+Loader by default load last version, but you can of course load another versions. Double-click on the subset in the version column to expose the drop down, choose version you want to load and continue from point 4 of the [Usage](#usage-1).
+
+
+
+
+### Filtering
+
+#### Filter Assets and Subsets by name
+To filter assets/subsets by name just type name or part of name to filter text input. Only assets/subsets containing the entered string remain.
+
+- **Assets filtering example** *(it works the same for subsets)*:
+
+
+
+To filter [subsets](artist_concepts#subset) by their [families](artist_publish#families) you can use families list where you can check families you want to see or uncheck families you are not interested in.
+
+
+
+
+
+### Subset groups
+Subsets may be grouped which can help to make the subset list more transparent. You can toggle visibility of groups with `Enable Grouping` checkbox.
+
+
+
+
+#### Add to group or change current group
+You can set group of selected subsets with shortcut `Ctrl + G`.
+
+
+
+
+:::warning
+You'll set the group in Avalon database so your changes will take effect for all users.
+:::
+
+Work in progress...
+
+## Library Loader
+
+Library loader is extended [loader](#loader) which allows to load published subsets from Library projects. Controls are same but library loader has extra Combo Box which allows you to choose project you want to load from.
+
+
+
+* * *
+
+## Publisher
+
+> Use publish to share your work with others. It collects, validates and exports the data in standardized way.
+
+### Details
+
+When you run pyblish, the UI is made of 2 main parts. On the left, you see all the items pyblish will be working with (called instances), and on the right a list of actions that are going to process these items.
+Even though every task type has some pre-defined settings of what should be collected from the scene and what items will be published by default. You can technically publish any output type from any task type.
+Each item is passed through multiple plugins, each doing a small piece of work. These are organized into 4 areas and run in sequence.
+
+### Using Pyblish
+
+In the best case scenario, you open pyblish from the Avalon menu, press play, wait for it to finish, and youโre done.
+These are the steps in detail, for cases, where the default settings donโt work for you or you know that the task youโre working on, requires a different treatment.
+
+#### Collect
+
+Finds all the important data in the scene and makes it ready for publishing
+
+#### Validate
+
+Each validator makes sure your output complies to one particular condition. This could be anything from naming conventions, scene setting, to plugin usage. An item can only be published if all validators pass.
+
+#### Extract
+
+Extractor takes the item and saves it to the disk. Usually to temporary location. Each extractor represents one file format and there can be multiple file formats exported for each item.
+
+#### Integrate
+
+Integrator takes the extracted files, categorizes and moves them to a correct location on the disk or on the server.
+
+* * *
+
+## Inventory
+
+With Scene Inventory, you can browse, update and change subsets loaded with [Loader](#loader) into your scene or script.
+
+:::note
+You should first understand [Key concepts](artist_concepts#) to understand how you can use this tool.
+:::
+
+### Details
+
+
+Once a subset is loaded, it turns into a container within a scene. This containerization allows us to have a good overview of everything in the scene, but also makes it possible to change versions, notify user if something is outdated, replace one asset for another, etc.
+
+
+The scene manager has a simple GUI focused on efficiency. You can see everything that has been previously loaded into the scene, how many time it's been loaded, what version and a lot of other information. Loaded assets are grouped by their asset name, subset name and representation. This grouping gives ability to apply changes for all instances of the loaded asset *(e.g. when __tree__ is loaded 20 times you can easily update version for all of them)*.
+
+
+
+To interact with any container, you need to right click it and you'll see a drop down with possible actions. The key actions for production are already implemented, but more will be added over time.
+
+
+
+### Usage
+
+#### Change version
+You can change versions of loaded subsets with scene inventory tool. Version of loaded assets is colored to red when newer version is available.
+
+
+
+
+##### Update to the latest version
+Select containers or subsets you want to update, right-click selection and press `Update to latest`.
+
+##### Change to specific version
+Select containers or subsets you want to change, right-click selection, press `Set version`, select from dropdown version you want change to and press `OK` button to confirm.
+
+
+
+
+
+#### Switch Asset
+It's tool in Scene inventory tool that gives ability to switch asset, subset and representation of loaded assets.
+
+
+
+
+
+Because loaded asset is in fact representation of version published in asset's subset it is possible to switch each of this part *(representation, version, subset and asset)*, but with limitations. Limitations are obvious as you can imagine when you have loaded `.ma` representation of `modelMain` subset from `car` asset it is not possible to switch subset to `modelHD` and keep same representation if `modelHD` does not have published `.ma` representation. It is possible to switch multiple loaded assets at once that makes this tool very powerful helper if all published assets contain same subsets and representations.
+
+Switch tool won't let you cross the border of limitations and inform you when you have to specify more if impossible combination occurs *(It is also possible that there will be no possible combination for selected assets)*. Border is colored to red and confirm button is not enabled when specification is required.
+
+
+
+
+
+Possible switches:
+- switch **representation** (`.ma` to `.abc`, `.exr` to `.dpx`, etc.)
+- switch **subset** (`modelMain` to `modelHD`, etc.)
+ - `AND` keep same **representation** *(with limitations)*
+ - `AND` switch **representation** *(with limitations)*
+- switch **asset** (`oak` to `elm`, etc.)
+ - `AND` keep same **subset** and **representation** *(with limitations)*
+ - `AND` keep same **subset** and switch **representation** *(with limitations)*
+ - `AND` switch **subset** and keep same **representation** *(with limitations)*
+ - `AND` switch **subset** and **representation** *(with limitations)*
+
+We added one more switch layer above subset for LOD (Level Of Depth). That requires to have published subsets with name ending with **"_LOD{number}"** where number represents level (e.g. modelMain_LOD1). Has the same limitations as mentioned above. This is handy when you want to change only subset but keep same LOD or keep same subset but change LOD for multiple assets. This option is hidden if you didn't select subset that have published subset with LODs.
+
+
+### Filtering
+
+#### Filter by name
+
+There is a search bar on the top for cases when you have a complex scene with many assets and need to find a specific one.
+
+
+
+To keep only selected subsets right-click selection and press `Cherry-Pick (Hierarchy)` *(Border of subset list change to **orange** color when Cherry-pick filtering is set so you know filter is applied).*
+
+
+
+
+:::tip
+You can Cherry-pick from Cherry-picked subsets.
+:::
+
+* * *
+
+## Workfiles
+
+Save new working scenes or scripts, or open the ones you previously worked on.
+
+### Details
+
+Instead of digging through your software native file browser, you can simply open the workfiles app and see all the files for the asset or shot you're currently working with. The app takes care of all the naming and the location of your work files.
+
+When saving a scene you can also add a comment. It is completely up to you how you use this, however we recommend using it for subversion within your current working version.
+
+Let's say that the last version of the comp you published was v003 and now you're working on the file prj_sh010_compositing_v004.nk if you want to keep snapshots of your work, but not iterate on the main version because the supervisor is expecting next publish to be v004, you can use the comment to do this, so you can save the file under the name prj_sh010_compositing_v004_001 , prj_sh010_compositing_v004_002. the main version is automatically iterated every time you publish something.
+
+### Usage
+
+
+
+
+#### To open existing file:
+
+1. Open Workfiles tool from OpenPype menu
+2. Select file from list - the latest version is the highest *(descendent ordering)*
+3. Press `Open` button
+
+
+
+
+
+
+
+
+
+
+#### To save new workfile
+1. Open Workfiles tool from OpenPype menu
+2. Press `Save As` button
+3. You can add optional comment to the filename, that will be appended at the end
+4. Press `OK`
+
+:::note
+You can manually override the workfile version by unticking next available version and using the version menu to choose your own.
+:::
+
+## Look Assigner
+
+> The Look Manager takes care of assigning published looks to the correct model in the scene.
+
+### Details
+
+When a look is published it also stores the information about what shading networks need to be assigned to which models, but it also stores all the render attributes on the mesh necessary for a successful render.
+
+### Usage
+
+Look Assigner has GUI is made of two parts. On the left you will see the list of all the available models in the scene and on the right side, all the looks that can be associate with them. To assign a look to a model you just need to:
+
+1. Click on "load all subsets"
+2. Choose a subset from the menu on the left
+3. Right click on a look from the list on the right
+4. Choose "Assign"
+
+At this point you should have a model with all it's shaders applied correctly. The tool automatically loads the latest look available.
+
+
+## Subset Manager
+
+> Subset Manager lists all items which are meant for publishig and will be published if Publish is triggered
+
+### Details
+
+One or more items (instances) could be published any time Publish process is started. Each this publishable
+item must be created by Creator tool previously. Subset Manager provides easy way how to check which items,
+and how many, will be published.
+
+It also provides clean and preferrable way how to remove unwanted item from publishing.
+
+### Usage
+
+Subset Manager has GUI is made of two parts. On the left you will see the list of all the available publishable items in the scene and on the right side, details about these items.
+
+
+
+Any time new item is Created, it will show up here.
+
+Currently there is only single action, 'Remove instance' which cleans workfile file from publishable item metadata.
+This might not remove underlying host item, it depends on host and implementation!
+
+It might also happen that user deletes underlying host item(for example layer in Photoshop) directly in the host, but metadata will stay.
+This could result in phantom issues during publishing. Use Subset Manager to purge workfile from abandoned items.
+
+Please check behaviour in host of your choice.
diff --git a/website/docs/artist_work.md b/website/docs/artist_work.md
new file mode 100644
index 0000000000..de2290fc0c
--- /dev/null
+++ b/website/docs/artist_work.md
@@ -0,0 +1,23 @@
+---
+id: artist_work
+title: Working on tasks
+sidebar_label: Working
+---
+
+Check the [documentation](https://docusaurus.io) for how to use Docusaurus.
+
+## Lorem
+
+Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus elementum massa eget nulla aliquet sagittis. Proin odio tortor, vulputate ut odio in, ultrices ultricies augue. Cras ornare ultrices lorem malesuada iaculis. Etiam sit amet libero tempor, pulvinar mauris sed, sollicitudin sapien.
+
+## Mauris In Code
+
+ Mauris vestibulum ullamcorper nibh, ut semper purus pulvinar ut. Donec volutpat orci sit amet mauris malesuada, non pulvinar augue aliquam. Vestibulum ultricies at urna ut suscipit. Morbi iaculis, erat at imperdiet semper, ipsum nulla sodales erat, eget tincidunt justo dui quis justo. Pellentesque dictum bibendum diam at aliquet. Sed pulvinar, dolor quis finibus ornare, eros odio facilisis erat, eu rhoncus nunc dui sed ex. Nunc gravida dui massa, sed ornare arcu tincidunt sit amet. Maecenas efficitur sapien neque, a laoreet libero feugiat ut.
+
+## Nulla
+
+Nulla facilisi. Maecenas sodales nec purus eget posuere. Sed sapien quam, pretium a risus in, porttitor dapibus erat. Sed sit amet fringilla ipsum, eget iaculis augue. Integer sollicitudin tortor quis ultricies aliquam. Suspendisse fringilla nunc in tellus cursus, at placerat tellus scelerisque. Sed tempus elit a sollicitudin rhoncus. Nulla facilisi. Morbi nec dolor dolor. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Cras et aliquet lectus. Pellentesque sit amet eros nisi. Quisque ac sapien in sapien congue accumsan. Nullam in posuere ante. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Proin lacinia leo a nibh fringilla pharetra.
+
+## Orci
+
+Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin venenatis lectus dui, vel ultrices ante bibendum hendrerit. Aenean egestas feugiat dui id hendrerit. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Curabitur in tellus laoreet, eleifend nunc id, viverra leo. Proin vulputate non dolor vel vulputate. Curabitur pretium lobortis felis, sit amet finibus lorem suscipit ut. Sed non mollis risus. Duis sagittis, mi in euismod tincidunt, nunc mauris vestibulum urna, at euismod est elit quis erat. Phasellus accumsan vitae neque eu placerat. In elementum arcu nec tellus imperdiet, eget maximus nulla sodales. Curabitur eu sapien eget nisl sodales fermentum.
diff --git a/website/docs/assets/aftereffects_creator.png b/website/docs/assets/aftereffects_creator.png
new file mode 100644
index 0000000000..203ecb6fb7
Binary files /dev/null and b/website/docs/assets/aftereffects_creator.png differ
diff --git a/website/docs/assets/aftereffects_creator_after.png b/website/docs/assets/aftereffects_creator_after.png
new file mode 100644
index 0000000000..3933202f71
Binary files /dev/null and b/website/docs/assets/aftereffects_creator_after.png differ
diff --git a/website/docs/assets/aftereffects_loader.png b/website/docs/assets/aftereffects_loader.png
new file mode 100644
index 0000000000..9fd69b04f7
Binary files /dev/null and b/website/docs/assets/aftereffects_loader.png differ
diff --git a/website/docs/assets/aftereffects_publish.png b/website/docs/assets/aftereffects_publish.png
new file mode 100644
index 0000000000..4cfe3d1d6b
Binary files /dev/null and b/website/docs/assets/aftereffects_publish.png differ
diff --git a/website/docs/assets/ftrack/ftrack-component_open-icon.png b/website/docs/assets/ftrack/ftrack-component_open-icon.png
new file mode 100644
index 0000000000..1ea7a97d4c
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-component_open-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-component_open_1-small.png b/website/docs/assets/ftrack/ftrack-component_open_1-small.png
new file mode 100644
index 0000000000..6a783ab973
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-component_open_1-small.png differ
diff --git a/website/docs/assets/ftrack/ftrack-component_open_1.png b/website/docs/assets/ftrack/ftrack-component_open_1.png
new file mode 100644
index 0000000000..5fdf16a0a2
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-component_open_1.png differ
diff --git a/website/docs/assets/ftrack/ftrack-create_folders-icon.png b/website/docs/assets/ftrack/ftrack-create_folders-icon.png
new file mode 100644
index 0000000000..be88cf8993
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-create_folders-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-create_project_folders-icon.png b/website/docs/assets/ftrack/ftrack-create_project_folders-icon.png
new file mode 100644
index 0000000000..06c689267a
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-create_project_folders-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-custom_attrib_apps.jpg b/website/docs/assets/ftrack/ftrack-custom_attrib_apps.jpg
new file mode 100644
index 0000000000..bbd4fd9842
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-custom_attrib_apps.jpg differ
diff --git a/website/docs/assets/ftrack/ftrack-delete_asset-icon.png b/website/docs/assets/ftrack/ftrack-delete_asset-icon.png
new file mode 100644
index 0000000000..2786ece2d0
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-delete_asset-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_1.png b/website/docs/assets/ftrack/ftrack-login_1.png
new file mode 100644
index 0000000000..139884ff99
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_1.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_2.png b/website/docs/assets/ftrack/ftrack-login_2.png
new file mode 100644
index 0000000000..e654f70283
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_2.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_3.png b/website/docs/assets/ftrack/ftrack-login_3.png
new file mode 100644
index 0000000000..1677ea7f57
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_3.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_50.png b/website/docs/assets/ftrack/ftrack-login_50.png
new file mode 100644
index 0000000000..3d03c67efa
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_50.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_60.png b/website/docs/assets/ftrack/ftrack-login_60.png
new file mode 100644
index 0000000000..8302c198c3
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_60.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_71-small.png b/website/docs/assets/ftrack/ftrack-login_71-small.png
new file mode 100644
index 0000000000..0b66ed520d
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_71-small.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_71.png b/website/docs/assets/ftrack/ftrack-login_71.png
new file mode 100644
index 0000000000..2331dcb4c2
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_71.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_80-small.png b/website/docs/assets/ftrack/ftrack-login_80-small.png
new file mode 100644
index 0000000000..6473e2bee6
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_80-small.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_80.png b/website/docs/assets/ftrack/ftrack-login_80.png
new file mode 100644
index 0000000000..67aecd1e84
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_80.png differ
diff --git a/website/docs/assets/ftrack/ftrack-login_81.png b/website/docs/assets/ftrack/ftrack-login_81.png
new file mode 100644
index 0000000000..470763f7f8
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-login_81.png differ
diff --git a/website/docs/assets/ftrack/ftrack-multiple_notes-icon.png b/website/docs/assets/ftrack/ftrack-multiple_notes-icon.png
new file mode 100644
index 0000000000..3ebc240df7
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-multiple_notes-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-multiple_notes_1-small.png b/website/docs/assets/ftrack/ftrack-multiple_notes_1-small.png
new file mode 100644
index 0000000000..d4f7bd865e
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-multiple_notes_1-small.png differ
diff --git a/website/docs/assets/ftrack/ftrack-multiple_notes_1.png b/website/docs/assets/ftrack/ftrack-multiple_notes_1.png
new file mode 100644
index 0000000000..401f02e1ce
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-multiple_notes_1.png differ
diff --git a/website/docs/assets/ftrack/ftrack-prepare_project-icon.png b/website/docs/assets/ftrack/ftrack-prepare_project-icon.png
new file mode 100644
index 0000000000..44facfa3ae
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-prepare_project-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-prepare_project_1-small.png b/website/docs/assets/ftrack/ftrack-prepare_project_1-small.png
new file mode 100644
index 0000000000..c2d1066ffd
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-prepare_project_1-small.png differ
diff --git a/website/docs/assets/ftrack/ftrack-prepare_project_1.png b/website/docs/assets/ftrack/ftrack-prepare_project_1.png
new file mode 100644
index 0000000000..488ea5710d
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-prepare_project_1.png differ
diff --git a/website/docs/assets/ftrack/ftrack-pype_admin-icon.png b/website/docs/assets/ftrack/ftrack-pype_admin-icon.png
new file mode 100644
index 0000000000..f8ccbe66db
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-pype_admin-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-pype_doctor-icon.png b/website/docs/assets/ftrack/ftrack-pype_doctor-icon.png
new file mode 100644
index 0000000000..23c408d373
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-pype_doctor-icon.png differ
diff --git a/website/docs/assets/ftrack/ftrack-thumbnail-icon.png b/website/docs/assets/ftrack/ftrack-thumbnail-icon.png
new file mode 100644
index 0000000000..f27cd96a3b
Binary files /dev/null and b/website/docs/assets/ftrack/ftrack-thumbnail-icon.png differ
diff --git a/website/docs/assets/harmony_creator.PNG b/website/docs/assets/harmony_creator.PNG
new file mode 100644
index 0000000000..8593889c64
Binary files /dev/null and b/website/docs/assets/harmony_creator.PNG differ
diff --git a/website/docs/assets/maya-look_dev-look_manager.jpg b/website/docs/assets/maya-look_dev-look_manager.jpg
new file mode 100644
index 0000000000..54dbf3f667
Binary files /dev/null and b/website/docs/assets/maya-look_dev-look_manager.jpg differ
diff --git a/website/docs/assets/maya-look_dev-red_buddha.jpg b/website/docs/assets/maya-look_dev-red_buddha.jpg
new file mode 100644
index 0000000000..e003a4ca55
Binary files /dev/null and b/website/docs/assets/maya-look_dev-red_buddha.jpg differ
diff --git a/website/docs/assets/maya-model_create_instance.jpg b/website/docs/assets/maya-model_create_instance.jpg
new file mode 100644
index 0000000000..0f32f0cb05
Binary files /dev/null and b/website/docs/assets/maya-model_create_instance.jpg differ
diff --git a/website/docs/assets/maya-model_freeze_error_details.jpg b/website/docs/assets/maya-model_freeze_error_details.jpg
new file mode 100644
index 0000000000..77b3cab005
Binary files /dev/null and b/website/docs/assets/maya-model_freeze_error_details.jpg differ
diff --git a/website/docs/assets/maya-model_hierarchy_example.jpg b/website/docs/assets/maya-model_hierarchy_example.jpg
new file mode 100644
index 0000000000..661722960c
Binary files /dev/null and b/website/docs/assets/maya-model_hierarchy_example.jpg differ
diff --git a/website/docs/assets/maya-model_loading.jpg b/website/docs/assets/maya-model_loading.jpg
new file mode 100644
index 0000000000..7a7d911c06
Binary files /dev/null and b/website/docs/assets/maya-model_loading.jpg differ
diff --git a/website/docs/assets/maya-model_pre_publish.jpg b/website/docs/assets/maya-model_pre_publish.jpg
new file mode 100644
index 0000000000..b5827bdb5e
Binary files /dev/null and b/website/docs/assets/maya-model_pre_publish.jpg differ
diff --git a/website/docs/assets/maya-model_publish_error.jpg b/website/docs/assets/maya-model_publish_error.jpg
new file mode 100644
index 0000000000..efe2aff9ba
Binary files /dev/null and b/website/docs/assets/maya-model_publish_error.jpg differ
diff --git a/website/docs/assets/maya-model_review_setup.jpg b/website/docs/assets/maya-model_review_setup.jpg
new file mode 100644
index 0000000000..6c43807596
Binary files /dev/null and b/website/docs/assets/maya-model_review_setup.jpg differ
diff --git a/website/docs/assets/maya-pointcache_loaded.png b/website/docs/assets/maya-pointcache_loaded.png
new file mode 100644
index 0000000000..398ef5b7ac
Binary files /dev/null and b/website/docs/assets/maya-pointcache_loaded.png differ
diff --git a/website/docs/assets/maya-pointcache_setup.png b/website/docs/assets/maya-pointcache_setup.png
new file mode 100644
index 0000000000..8904baa239
Binary files /dev/null and b/website/docs/assets/maya-pointcache_setup.png differ
diff --git a/website/docs/assets/maya-render_publish_detail1.jpg b/website/docs/assets/maya-render_publish_detail1.jpg
new file mode 100644
index 0000000000..bfb00ca98a
Binary files /dev/null and b/website/docs/assets/maya-render_publish_detail1.jpg differ
diff --git a/website/docs/assets/maya-render_setup.jpg b/website/docs/assets/maya-render_setup.jpg
new file mode 100644
index 0000000000..4b1c52a593
Binary files /dev/null and b/website/docs/assets/maya-render_setup.jpg differ
diff --git a/website/docs/assets/maya-render_setup_window.jpg b/website/docs/assets/maya-render_setup_window.jpg
new file mode 100644
index 0000000000..9f4dce1ca9
Binary files /dev/null and b/website/docs/assets/maya-render_setup_window.jpg differ
diff --git a/website/docs/assets/maya-renderglobals.jpg b/website/docs/assets/maya-renderglobals.jpg
new file mode 100644
index 0000000000..8b4253f23b
Binary files /dev/null and b/website/docs/assets/maya-renderglobals.jpg differ
diff --git a/website/docs/assets/maya-rig_hierarchy_example.jpg b/website/docs/assets/maya-rig_hierarchy_example.jpg
new file mode 100644
index 0000000000..5405005768
Binary files /dev/null and b/website/docs/assets/maya-rig_hierarchy_example.jpg differ
diff --git a/website/docs/assets/maya-rig_model_setup.jpg b/website/docs/assets/maya-rig_model_setup.jpg
new file mode 100644
index 0000000000..55450e225a
Binary files /dev/null and b/website/docs/assets/maya-rig_model_setup.jpg differ
diff --git a/website/docs/assets/maya-shortcut_buttons.jpg b/website/docs/assets/maya-shortcut_buttons.jpg
new file mode 100644
index 0000000000..ead3b17b99
Binary files /dev/null and b/website/docs/assets/maya-shortcut_buttons.jpg differ
diff --git a/website/docs/assets/maya-yeti_basic_setup.jpg b/website/docs/assets/maya-yeti_basic_setup.jpg
new file mode 100644
index 0000000000..bdb0408757
Binary files /dev/null and b/website/docs/assets/maya-yeti_basic_setup.jpg differ
diff --git a/website/docs/assets/maya-yeti_basic_setup_outline.jpg b/website/docs/assets/maya-yeti_basic_setup_outline.jpg
new file mode 100644
index 0000000000..9b6dc18af1
Binary files /dev/null and b/website/docs/assets/maya-yeti_basic_setup_outline.jpg differ
diff --git a/website/docs/assets/maya-yeti_cache_attributes.jpg b/website/docs/assets/maya-yeti_cache_attributes.jpg
new file mode 100644
index 0000000000..5d5048bf9d
Binary files /dev/null and b/website/docs/assets/maya-yeti_cache_attributes.jpg differ
diff --git a/website/docs/assets/maya-yeti_rig.jpg b/website/docs/assets/maya-yeti_rig.jpg
new file mode 100644
index 0000000000..07b13db409
Binary files /dev/null and b/website/docs/assets/maya-yeti_rig.jpg differ
diff --git a/website/docs/assets/nks_icons/1_add_handles_end.png b/website/docs/assets/nks_icons/1_add_handles_end.png
new file mode 100644
index 0000000000..4561745d66
Binary files /dev/null and b/website/docs/assets/nks_icons/1_add_handles_end.png differ
diff --git a/website/docs/assets/nks_icons/2_add_handles.png b/website/docs/assets/nks_icons/2_add_handles.png
new file mode 100644
index 0000000000..bb4c1802aa
Binary files /dev/null and b/website/docs/assets/nks_icons/2_add_handles.png differ
diff --git a/website/docs/assets/nks_icons/3_add_handles_start.png b/website/docs/assets/nks_icons/3_add_handles_start.png
new file mode 100644
index 0000000000..c98e4f74f1
Binary files /dev/null and b/website/docs/assets/nks_icons/3_add_handles_start.png differ
diff --git a/website/docs/assets/nks_icons/frame_start.png b/website/docs/assets/nks_icons/frame_start.png
new file mode 100644
index 0000000000..af68df4722
Binary files /dev/null and b/website/docs/assets/nks_icons/frame_start.png differ
diff --git a/website/docs/assets/nks_icons/hierarchy.png b/website/docs/assets/nks_icons/hierarchy.png
new file mode 100644
index 0000000000..6acf39ced5
Binary files /dev/null and b/website/docs/assets/nks_icons/hierarchy.png differ
diff --git a/website/docs/assets/nks_icons/lense.png b/website/docs/assets/nks_icons/lense.png
new file mode 100644
index 0000000000..255b1753ed
Binary files /dev/null and b/website/docs/assets/nks_icons/lense.png differ
diff --git a/website/docs/assets/nks_icons/lense1.png b/website/docs/assets/nks_icons/lense1.png
new file mode 100644
index 0000000000..1ad1264807
Binary files /dev/null and b/website/docs/assets/nks_icons/lense1.png differ
diff --git a/website/docs/assets/nks_icons/reference.png b/website/docs/assets/nks_icons/reference.png
new file mode 100644
index 0000000000..7517bd4105
Binary files /dev/null and b/website/docs/assets/nks_icons/reference.png differ
diff --git a/website/docs/assets/nks_icons/resolution.png b/website/docs/assets/nks_icons/resolution.png
new file mode 100644
index 0000000000..83803fc36d
Binary files /dev/null and b/website/docs/assets/nks_icons/resolution.png differ
diff --git a/website/docs/assets/nks_icons/retiming.png b/website/docs/assets/nks_icons/retiming.png
new file mode 100644
index 0000000000..1c6f22e02c
Binary files /dev/null and b/website/docs/assets/nks_icons/retiming.png differ
diff --git a/website/docs/assets/nks_icons/review.png b/website/docs/assets/nks_icons/review.png
new file mode 100644
index 0000000000..0d894b6987
Binary files /dev/null and b/website/docs/assets/nks_icons/review.png differ
diff --git a/website/docs/assets/nks_icons/z_layer_bg.png b/website/docs/assets/nks_icons/z_layer_bg.png
new file mode 100644
index 0000000000..51742b5df2
Binary files /dev/null and b/website/docs/assets/nks_icons/z_layer_bg.png differ
diff --git a/website/docs/assets/nks_icons/z_layer_fg.png b/website/docs/assets/nks_icons/z_layer_fg.png
new file mode 100644
index 0000000000..01e5f4f816
Binary files /dev/null and b/website/docs/assets/nks_icons/z_layer_fg.png differ
diff --git a/website/docs/assets/nks_icons/z_layer_main.png b/website/docs/assets/nks_icons/z_layer_main.png
new file mode 100644
index 0000000000..0ffb939a7f
Binary files /dev/null and b/website/docs/assets/nks_icons/z_layer_main.png differ
diff --git a/website/docs/assets/nuke_Create_errorVersionCheck.png b/website/docs/assets/nuke_Create_errorVersionCheck.png
new file mode 100644
index 0000000000..85bcc26108
Binary files /dev/null and b/website/docs/assets/nuke_Create_errorVersionCheck.png differ
diff --git a/website/docs/assets/nuke_Create_prerenderCustomNode.png b/website/docs/assets/nuke_Create_prerenderCustomNode.png
new file mode 100644
index 0000000000..e44985ac1c
Binary files /dev/null and b/website/docs/assets/nuke_Create_prerenderCustomNode.png differ
diff --git a/website/docs/assets/nuke_Create_renderNodeDifferencesColor.png b/website/docs/assets/nuke_Create_renderNodeDifferencesColor.png
new file mode 100644
index 0000000000..410455b6cb
Binary files /dev/null and b/website/docs/assets/nuke_Create_renderNodeDifferencesColor.png differ
diff --git a/website/docs/assets/nuke_Create_renderNodeDifferencesProperities.png b/website/docs/assets/nuke_Create_renderNodeDifferencesProperities.png
new file mode 100644
index 0000000000..a37867b1b7
Binary files /dev/null and b/website/docs/assets/nuke_Create_renderNodeDifferencesProperities.png differ
diff --git a/website/docs/assets/nuke_Create_renderNodeProperity.png b/website/docs/assets/nuke_Create_renderNodeProperity.png
new file mode 100644
index 0000000000..2795b91ac8
Binary files /dev/null and b/website/docs/assets/nuke_Create_renderNodeProperity.png differ
diff --git a/website/docs/assets/nuke_Create_renderNodeProperitySettings.png b/website/docs/assets/nuke_Create_renderNodeProperitySettings.png
new file mode 100644
index 0000000000..ee98885216
Binary files /dev/null and b/website/docs/assets/nuke_Create_renderNodeProperitySettings.png differ
diff --git a/website/docs/assets/nuke_Create_writeCustomPreRender.png b/website/docs/assets/nuke_Create_writeCustomPreRender.png
new file mode 100644
index 0000000000..2345351f98
Binary files /dev/null and b/website/docs/assets/nuke_Create_writeCustomPreRender.png differ
diff --git a/website/docs/assets/nuke_Create_writeMainPreRender.png b/website/docs/assets/nuke_Create_writeMainPreRender.png
new file mode 100644
index 0000000000..e966444efe
Binary files /dev/null and b/website/docs/assets/nuke_Create_writeMainPreRender.png differ
diff --git a/website/docs/assets/nuke_Create_writeMainRender.png b/website/docs/assets/nuke_Create_writeMainRender.png
new file mode 100644
index 0000000000..8827e5630b
Binary files /dev/null and b/website/docs/assets/nuke_Create_writeMainRender.png differ
diff --git a/website/docs/assets/nuke_Load_ReadProperities.png b/website/docs/assets/nuke_Load_ReadProperities.png
new file mode 100644
index 0000000000..239ee89f25
Binary files /dev/null and b/website/docs/assets/nuke_Load_ReadProperities.png differ
diff --git a/website/docs/assets/nuke_Load_ReadProperities1.png b/website/docs/assets/nuke_Load_ReadProperities1.png
new file mode 100644
index 0000000000..76da12ef63
Binary files /dev/null and b/website/docs/assets/nuke_Load_ReadProperities1.png differ
diff --git a/website/docs/assets/nuke_Load_subsetBrowser.png b/website/docs/assets/nuke_Load_subsetBrowser.png
new file mode 100644
index 0000000000..5bfb5bd3eb
Binary files /dev/null and b/website/docs/assets/nuke_Load_subsetBrowser.png differ
diff --git a/website/docs/assets/nuke_Load_subsetBrowserSubmenu.png b/website/docs/assets/nuke_Load_subsetBrowserSubmenu.png
new file mode 100644
index 0000000000..1a157008ee
Binary files /dev/null and b/website/docs/assets/nuke_Load_subsetBrowserSubmenu.png differ
diff --git a/website/docs/assets/nuke_ManageInventory_read.png b/website/docs/assets/nuke_ManageInventory_read.png
new file mode 100644
index 0000000000..8234f27379
Binary files /dev/null and b/website/docs/assets/nuke_ManageInventory_read.png differ
diff --git a/website/docs/assets/nuke_ManageInventory_read_latest.png b/website/docs/assets/nuke_ManageInventory_read_latest.png
new file mode 100644
index 0000000000..db094c4a26
Binary files /dev/null and b/website/docs/assets/nuke_ManageInventory_read_latest.png differ
diff --git a/website/docs/assets/nuke_ManageInventory_read_multipleInstances.png b/website/docs/assets/nuke_ManageInventory_read_multipleInstances.png
new file mode 100644
index 0000000000..b5497c010e
Binary files /dev/null and b/website/docs/assets/nuke_ManageInventory_read_multipleInstances.png differ
diff --git a/website/docs/assets/nuke_ManageInventory_read_outdated.png b/website/docs/assets/nuke_ManageInventory_read_outdated.png
new file mode 100644
index 0000000000..87531d1b4d
Binary files /dev/null and b/website/docs/assets/nuke_ManageInventory_read_outdated.png differ
diff --git a/website/docs/assets/nuke_Publish_prerender.png b/website/docs/assets/nuke_Publish_prerender.png
new file mode 100644
index 0000000000..2ab3983db9
Binary files /dev/null and b/website/docs/assets/nuke_Publish_prerender.png differ
diff --git a/website/docs/assets/nuke_Workfiles_saveAs.png b/website/docs/assets/nuke_Workfiles_saveAs.png
new file mode 100644
index 0000000000..f9562628f2
Binary files /dev/null and b/website/docs/assets/nuke_Workfiles_saveAs.png differ
diff --git a/website/docs/assets/nuke_Workfiles_selectLastFile.png b/website/docs/assets/nuke_Workfiles_selectLastFile.png
new file mode 100644
index 0000000000..0f98cee0af
Binary files /dev/null and b/website/docs/assets/nuke_Workfiles_selectLastFile.png differ
diff --git a/website/docs/assets/nuke_applyAllSettings.png b/website/docs/assets/nuke_applyAllSettings.png
new file mode 100644
index 0000000000..913140fed1
Binary files /dev/null and b/website/docs/assets/nuke_applyAllSettings.png differ
diff --git a/website/docs/assets/nuke_autoBuild.png b/website/docs/assets/nuke_autoBuild.png
new file mode 100644
index 0000000000..5effdd594d
Binary files /dev/null and b/website/docs/assets/nuke_autoBuild.png differ
diff --git a/website/docs/assets/nuke_buildFirstWorkfile.png b/website/docs/assets/nuke_buildFirstWorkfile.png
new file mode 100644
index 0000000000..eab8f21a4a
Binary files /dev/null and b/website/docs/assets/nuke_buildFirstWorkfile.png differ
diff --git a/website/docs/assets/nuke_menu_ApplyAll.png b/website/docs/assets/nuke_menu_ApplyAll.png
new file mode 100644
index 0000000000..c9e82b129e
Binary files /dev/null and b/website/docs/assets/nuke_menu_ApplyAll.png differ
diff --git a/website/docs/assets/nuke_menu_Create.png b/website/docs/assets/nuke_menu_Create.png
new file mode 100644
index 0000000000..3823c7d870
Binary files /dev/null and b/website/docs/assets/nuke_menu_Create.png differ
diff --git a/website/docs/assets/nuke_menu_Load.png b/website/docs/assets/nuke_menu_Load.png
new file mode 100644
index 0000000000..c2ded15e53
Binary files /dev/null and b/website/docs/assets/nuke_menu_Load.png differ
diff --git a/website/docs/assets/nuke_menu_Manage.png b/website/docs/assets/nuke_menu_Manage.png
new file mode 100644
index 0000000000..71b7abd700
Binary files /dev/null and b/website/docs/assets/nuke_menu_Manage.png differ
diff --git a/website/docs/assets/nuke_menu_Publish.png b/website/docs/assets/nuke_menu_Publish.png
new file mode 100644
index 0000000000..38be1698b7
Binary files /dev/null and b/website/docs/assets/nuke_menu_Publish.png differ
diff --git a/website/docs/assets/nuke_menu_SetContext.png b/website/docs/assets/nuke_menu_SetContext.png
new file mode 100644
index 0000000000..83a31f7c7e
Binary files /dev/null and b/website/docs/assets/nuke_menu_SetContext.png differ
diff --git a/website/docs/assets/nuke_menu_Workfiles.png b/website/docs/assets/nuke_menu_Workfiles.png
new file mode 100644
index 0000000000..030ce1b583
Binary files /dev/null and b/website/docs/assets/nuke_menu_Workfiles.png differ
diff --git a/website/docs/assets/nuke_publish_renderMain.png b/website/docs/assets/nuke_publish_renderMain.png
new file mode 100644
index 0000000000..bb499fb613
Binary files /dev/null and b/website/docs/assets/nuke_publish_renderMain.png differ
diff --git a/website/docs/assets/nuke_setColorspace.png b/website/docs/assets/nuke_setColorspace.png
new file mode 100644
index 0000000000..8895c30594
Binary files /dev/null and b/website/docs/assets/nuke_setColorspace.png differ
diff --git a/website/docs/assets/nuke_setContext.png b/website/docs/assets/nuke_setContext.png
new file mode 100644
index 0000000000..b9a6c79f29
Binary files /dev/null and b/website/docs/assets/nuke_setContext.png differ
diff --git a/website/docs/assets/nuke_setFrameRanges.png b/website/docs/assets/nuke_setFrameRanges.png
new file mode 100644
index 0000000000..0289fc4dba
Binary files /dev/null and b/website/docs/assets/nuke_setFrameRanges.png differ
diff --git a/website/docs/assets/nuke_setFrameRanges_timeline.png b/website/docs/assets/nuke_setFrameRanges_timeline.png
new file mode 100644
index 0000000000..8e6b65c7ca
Binary files /dev/null and b/website/docs/assets/nuke_setFrameRanges_timeline.png differ
diff --git a/website/docs/assets/nuke_setResolution.png b/website/docs/assets/nuke_setResolution.png
new file mode 100644
index 0000000000..3e40619884
Binary files /dev/null and b/website/docs/assets/nuke_setResolution.png differ
diff --git a/website/docs/assets/nukestudio_basic_clipNaming.png b/website/docs/assets/nukestudio_basic_clipNaming.png
new file mode 100644
index 0000000000..71d623f706
Binary files /dev/null and b/website/docs/assets/nukestudio_basic_clipNaming.png differ
diff --git a/website/docs/assets/nukestudio_defaultTags.png b/website/docs/assets/nukestudio_defaultTags.png
new file mode 100644
index 0000000000..3ba15ccc17
Binary files /dev/null and b/website/docs/assets/nukestudio_defaultTags.png differ
diff --git a/website/docs/assets/nukestudio_lutSucess.png b/website/docs/assets/nukestudio_lutSucess.png
new file mode 100644
index 0000000000..fa013b99b2
Binary files /dev/null and b/website/docs/assets/nukestudio_lutSucess.png differ
diff --git a/website/docs/assets/nukestudio_publishing_basic.png b/website/docs/assets/nukestudio_publishing_basic.png
new file mode 100644
index 0000000000..6592ec423c
Binary files /dev/null and b/website/docs/assets/nukestudio_publishing_basic.png differ
diff --git a/website/docs/assets/nukestudio_reviewing.png b/website/docs/assets/nukestudio_reviewing.png
new file mode 100644
index 0000000000..0d3b4170df
Binary files /dev/null and b/website/docs/assets/nukestudio_reviewing.png differ
diff --git a/website/docs/assets/nukestudio_setContext.png b/website/docs/assets/nukestudio_setContext.png
new file mode 100644
index 0000000000..8c8746a264
Binary files /dev/null and b/website/docs/assets/nukestudio_setContext.png differ
diff --git a/website/docs/assets/nukestudio_softEffects.png b/website/docs/assets/nukestudio_softEffects.png
new file mode 100644
index 0000000000..13b92801fd
Binary files /dev/null and b/website/docs/assets/nukestudio_softEffects.png differ
diff --git a/website/docs/assets/nukestudio_tagsToClips_basic.png b/website/docs/assets/nukestudio_tagsToClips_basic.png
new file mode 100644
index 0000000000..fadb85342b
Binary files /dev/null and b/website/docs/assets/nukestudio_tagsToClips_basic.png differ
diff --git a/website/docs/assets/nukestudio_workfiles_openCorrect.png b/website/docs/assets/nukestudio_workfiles_openCorrect.png
new file mode 100644
index 0000000000..e097e50d9e
Binary files /dev/null and b/website/docs/assets/nukestudio_workfiles_openCorrect.png differ
diff --git a/website/docs/assets/nukestudio_workfiles_openingLimit.png b/website/docs/assets/nukestudio_workfiles_openingLimit.png
new file mode 100644
index 0000000000..d0e893f4e5
Binary files /dev/null and b/website/docs/assets/nukestudio_workfiles_openingLimit.png differ
diff --git a/website/docs/assets/photoshop_creator.PNG b/website/docs/assets/photoshop_creator.PNG
new file mode 100644
index 0000000000..e72fe2f447
Binary files /dev/null and b/website/docs/assets/photoshop_creator.PNG differ
diff --git a/website/docs/assets/photoshop_extension.PNG b/website/docs/assets/photoshop_extension.PNG
new file mode 100644
index 0000000000..ef7081443d
Binary files /dev/null and b/website/docs/assets/photoshop_extension.PNG differ
diff --git a/website/docs/assets/photoshop_loader.PNG b/website/docs/assets/photoshop_loader.PNG
new file mode 100644
index 0000000000..36eeadf084
Binary files /dev/null and b/website/docs/assets/photoshop_loader.PNG differ
diff --git a/website/docs/assets/photoshop_loader_load.gif b/website/docs/assets/photoshop_loader_load.gif
new file mode 100644
index 0000000000..efe051857b
Binary files /dev/null and b/website/docs/assets/photoshop_loader_load.gif differ
diff --git a/website/docs/assets/photoshop_manage.PNG b/website/docs/assets/photoshop_manage.PNG
new file mode 100644
index 0000000000..64c424d94f
Binary files /dev/null and b/website/docs/assets/photoshop_manage.PNG differ
diff --git a/website/docs/assets/photoshop_manage_switch.gif b/website/docs/assets/photoshop_manage_switch.gif
new file mode 100644
index 0000000000..de11b77e5c
Binary files /dev/null and b/website/docs/assets/photoshop_manage_switch.gif differ
diff --git a/website/docs/assets/photoshop_manage_update.gif b/website/docs/assets/photoshop_manage_update.gif
new file mode 100644
index 0000000000..2c5d681cd3
Binary files /dev/null and b/website/docs/assets/photoshop_manage_update.gif differ
diff --git a/website/docs/assets/photoshop_publish.PNG b/website/docs/assets/photoshop_publish.PNG
new file mode 100644
index 0000000000..dc57757122
Binary files /dev/null and b/website/docs/assets/photoshop_publish.PNG differ
diff --git a/website/docs/assets/photoshop_publish_actions.PNG b/website/docs/assets/photoshop_publish_actions.PNG
new file mode 100644
index 0000000000..86083ad54b
Binary files /dev/null and b/website/docs/assets/photoshop_publish_actions.PNG differ
diff --git a/website/docs/assets/photoshop_publish_expand.PNG b/website/docs/assets/photoshop_publish_expand.PNG
new file mode 100644
index 0000000000..6969b15647
Binary files /dev/null and b/website/docs/assets/photoshop_publish_expand.PNG differ
diff --git a/website/docs/assets/photoshop_publish_inspect.PNG b/website/docs/assets/photoshop_publish_inspect.PNG
new file mode 100644
index 0000000000..d2fd8922af
Binary files /dev/null and b/website/docs/assets/photoshop_publish_inspect.PNG differ
diff --git a/website/docs/assets/photoshop_publish_repair.gif b/website/docs/assets/photoshop_publish_repair.gif
new file mode 100644
index 0000000000..bf7065801e
Binary files /dev/null and b/website/docs/assets/photoshop_publish_repair.gif differ
diff --git a/website/docs/assets/presets_plugins_extract_burnin_01.png b/website/docs/assets/presets_plugins_extract_burnin_01.png
new file mode 100644
index 0000000000..03169c1c88
Binary files /dev/null and b/website/docs/assets/presets_plugins_extract_burnin_01.png differ
diff --git a/website/docs/assets/settings/Screenshot_1.png b/website/docs/assets/settings/Screenshot_1.png
new file mode 100644
index 0000000000..12c34e8f05
Binary files /dev/null and b/website/docs/assets/settings/Screenshot_1.png differ
diff --git a/website/docs/assets/settings/anatomy_01.png b/website/docs/assets/settings/anatomy_01.png
new file mode 100644
index 0000000000..92b7e880d6
Binary files /dev/null and b/website/docs/assets/settings/anatomy_01.png differ
diff --git a/website/docs/assets/settings/anatomy_roots01.png b/website/docs/assets/settings/anatomy_roots01.png
new file mode 100644
index 0000000000..56cda7345b
Binary files /dev/null and b/website/docs/assets/settings/anatomy_roots01.png differ
diff --git a/website/docs/assets/settings/anatomy_roots02.png b/website/docs/assets/settings/anatomy_roots02.png
new file mode 100644
index 0000000000..e55793118f
Binary files /dev/null and b/website/docs/assets/settings/anatomy_roots02.png differ
diff --git a/website/docs/assets/settings/anatomy_roots03.png b/website/docs/assets/settings/anatomy_roots03.png
new file mode 100644
index 0000000000..9c47a189fe
Binary files /dev/null and b/website/docs/assets/settings/anatomy_roots03.png differ
diff --git a/website/docs/assets/settings/applications_01.png b/website/docs/assets/settings/applications_01.png
new file mode 100644
index 0000000000..52c31f6649
Binary files /dev/null and b/website/docs/assets/settings/applications_01.png differ
diff --git a/website/docs/assets/settings/colours_01.png b/website/docs/assets/settings/colours_01.png
new file mode 100644
index 0000000000..927c6e0a2b
Binary files /dev/null and b/website/docs/assets/settings/colours_01.png differ
diff --git a/website/docs/assets/settings/colours_02.png b/website/docs/assets/settings/colours_02.png
new file mode 100644
index 0000000000..b304fa35f3
Binary files /dev/null and b/website/docs/assets/settings/colours_02.png differ
diff --git a/website/docs/assets/settings/override_breadcrumbs.png b/website/docs/assets/settings/override_breadcrumbs.png
new file mode 100644
index 0000000000..03eea756ef
Binary files /dev/null and b/website/docs/assets/settings/override_breadcrumbs.png differ
diff --git a/website/docs/assets/settings/studio_defaults.gif b/website/docs/assets/settings/studio_defaults.gif
new file mode 100644
index 0000000000..4825e60501
Binary files /dev/null and b/website/docs/assets/settings/studio_defaults.gif differ
diff --git a/website/docs/assets/settings/studio_defaults_remove.gif b/website/docs/assets/settings/studio_defaults_remove.gif
new file mode 100644
index 0000000000..cedd9803d4
Binary files /dev/null and b/website/docs/assets/settings/studio_defaults_remove.gif differ
diff --git a/website/docs/assets/settings/tools_01.png b/website/docs/assets/settings/tools_01.png
new file mode 100644
index 0000000000..9837309994
Binary files /dev/null and b/website/docs/assets/settings/tools_01.png differ
diff --git a/website/docs/assets/tools/tools_library_1-small.png b/website/docs/assets/tools/tools_library_1-small.png
new file mode 100644
index 0000000000..557b432950
Binary files /dev/null and b/website/docs/assets/tools/tools_library_1-small.png differ
diff --git a/website/docs/assets/tools/tools_library_2-small.png b/website/docs/assets/tools/tools_library_2-small.png
new file mode 100644
index 0000000000..cf1c6728b0
Binary files /dev/null and b/website/docs/assets/tools/tools_library_2-small.png differ
diff --git a/website/docs/assets/tools/tools_loader_1.png b/website/docs/assets/tools/tools_loader_1.png
new file mode 100644
index 0000000000..5ec062884d
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_1.png differ
diff --git a/website/docs/assets/tools/tools_loader_20.png b/website/docs/assets/tools/tools_loader_20.png
new file mode 100644
index 0000000000..7bf032d1f9
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_20.png differ
diff --git a/website/docs/assets/tools/tools_loader_21.png b/website/docs/assets/tools/tools_loader_21.png
new file mode 100644
index 0000000000..b27b2e65b8
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_21.png differ
diff --git a/website/docs/assets/tools/tools_loader_22.png b/website/docs/assets/tools/tools_loader_22.png
new file mode 100644
index 0000000000..d855568bd8
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_22.png differ
diff --git a/website/docs/assets/tools/tools_loader_30-small.png b/website/docs/assets/tools/tools_loader_30-small.png
new file mode 100644
index 0000000000..b71add78f1
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_30-small.png differ
diff --git a/website/docs/assets/tools/tools_loader_30.png b/website/docs/assets/tools/tools_loader_30.png
new file mode 100644
index 0000000000..56f9f89061
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_30.png differ
diff --git a/website/docs/assets/tools/tools_loader_4-small.png b/website/docs/assets/tools/tools_loader_4-small.png
new file mode 100644
index 0000000000..933da125e4
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_4-small.png differ
diff --git a/website/docs/assets/tools/tools_loader_4.png b/website/docs/assets/tools/tools_loader_4.png
new file mode 100644
index 0000000000..47f221c4cc
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_4.png differ
diff --git a/website/docs/assets/tools/tools_loader_40-small.png b/website/docs/assets/tools/tools_loader_40-small.png
new file mode 100644
index 0000000000..a352dbf78a
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_40-small.png differ
diff --git a/website/docs/assets/tools/tools_loader_40.png b/website/docs/assets/tools/tools_loader_40.png
new file mode 100644
index 0000000000..b3ad681ce4
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_40.png differ
diff --git a/website/docs/assets/tools/tools_loader_41-small.png b/website/docs/assets/tools/tools_loader_41-small.png
new file mode 100644
index 0000000000..8f8a27c649
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_41-small.png differ
diff --git a/website/docs/assets/tools/tools_loader_41.png b/website/docs/assets/tools/tools_loader_41.png
new file mode 100644
index 0000000000..332634fffc
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_41.png differ
diff --git a/website/docs/assets/tools/tools_loader_5-small.png b/website/docs/assets/tools/tools_loader_5-small.png
new file mode 100644
index 0000000000..f2c5d53de1
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_5-small.png differ
diff --git a/website/docs/assets/tools/tools_loader_5.png b/website/docs/assets/tools/tools_loader_5.png
new file mode 100644
index 0000000000..12eb38a806
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_5.png differ
diff --git a/website/docs/assets/tools/tools_loader_50.png b/website/docs/assets/tools/tools_loader_50.png
new file mode 100644
index 0000000000..625adbc0a1
Binary files /dev/null and b/website/docs/assets/tools/tools_loader_50.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_10-small.png b/website/docs/assets/tools/tools_scene_inventory_10-small.png
new file mode 100644
index 0000000000..52830b21e4
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_10-small.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_20.png b/website/docs/assets/tools/tools_scene_inventory_20.png
new file mode 100644
index 0000000000..ec92c4bd69
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_20.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_30.png b/website/docs/assets/tools/tools_scene_inventory_30.png
new file mode 100644
index 0000000000..27c1b05ffa
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_30.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_40.png b/website/docs/assets/tools/tools_scene_inventory_40.png
new file mode 100644
index 0000000000..c835a0bc42
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_40.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_50.png b/website/docs/assets/tools/tools_scene_inventory_50.png
new file mode 100644
index 0000000000..282d5267f4
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_50.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_54.png b/website/docs/assets/tools/tools_scene_inventory_54.png
new file mode 100644
index 0000000000..bf9a034efd
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_54.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_55.png b/website/docs/assets/tools/tools_scene_inventory_55.png
new file mode 100644
index 0000000000..d99dd6eace
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_55.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_60-small.png b/website/docs/assets/tools/tools_scene_inventory_60-small.png
new file mode 100644
index 0000000000..a2ae8f138b
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_60-small.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_60.png b/website/docs/assets/tools/tools_scene_inventory_60.png
new file mode 100644
index 0000000000..6dfd495ed9
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_60.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_61-small.png b/website/docs/assets/tools/tools_scene_inventory_61-small.png
new file mode 100644
index 0000000000..6edb1da148
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_61-small.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_61.png b/website/docs/assets/tools/tools_scene_inventory_61.png
new file mode 100644
index 0000000000..b270db3fca
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_61.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_62-small.png b/website/docs/assets/tools/tools_scene_inventory_62-small.png
new file mode 100644
index 0000000000..8623a7c40e
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_62-small.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_62.png b/website/docs/assets/tools/tools_scene_inventory_62.png
new file mode 100644
index 0000000000..122c3a9e25
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_62.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_63-small.png b/website/docs/assets/tools/tools_scene_inventory_63-small.png
new file mode 100644
index 0000000000..58c8bb4fae
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_63-small.png differ
diff --git a/website/docs/assets/tools/tools_scene_inventory_63.png b/website/docs/assets/tools/tools_scene_inventory_63.png
new file mode 100644
index 0000000000..5be8c8f70e
Binary files /dev/null and b/website/docs/assets/tools/tools_scene_inventory_63.png differ
diff --git a/website/docs/assets/tools_context_manager.png b/website/docs/assets/tools_context_manager.png
new file mode 100644
index 0000000000..badf7b00bf
Binary files /dev/null and b/website/docs/assets/tools_context_manager.png differ
diff --git a/website/docs/assets/tools_subset_manager.png b/website/docs/assets/tools_subset_manager.png
new file mode 100644
index 0000000000..6a1e48dbd5
Binary files /dev/null and b/website/docs/assets/tools_subset_manager.png differ
diff --git a/website/docs/assets/unreal-avalon_tools.jpg b/website/docs/assets/unreal-avalon_tools.jpg
new file mode 100644
index 0000000000..531fbe516a
Binary files /dev/null and b/website/docs/assets/unreal-avalon_tools.jpg differ
diff --git a/website/docs/assets/unreal-container.jpg b/website/docs/assets/unreal-container.jpg
new file mode 100644
index 0000000000..f0c0a61e95
Binary files /dev/null and b/website/docs/assets/unreal-container.jpg differ
diff --git a/website/docs/assets/workfiles_1.png b/website/docs/assets/workfiles_1.png
new file mode 100644
index 0000000000..bcc74fb4b8
Binary files /dev/null and b/website/docs/assets/workfiles_1.png differ
diff --git a/website/docs/assets/workfiles_2.png b/website/docs/assets/workfiles_2.png
new file mode 100644
index 0000000000..1baf455587
Binary files /dev/null and b/website/docs/assets/workfiles_2.png differ
diff --git a/website/docs/changelog.md b/website/docs/changelog.md
new file mode 100644
index 0000000000..bec4a02173
--- /dev/null
+++ b/website/docs/changelog.md
@@ -0,0 +1,1043 @@
+---
+id: changelog
+title: Changelog
+sidebar_label: Changelog
+---
+
+## [2.16.0](https://github.com/pypeclub/pype/tree/2.16.0)
+
+ _**release date:** 2021-03-22_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.15.3...2.16.0)
+
+**Enhancements:**
+
+- Nuke: deadline submit limit group filter [\#1167](https://github.com/pypeclub/pype/pull/1167)
+- Maya: support for Deadline Group and Limit Groups - backport 2.x [\#1156](https://github.com/pypeclub/pype/pull/1156)
+- Maya: fixes for Redshift support [\#1152](https://github.com/pypeclub/pype/pull/1152)
+- Nuke: adding preset for a Read node name to all img and mov Loaders [\#1146](https://github.com/pypeclub/pype/pull/1146)
+- nuke deadline submit with environ var from presets overrides [\#1142](https://github.com/pypeclub/pype/pull/1142)
+- Change timers after task change [\#1138](https://github.com/pypeclub/pype/pull/1138)
+- Nuke: shortcuts for Pype menu [\#1127](https://github.com/pypeclub/pype/pull/1127)
+- Nuke: workfile template [\#1124](https://github.com/pypeclub/pype/pull/1124)
+- Sites local settings by site name [\#1117](https://github.com/pypeclub/pype/pull/1117)
+- Reset loader's asset selection on context change [\#1106](https://github.com/pypeclub/pype/pull/1106)
+- Bulk mov render publishing [\#1101](https://github.com/pypeclub/pype/pull/1101)
+- Photoshop: mark publishable instances [\#1093](https://github.com/pypeclub/pype/pull/1093)
+- Added ability to define BG color for extract review [\#1088](https://github.com/pypeclub/pype/pull/1088)
+- TVPaint extractor enhancement [\#1080](https://github.com/pypeclub/pype/pull/1080)
+- Photoshop: added support for .psb in workfiles [\#1078](https://github.com/pypeclub/pype/pull/1078)
+- Optionally add task to subset name [\#1072](https://github.com/pypeclub/pype/pull/1072)
+- Only extend clip range when collecting. [\#1008](https://github.com/pypeclub/pype/pull/1008)
+- Collect audio for farm reviews. [\#1073](https://github.com/pypeclub/pype/pull/1073)
+
+
+**Fixed bugs:**
+
+- Fix path spaces in jpeg extractor [\#1174](https://github.com/pypeclub/pype/pull/1174)
+- Maya: Bugfix: superclass for CreateCameraRig [\#1166](https://github.com/pypeclub/pype/pull/1166)
+- Maya: Submit to Deadline - fix typo in condition [\#1163](https://github.com/pypeclub/pype/pull/1163)
+- Avoid dot in repre extension [\#1125](https://github.com/pypeclub/pype/pull/1125)
+- Fix versions variable usage in standalone publisher [\#1090](https://github.com/pypeclub/pype/pull/1090)
+- Collect instance data fix subset query [\#1082](https://github.com/pypeclub/pype/pull/1082)
+- Fix getting the camera name. [\#1067](https://github.com/pypeclub/pype/pull/1067)
+- Nuke: Ensure "NUKE\_TEMP\_DIR" is not part of the Deadline job environment. [\#1064](https://github.com/pypeclub/pype/pull/1064)
+
+### [2.15.3](https://github.com/pypeclub/pype/tree/2.15.3)
+
+ _**release date:** 2021-02-26_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.15.2...2.15.3)
+
+**Enhancements:**
+
+- Maya: speedup renderable camera collection [\#1053](https://github.com/pypeclub/pype/pull/1053)
+- Harmony - add regex search to filter allowed task names for collectinโฆ [\#1047](https://github.com/pypeclub/pype/pull/1047)
+
+**Fixed bugs:**
+
+- Ftrack integrate hierarchy fix [\#1085](https://github.com/pypeclub/pype/pull/1085)
+- Explicit subset filter in anatomy instance data [\#1059](https://github.com/pypeclub/pype/pull/1059)
+- TVPaint frame offset [\#1057](https://github.com/pypeclub/pype/pull/1057)
+- Auto fix unicode strings [\#1046](https://github.com/pypeclub/pype/pull/1046)
+
+### [2.15.2](https://github.com/pypeclub/pype/tree/2.15.2)
+
+ _**release date:** 2021-02-19_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.15.1...2.15.2)
+
+**Enhancements:**
+
+- Maya: Vray scene publishing [\#1013](https://github.com/pypeclub/pype/pull/1013)
+
+**Fixed bugs:**
+
+- Fix entity move under project [\#1040](https://github.com/pypeclub/pype/pull/1040)
+- smaller nuke fixes from production [\#1036](https://github.com/pypeclub/pype/pull/1036)
+- TVPaint thumbnail extract fix [\#1031](https://github.com/pypeclub/pype/pull/1031)
+
+### [2.15.1](https://github.com/pypeclub/pype/tree/2.15.1)
+
+ _**release date:** 2021-02-12_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.15.0...2.15.1)
+
+**Enhancements:**
+
+- Delete version as loader action [\#1011](https://github.com/pypeclub/pype/pull/1011)
+- Delete old versions [\#445](https://github.com/pypeclub/pype/pull/445)
+
+**Fixed bugs:**
+
+- PS - remove obsolete functions from pywin32 [\#1006](https://github.com/pypeclub/pype/pull/1006)
+- Clone description of review session objects. [\#922](https://github.com/pypeclub/pype/pull/922)
+
+## [2.15.0](https://github.com/pypeclub/pype/tree/2.15.0)
+
+ _**release date:** 2021-02-09_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.14.6...2.15.0)
+
+**Enhancements:**
+
+- Resolve - loading and updating clips [\#932](https://github.com/pypeclub/pype/pull/932)
+- Release/2.15.0 [\#926](https://github.com/pypeclub/pype/pull/926)
+- Photoshop: add option for template.psd and prelaunch hook [\#894](https://github.com/pypeclub/pype/pull/894)
+- Nuke: deadline presets [\#993](https://github.com/pypeclub/pype/pull/993)
+- Maya: Alembic only set attributes that exists. [\#986](https://github.com/pypeclub/pype/pull/986)
+- Harmony: render local and handle fixes [\#981](https://github.com/pypeclub/pype/pull/981)
+- PSD Bulk export of ANIM group [\#965](https://github.com/pypeclub/pype/pull/965)
+- AE - added prelaunch hook for opening last or workfile from template [\#944](https://github.com/pypeclub/pype/pull/944)
+- PS - safer handling of loading of workfile [\#941](https://github.com/pypeclub/pype/pull/941)
+- Maya: Handling Arnold referenced AOVs [\#938](https://github.com/pypeclub/pype/pull/938)
+- TVPaint: switch layer IDs for layer names during identification [\#903](https://github.com/pypeclub/pype/pull/903)
+- TVPaint audio/sound loader [\#893](https://github.com/pypeclub/pype/pull/893)
+- Clone review session with children. [\#891](https://github.com/pypeclub/pype/pull/891)
+- Simple compositing data packager for freelancers [\#884](https://github.com/pypeclub/pype/pull/884)
+- Harmony deadline submission [\#881](https://github.com/pypeclub/pype/pull/881)
+- Maya: Optionally hide image planes from reviews. [\#840](https://github.com/pypeclub/pype/pull/840)
+- Maya: handle referenced AOVs for Vray [\#824](https://github.com/pypeclub/pype/pull/824)
+- DWAA/DWAB support on windows [\#795](https://github.com/pypeclub/pype/pull/795)
+- Unreal: animation, layout and setdress updates [\#695](https://github.com/pypeclub/pype/pull/695)
+
+**Fixed bugs:**
+
+- Maya: Looks - disable hardlinks [\#995](https://github.com/pypeclub/pype/pull/995)
+- Fix Ftrack custom attribute update [\#982](https://github.com/pypeclub/pype/pull/982)
+- Prores ks in burnin script [\#960](https://github.com/pypeclub/pype/pull/960)
+- terminal.py crash on import [\#839](https://github.com/pypeclub/pype/pull/839)
+- Extract review handle bizarre pixel aspect ratio [\#990](https://github.com/pypeclub/pype/pull/990)
+- Nuke: add nuke related env var to sumbission [\#988](https://github.com/pypeclub/pype/pull/988)
+- Nuke: missing preset's variable [\#984](https://github.com/pypeclub/pype/pull/984)
+- Get creator by name fix [\#979](https://github.com/pypeclub/pype/pull/979)
+- Fix update of project's tasks on Ftrack sync [\#972](https://github.com/pypeclub/pype/pull/972)
+- nuke: wrong frame offset in mov loader [\#971](https://github.com/pypeclub/pype/pull/971)
+- Create project structure action fix multiroot [\#967](https://github.com/pypeclub/pype/pull/967)
+- PS: remove pywin installation from hook [\#964](https://github.com/pypeclub/pype/pull/964)
+- Prores ks in burnin script [\#959](https://github.com/pypeclub/pype/pull/959)
+- Subset family is now stored in subset document [\#956](https://github.com/pypeclub/pype/pull/956)
+- DJV new version arguments [\#954](https://github.com/pypeclub/pype/pull/954)
+- TV Paint: Fix single frame Sequence [\#953](https://github.com/pypeclub/pype/pull/953)
+- nuke: missing `file` knob update [\#933](https://github.com/pypeclub/pype/pull/933)
+- Photoshop: Create from single layer was failing [\#920](https://github.com/pypeclub/pype/pull/920)
+- Nuke: baking mov with correct colorspace inherited from write [\#909](https://github.com/pypeclub/pype/pull/909)
+- Launcher fix actions discover [\#896](https://github.com/pypeclub/pype/pull/896)
+- Get the correct file path for the updated mov. [\#889](https://github.com/pypeclub/pype/pull/889)
+- Maya: Deadline submitter - shared data access violation [\#831](https://github.com/pypeclub/pype/pull/831)
+- Maya: Take into account vray master AOV switch [\#822](https://github.com/pypeclub/pype/pull/822)
+
+**Merged pull requests:**
+
+- Refactor blender to 3.0 format [\#934](https://github.com/pypeclub/pype/pull/934)
+
+### [2.14.6](https://github.com/pypeclub/pype/tree/2.14.6)
+
+ _**release date:** 2021-01-15_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.14.5...2.14.6)
+
+**Fixed bugs:**
+
+- Nuke: improving of hashing path [\#885](https://github.com/pypeclub/pype/pull/885)
+
+**Merged pull requests:**
+
+- Hiero: cut videos with correct secons [\#892](https://github.com/pypeclub/pype/pull/892)
+- Faster sync to avalon preparation [\#869](https://github.com/pypeclub/pype/pull/869)
+
+### [2.14.5](https://github.com/pypeclub/pype/tree/2.14.5)
+
+ _**release date:** 2021-01-06_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.14.4...2.14.5)
+
+**Merged pull requests:**
+
+- Pype logger refactor [\#866](https://github.com/pypeclub/pype/pull/866)
+
+### [2.14.4](https://github.com/pypeclub/pype/tree/2.14.4)
+
+ _**release date:** 2020-12-18_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.14.3...2.14.4)
+
+**Merged pull requests:**
+
+- Fix - AE - added explicit cast to int [\#837](https://github.com/pypeclub/pype/pull/837)
+
+### [2.14.3](https://github.com/pypeclub/pype/tree/2.14.3)
+
+ _**release date:** 2020-12-16_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.14.2...2.14.3)
+
+**Fixed bugs:**
+
+- TVPaint repair invalid metadata [\#809](https://github.com/pypeclub/pype/pull/809)
+- Feature/push hier value to nonhier action [\#807](https://github.com/pypeclub/pype/pull/807)
+- Harmony: fix palette and image sequence loader [\#806](https://github.com/pypeclub/pype/pull/806)
+
+**Merged pull requests:**
+
+- respecting space in path [\#823](https://github.com/pypeclub/pype/pull/823)
+
+### [2.14.2](https://github.com/pypeclub/pype/tree/2.14.2)
+
+ _**release date:** 2020-12-04_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.14.1...2.14.2)
+
+**Enhancements:**
+
+- Collapsible wrapper in settings [\#767](https://github.com/pypeclub/pype/pull/767)
+
+**Fixed bugs:**
+
+- Harmony: template extraction and palettes thumbnails on mac [\#768](https://github.com/pypeclub/pype/pull/768)
+- TVPaint store context to workfile metadata \(764\) [\#766](https://github.com/pypeclub/pype/pull/766)
+- Extract review audio cut fix [\#763](https://github.com/pypeclub/pype/pull/763)
+
+**Merged pull requests:**
+
+- AE: fix publish after background load [\#781](https://github.com/pypeclub/pype/pull/781)
+- TVPaint store members key [\#769](https://github.com/pypeclub/pype/pull/769)
+
+### [2.14.1](https://github.com/pypeclub/pype/tree/2.14.1)
+
+ _**release date:** 2020-11-27_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.14.0...2.14.1)
+
+**Enhancements:**
+
+- Settings required keys in modifiable dict [\#770](https://github.com/pypeclub/pype/pull/770)
+- Extract review may not add audio to output [\#761](https://github.com/pypeclub/pype/pull/761)
+
+**Fixed bugs:**
+
+- After Effects: frame range, file format and render source scene fixes [\#760](https://github.com/pypeclub/pype/pull/760)
+- Hiero: trimming review with clip event number [\#754](https://github.com/pypeclub/pype/pull/754)
+- TVPaint: fix updating of loaded subsets [\#752](https://github.com/pypeclub/pype/pull/752)
+- Maya: Vray handling of default aov [\#748](https://github.com/pypeclub/pype/pull/748)
+- Maya: multiple renderable cameras in layer didn't work [\#744](https://github.com/pypeclub/pype/pull/744)
+- Ftrack integrate custom attributes fix [\#742](https://github.com/pypeclub/pype/pull/742)
+
+
+
+## [2.14.0](https://github.com/pypeclub/pype/tree/2.14.0)
+
+ _**release date:** 2020-11-24_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.7...2.14.0)
+
+**Enhancements:**
+
+- Ftrack: Event for syncing shot or asset status with tasks.[\#736](https://github.com/pypeclub/pype/pull/736)
+- Maya: add camera rig publishing option [\#721](https://github.com/pypeclub/pype/pull/721)
+- Maya: Ask user to select non-default camera from scene or create a new. [\#678](https://github.com/pypeclub/pype/pull/678)
+- Maya: Camera name can be added to burnins. [\#674](https://github.com/pypeclub/pype/pull/674)
+- Sort instances by label in pyblish gui [\#719](https://github.com/pypeclub/pype/pull/719)
+- Synchronize ftrack hierarchical and shot attributes [\#716](https://github.com/pypeclub/pype/pull/716)
+- Standalone Publisher: Publish editorial from separate image sequences [\#699](https://github.com/pypeclub/pype/pull/699)
+- Render publish plugins abstraction [\#687](https://github.com/pypeclub/pype/pull/687)
+- TV Paint: image loader with options [\#675](https://github.com/pypeclub/pype/pull/675)
+- **TV Paint (Beta):** initial implementation of creators and local rendering [\#693](https://github.com/pypeclub/pype/pull/693)
+- **After Effects (Beta):** base integration with loaders [\#667](https://github.com/pypeclub/pype/pull/667)
+- Harmony: Javascript refactoring and overall stability improvements [\#666](https://github.com/pypeclub/pype/pull/666)
+
+**Fixed bugs:**
+
+- TVPaint: extract review fix [\#740](https://github.com/pypeclub/pype/pull/740)
+- After Effects: Review were not being sent to ftrack [\#738](https://github.com/pypeclub/pype/pull/738)
+- Maya: vray proxy was not loading [\#722](https://github.com/pypeclub/pype/pull/722)
+- Maya: Vray expected file fixes [\#682](https://github.com/pypeclub/pype/pull/682)
+
+**Deprecated:**
+
+- Removed artist view from pyblish gui [\#717](https://github.com/pypeclub/pype/pull/717)
+- Maya: disable legacy override check for cameras [\#715](https://github.com/pypeclub/pype/pull/715)
+
+
+
+
+### [2.13.7](https://github.com/pypeclub/pype/tree/2.13.7)
+
+ _**release date:** 2020-11-19_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.6...2.13.7)
+
+**Merged pull requests:**
+
+- fix\(SP\): getting fps from context instead of nonexistent entity [\#729](https://github.com/pypeclub/pype/pull/729)
+
+
+
+
+### [2.13.6](https://github.com/pypeclub/pype/tree/2.13.6)
+
+ _**release date:** 2020-11-15_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.5...2.13.6)
+
+**Fixed bugs:**
+
+- Maya workfile version wasn't syncing with renders properly [\#711](https://github.com/pypeclub/pype/pull/711)
+- Maya: Fix for publishing multiple cameras with review from the same scene [\#710](https://github.com/pypeclub/pype/pull/710)
+
+
+
+
+### [2.13.5](https://github.com/pypeclub/pype/tree/2.13.5)
+
+ _**release date:** 2020-11-12_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.4...2.13.5)
+
+
+**Fixed bugs:**
+
+- Wrong thumbnail file was picked when publishing sequence in standalone publisher [\#703](https://github.com/pypeclub/pype/pull/703)
+- Fix: Burnin data pass and FFmpeg tool check [\#701](https://github.com/pypeclub/pype/pull/701)
+
+
+
+
+### [2.13.4](https://github.com/pypeclub/pype/tree/2.13.4)
+
+ _**release date:** 2020-11-09_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.3...2.13.4)
+
+
+**Fixed bugs:**
+
+- Photoshop unhiding hidden layers [\#688](https://github.com/pypeclub/pype/issues/688)
+- Nuke: Favorite directories "shot dir" "project dir" - not working \#684 [\#685](https://github.com/pypeclub/pype/pull/685)
+
+
+
+
+
+### [2.13.3](https://github.com/pypeclub/pype/tree/2.13.3)
+
+ _**release date:** _2020-11-03_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.2...2.13.3)
+
+**Fixed bugs:**
+
+- Fix ffmpeg executable path with spaces [\#680](https://github.com/pypeclub/pype/pull/680)
+- Hotfix: Added default version number [\#679](https://github.com/pypeclub/pype/pull/679)
+
+
+
+
+### [2.13.2](https://github.com/pypeclub/pype/tree/2.13.2)
+
+ _**release date:** 2020-10-28_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.1...2.13.2)
+
+**Fixed bugs:**
+
+- Nuke: wrong conditions when fixing legacy write nodes [\#665](https://github.com/pypeclub/pype/pull/665)
+
+
+
+
+### [2.13.1](https://github.com/pypeclub/pype/tree/2.13.1)
+
+ _**release date:** 2020-10-23_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.13.0...2.13.1)
+
+**Fixed bugs:**
+
+- Photoshop: Layer name is not propagating to metadata [\#654](https://github.com/pypeclub/pype/issues/654)
+- Photoshop: Loader in fails with "can't set attribute" [\#650](https://github.com/pypeclub/pype/issues/650)
+- Hiero: Review video file adding one frame to the end [\#659](https://github.com/pypeclub/pype/issues/659)
+
+
+
+## [2.13.0](https://github.com/pypeclub/pype/tree/2.13.0)
+
+ _**release date:** 2020-10-16_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.12.5...2.13.0)
+
+**Enhancements:**
+
+- Deadline Output Folder [\#636](https://github.com/pypeclub/pype/issues/636)
+- Nuke Camera Loader [\#565](https://github.com/pypeclub/pype/issues/565)
+- Deadline publish job shows publishing output folder [\#649](https://github.com/pypeclub/pype/pull/649)
+- Get latest version in lib [\#642](https://github.com/pypeclub/pype/pull/642)
+- Improved publishing of multiple representation from SP [\#638](https://github.com/pypeclub/pype/pull/638)
+- TvPaint: launch shot work file from within Ftrack [\#631](https://github.com/pypeclub/pype/pull/631)
+- Add mp4 support for RV action. [\#628](https://github.com/pypeclub/pype/pull/628)
+- Maya: allow renders to have version synced with workfile [\#618](https://github.com/pypeclub/pype/pull/618)
+- Renaming nukestudio host folder to hiero [\#617](https://github.com/pypeclub/pype/pull/617)
+- Harmony: More efficient publishing [\#615](https://github.com/pypeclub/pype/pull/615)
+- Ftrack server action improvement [\#608](https://github.com/pypeclub/pype/pull/608)
+- Deadline user defaults to pype username if present [\#607](https://github.com/pypeclub/pype/pull/607)
+- Standalone publisher now has icon [\#606](https://github.com/pypeclub/pype/pull/606)
+- Nuke render write targeting knob improvement [\#603](https://github.com/pypeclub/pype/pull/603)
+- Animated pyblish gui [\#602](https://github.com/pypeclub/pype/pull/602)
+- Maya: Deadline - make use of asset dependencies optional [\#591](https://github.com/pypeclub/pype/pull/591)
+- Nuke: Publishing, loading and updating alembic cameras [\#575](https://github.com/pypeclub/pype/pull/575)
+- Maya: add look assigner to pype menu even if scriptsmenu is not available [\#573](https://github.com/pypeclub/pype/pull/573)
+- Store task types in the database [\#572](https://github.com/pypeclub/pype/pull/572)
+- Maya: Tiled EXRs to scanline EXRs render option [\#512](https://github.com/pypeclub/pype/pull/512)
+- Fusion: basic integration refresh [\#452](https://github.com/pypeclub/pype/pull/452)
+
+**Fixed bugs:**
+
+- Burnin script did not propagate ffmpeg output [\#640](https://github.com/pypeclub/pype/issues/640)
+- Pyblish-pype spacer in terminal wasn't transparent [\#646](https://github.com/pypeclub/pype/pull/646)
+- Lib subprocess without logger [\#645](https://github.com/pypeclub/pype/pull/645)
+- Nuke: prevent crash if we only have single frame in sequence [\#644](https://github.com/pypeclub/pype/pull/644)
+- Burnin script logs better output [\#641](https://github.com/pypeclub/pype/pull/641)
+- Missing audio on farm submission. [\#639](https://github.com/pypeclub/pype/pull/639)
+- review from imagesequence error [\#633](https://github.com/pypeclub/pype/pull/633)
+- Hiero: wrong order of fps clip instance data collecting [\#627](https://github.com/pypeclub/pype/pull/627)
+- Add source for review instances. [\#625](https://github.com/pypeclub/pype/pull/625)
+- Task processing in event sync [\#623](https://github.com/pypeclub/pype/pull/623)
+- sync to avalon doesn t remove renamed task [\#619](https://github.com/pypeclub/pype/pull/619)
+- Intent publish setting wasn't working with default value [\#562](https://github.com/pypeclub/pype/pull/562)
+- Maya: Updating a look where the shader name changed, leaves the geo without a shader [\#514](https://github.com/pypeclub/pype/pull/514)
+
+
+### [2.12.5](https://github.com/pypeclub/pype/tree/2.12.5)
+
+_**release date:** 2020-10-14_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.12.4...2.12.5)
+
+**Fixed Bugs:**
+
+- Harmony: Disable application launch logic [\#637](https://github.com/pypeclub/pype/pull/637)
+
+### [2.12.4](https://github.com/pypeclub/pype/tree/2.12.4)
+
+_**release date:** 2020-10-08_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.12.3...2.12.4)
+
+**Fixed bugs:**
+
+- Sync to avalon doesn't remove renamed task [\#605](https://github.com/pypeclub/pype/issues/605)
+
+
+**Merged pull requests:**
+
+- NukeStudio: small fixes [\#622](https://github.com/pypeclub/pype/pull/622)
+- NukeStudio: broken order of plugins [\#620](https://github.com/pypeclub/pype/pull/620)
+
+### [2.12.3](https://github.com/pypeclub/pype/tree/2.12.3)
+
+_**release date:** 2020-10-06_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.12.2...2.12.3)
+
+**Fixed bugs:**
+
+- Harmony: empty scene contamination [\#583](https://github.com/pypeclub/pype/issues/583)
+- Edit publishing in SP doesn't respect shot selection for publishing [\#542](https://github.com/pypeclub/pype/issues/542)
+- Pathlib breaks compatibility with python2 hosts [\#281](https://github.com/pypeclub/pype/issues/281)
+- Maya: fix maya scene type preset exception [\#569](https://github.com/pypeclub/pype/pull/569)
+- Standalone publisher editorial plugins interfering [\#580](https://github.com/pypeclub/pype/pull/580)
+
+### [2.12.2](https://github.com/pypeclub/pype/tree/2.12.2)
+
+_**release date:** 2020-09-25_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.12.1...2.12.2)
+
+**Fixed bugs:**
+
+- Harmony: Saving heavy scenes will crash [\#507](https://github.com/pypeclub/pype/issues/507)
+- Extract review a representation name with `\*\_burnin` [\#388](https://github.com/pypeclub/pype/issues/388)
+- Hierarchy data was not considering active instances [\#551](https://github.com/pypeclub/pype/pull/551)
+
+### [2.12.1](https://github.com/pypeclub/pype/tree/2.12.1)
+
+_**release date:** 2020-09-15_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.12.0...2.12.1)
+
+**Fixed bugs:**
+
+- dependency security alert ! [\#484](https://github.com/pypeclub/pype/issues/484)
+- Maya: RenderSetup is missing update [\#106](https://github.com/pypeclub/pype/issues/106)
+- \ extract effects creates new instance [\#78](https://github.com/pypeclub/pype/issues/78)
+
+
+
+
+## [2.12.0](https://github.com/pypeclub/pype/tree/2.12.0) ##
+
+_**release date:** 09 Sept 2020_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.11.8...2.12.0)
+
+**Enhancements:**
+
+- Pype now uses less mongo connections [\#509](https://github.com/pypeclub/pype/pull/509)
+- Nuke: adding image loader [\#499](https://github.com/pypeclub/pype/pull/499)
+- Completely new application launcher [\#443](https://github.com/pypeclub/pype/pull/443)
+- Maya: Optional skip review on renders. [\#441](https://github.com/pypeclub/pype/pull/441)
+- Ftrack: Option to push status from task to latest version [\#440](https://github.com/pypeclub/pype/pull/440)
+- Maya: Properly containerize image plane loads. [\#434](https://github.com/pypeclub/pype/pull/434)
+- Option to keep the review files. [\#426](https://github.com/pypeclub/pype/pull/426)
+- Maya: Isolate models during preview publishing [\#425](https://github.com/pypeclub/pype/pull/425)
+- Ftrack attribute group is backwards compatible [\#418](https://github.com/pypeclub/pype/pull/418)
+- Maya: Publishing of tile renderings on Deadline [\#398](https://github.com/pypeclub/pype/pull/398)
+- Slightly better logging gui [\#383](https://github.com/pypeclub/pype/pull/383)
+- Standalonepublisher: editorial family features expansion [\#411](https://github.com/pypeclub/pype/pull/411)
+
+**Fixed bugs:**
+
+- Maya: Fix tile order for Draft Tile Assembler [\#511](https://github.com/pypeclub/pype/pull/511)
+- Remove extra dash [\#501](https://github.com/pypeclub/pype/pull/501)
+- Fix: strip dot from repre names in single frame renders [\#498](https://github.com/pypeclub/pype/pull/498)
+- Better handling of destination during integrating [\#485](https://github.com/pypeclub/pype/pull/485)
+- Fix: allow thumbnail creation for single frame renders [\#460](https://github.com/pypeclub/pype/pull/460)
+- added missing argument to launch\_application in ftrack app handler [\#453](https://github.com/pypeclub/pype/pull/453)
+- Burnins: Copy bit rate of input video to match quality. [\#448](https://github.com/pypeclub/pype/pull/448)
+- Standalone publisher is now independent from tray [\#442](https://github.com/pypeclub/pype/pull/442)
+- Bugfix/empty enumerator attributes [\#436](https://github.com/pypeclub/pype/pull/436)
+- Fixed wrong order of "other" category collapssing in publisher [\#435](https://github.com/pypeclub/pype/pull/435)
+- Multiple reviews where being overwritten to one. [\#424](https://github.com/pypeclub/pype/pull/424)
+- Cleanup plugin fail on instances without staging dir [\#420](https://github.com/pypeclub/pype/pull/420)
+- deprecated -intra parameter in ffmpeg to new `-g` [\#417](https://github.com/pypeclub/pype/pull/417)
+- Delivery action can now work with entered path [\#397](https://github.com/pypeclub/pype/pull/397)
+
+
+
+
+
+### [2.11.8](https://github.com/pypeclub/pype/tree/2.11.8) ##
+
+_**release date:** 27 Aug 2020_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.11.7...2.11.8)
+
+**Fixed bugs:**
+
+- pyblish pype - other group is collapsed before plugins are done [\#431](https://github.com/pypeclub/pype/issues/431)
+- Alpha white edges in harmony on PNGs [\#412](https://github.com/pypeclub/pype/issues/412)
+- harmony image loader picks wrong representations [\#404](https://github.com/pypeclub/pype/issues/404)
+- Clockify crash when response contain symbol not allowed by UTF-8 [\#81](https://github.com/pypeclub/pype/issues/81)
+
+
+
+
+### [2.11.7](https://github.com/pypeclub/pype/tree/2.11.7) ##
+
+_**release date:** 21 Aug 2020_
+
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.11.6...2.11.7)
+
+**Fixed bugs:**
+
+- Clean Up Baked Movie [\#369](https://github.com/pypeclub/pype/issues/369)
+- celaction last workfile wasn't picked up correctly [\#459](https://github.com/pypeclub/pype/pull/459)
+
+
+
+### [2.11.5](https://github.com/pypeclub/pype/tree/2.11.5) ##
+
+_**release date:** 13 Aug 2020_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.11.4...2.11.5)
+
+**Enhancements:**
+
+- Standalone publisher now only groups sequence if the extension is known [\#439](https://github.com/pypeclub/pype/pull/439)
+
+**Fixed bugs:**
+
+- Logs have been disable for editorial by default to speed up publishing [\#433](https://github.com/pypeclub/pype/pull/433)
+- Various fixes for celaction [\#430](https://github.com/pypeclub/pype/pull/430)
+- Harmony: invalid variable scope in validate scene settings [\#428](https://github.com/pypeclub/pype/pull/428)
+- Harmomny: new representation name for audio was not accepted [\#427](https://github.com/pypeclub/pype/pull/427)
+
+
+
+
+### [2.11.3](https://github.com/pypeclub/pype/tree/2.11.3) ##
+
+_**release date:** 4 Aug 2020_
+
+[Full Changelog](https://github.com/pypeclub/pype/compare/2.11.2...2.11.3)
+
+**Fixed bugs:**
+
+- Harmony: publishing performance issues [\#408](https://github.com/pypeclub/pype/pull/408)
+
+
+
+
+## 2.11.0 ##
+
+_**release date:** 27 July 2020_
+
+**new:**
+- _(blender)_ namespace support [\#341](https://github.com/pypeclub/pype/pull/341)
+- _(blender)_ start end frames [\#330](https://github.com/pypeclub/pype/pull/330)
+- _(blender)_ camera asset [\#322](https://github.com/pypeclub/pype/pull/322)
+- _(pype)_ toggle instances per family in pyblish GUI [\#320](https://github.com/pypeclub/pype/pull/320)
+- _(pype)_ current release version is now shown in the tray menu [#379](https://github.com/pypeclub/pype/pull/379)
+
+
+**improved:**
+- _(resolve)_ tagging for publish [\#239](https://github.com/pypeclub/pype/issues/239)
+- _(pype)_ Support publishing a subset of shots with standalone editorial [\#336](https://github.com/pypeclub/pype/pull/336)
+- _(harmony)_ Basic support for palettes [\#324](https://github.com/pypeclub/pype/pull/324)
+- _(photoshop)_ Flag outdated containers on startup and publish. [\#309](https://github.com/pypeclub/pype/pull/309)
+- _(harmony)_ Flag Outdated containers [\#302](https://github.com/pypeclub/pype/pull/302)
+- _(photoshop)_ Publish review [\#298](https://github.com/pypeclub/pype/pull/298)
+- _(pype)_ Optional Last workfile launch [\#365](https://github.com/pypeclub/pype/pull/365)
+
+
+**fixed:**
+- _(premiere)_ workflow fixes [\#346](https://github.com/pypeclub/pype/pull/346)
+- _(pype)_ pype-setup does not work with space in path [\#327](https://github.com/pypeclub/pype/issues/327)
+- _(ftrack)_ Ftrack delete action cause circular error [\#206](https://github.com/pypeclub/pype/issues/206)
+- _(nuke)_ Priority was forced to 50 [\#345](https://github.com/pypeclub/pype/pull/345)
+- _(nuke)_ Fix ValidateNukeWriteKnobs [\#340](https://github.com/pypeclub/pype/pull/340)
+- _(maya)_ If camera attributes are connected, we can ignore them. [\#339](https://github.com/pypeclub/pype/pull/339)
+- _(pype)_ stop appending of tools environment to existing env [\#337](https://github.com/pypeclub/pype/pull/337)
+- _(ftrack)_ Ftrack timeout needs to look at AVALON\_TIMEOUT [\#325](https://github.com/pypeclub/pype/pull/325)
+- _(harmony)_ Only zip files are supported. [\#310](https://github.com/pypeclub/pype/pull/310)
+- _(pype)_ hotfix/Fix event server mongo uri [\#305](https://github.com/pypeclub/pype/pull/305)
+- _(photoshop)_ Subset was not named or validated correctly. [\#304](https://github.com/pypeclub/pype/pull/304)
+
+
+
+
+
+## 2.10.0 ##
+
+_**release date:** 17 June 2020_
+
+**new:**
+- _(harmony)_ **Toon Boom Harmony** has been greatly extended to support rigging, scene build, animation and rendering workflows. [#270](https://github.com/pypeclub/pype/issues/270) [#271](https://github.com/pypeclub/pype/issues/271) [#190](https://github.com/pypeclub/pype/issues/190) [#191](https://github.com/pypeclub/pype/issues/191) [#172](https://github.com/pypeclub/pype/issues/172) [#168](https://github.com/pypeclub/pype/issues/168)
+- _(pype)_ Added support for rudimentary **edl publishing** into individual shots. [#265](https://github.com/pypeclub/pype/issues/265)
+- _(celaction)_ Simple **Celaction** integration has been added with support for workfiles and rendering. [#255](https://github.com/pypeclub/pype/issues/255)
+- _(maya)_ Support for multiple job types when submitting to the farm. We can now render Maya or Standalone render jobs for Vray and Arnold (limited support for arnold) [#204](https://github.com/pypeclub/pype/issues/204)
+- _(photoshop)_ Added initial support for Photoshop [#232](https://github.com/pypeclub/pype/issues/232)
+
+**improved:**
+- _(blender)_ Updated support for rigs and added support Layout family [#233](https://github.com/pypeclub/pype/issues/233) [#226](https://github.com/pypeclub/pype/issues/226)
+- _(premiere)_ It is now possible to choose different storage root for workfiles of different task types. [#255](https://github.com/pypeclub/pype/issues/255)
+- _(maya)_ Support for unmerged AOVs in Redshift multipart EXRs [#197](https://github.com/pypeclub/pype/issues/197)
+- _(pype)_ Pype repository has been refactored in preparation for 3.0 release [#169](https://github.com/pypeclub/pype/issues/169)
+- _(deadline)_ All file dependencies are now passed to deadline from maya to prevent premature start of rendering if caches or textures haven't been coppied over yet. [#195](https://github.com/pypeclub/pype/issues/195)
+- _(nuke)_ Script validation can now be made optional. [#194](https://github.com/pypeclub/pype/issues/194)
+- _(pype)_ Publishing can now be stopped at any time. [#194](https://github.com/pypeclub/pype/issues/194)
+
+**fix:**
+- _(pype)_ Pyblish-lite has been integrated into pype repository, plus various publishing GUI fixes. [#274](https://github.com/pypeclub/pype/issues/274) [#275](https://github.com/pypeclub/pype/issues/275) [#268](https://github.com/pypeclub/pype/issues/268) [#227](https://github.com/pypeclub/pype/issues/227) [#238](https://github.com/pypeclub/pype/issues/238)
+- _(maya)_ Alembic extractor was getting wrong frame range type in certain scenarios [#254](https://github.com/pypeclub/pype/issues/254)
+- _(maya)_ Attaching a render to subset in maya was not passing validation in certain scenarios [#256](https://github.com/pypeclub/pype/issues/256)
+- _(ftrack)_ Various small fixes to ftrack sync [#263](https://github.com/pypeclub/pype/issues/263) [#259](https://github.com/pypeclub/pype/issues/259)
+- _(maya)_ Look extraction is now able to skp invalid connections in shaders [#207](https://github.com/pypeclub/pype/issues/207)
+
+
+
+
+
+## 2.9.0 ##
+
+_**release date:** 25 May 2020_
+
+**new:**
+- _(pype)_ Support for **Multiroot projects**. You can now store project data on multiple physical or virtual storages and target individual publishes to these locations. For instance render can be stored on a faster storage than the rest of the project. [#145](https://github.com/pypeclub/pype/issues/145), [#38](https://github.com/pypeclub/pype/issues/38)
+- _(harmony)_ Basic implementation of **Toon Boom Harmony** has been added. [#142](https://github.com/pypeclub/pype/issues/142)
+- _(pype)_ OSX support is in public beta now. There are issues to be expected, but the main implementation should be functional. [#141](https://github.com/pypeclub/pype/issues/141)
+
+
+**improved:**
+
+- _(pype)_ **Review extractor** has been completely rebuilt. It now supports granular filtering so you can create **multiple outputs** for different tasks, families or hosts. [#103](https://github.com/pypeclub/pype/issues/103), [#166](https://github.com/pypeclub/pype/issues/166), [#165](https://github.com/pypeclub/pype/issues/165)
+- _(pype)_ **Burnin** generation had been extended to **support same multi-output filtering** as review extractor [#103](https://github.com/pypeclub/pype/issues/103)
+- _(pype)_ Publishing file templates can now be specified in config for each individual family [#114](https://github.com/pypeclub/pype/issues/114)
+- _(pype)_ Studio specific plugins can now be appended to pype standard publishing plugins. [#112](https://github.com/pypeclub/pype/issues/112)
+- _(nukestudio)_ Reviewable clips no longer need to be previously cut, exported and re-imported to timeline. **Pype can now dynamically cut reviewable quicktimes** from continuous offline footage during publishing. [#23](https://github.com/pypeclub/pype/issues/23)
+- _(deadline)_ Deadline can now correctly differentiate between staging and production pype. [#154](https://github.com/pypeclub/pype/issues/154)
+- _(deadline)_ `PYPE_PYTHON_EXE` env variable can now be used to direct publishing to explicit python installation. [#120](https://github.com/pypeclub/pype/issues/120)
+- _(nuke)_ Nuke now check for new version of loaded data on file open. [#140](https://github.com/pypeclub/pype/issues/140)
+- _(nuke)_ frame range and limit checkboxes are now exposed on write node. [#119](https://github.com/pypeclub/pype/issues/119)
+
+
+
+**fix:**
+
+- _(nukestudio)_ Project Location was using backslashes which was breaking nukestudio native exporting in certains configurations [#82](https://github.com/pypeclub/pype/issues/82)
+- _(nukestudio)_ Duplicity in hierarchy tags was prone to throwing publishing error [#130](https://github.com/pypeclub/pype/issues/130), [#144](https://github.com/pypeclub/pype/issues/144)
+- _(ftrack)_ multiple stability improvements [#157](https://github.com/pypeclub/pype/issues/157), [#159](https://github.com/pypeclub/pype/issues/159), [#128](https://github.com/pypeclub/pype/issues/128), [#118](https://github.com/pypeclub/pype/issues/118), [#127](https://github.com/pypeclub/pype/issues/127)
+- _(deadline)_ multipart EXRs were stopping review publishing on the farm. They are still not supported for automatic review generation, but the publish will go through correctly without the quicktime. [#155](https://github.com/pypeclub/pype/issues/155)
+- _(deadline)_ If deadline is non-responsive it will no longer freeze host when publishing [#149](https://github.com/pypeclub/pype/issues/149)
+- _(deadline)_ Sometimes deadline was trying to launch render before all the source data was coppied over. [#137](https://github.com/pypeclub/pype/issues/137) _(harmony)_ Basic implementation of **Toon Boom Harmony** has been added. [#142](https://github.com/pypeclub/pype/issues/142)
+- _(nuke)_ Filepath knob wasn't updated properly. [#131](https://github.com/pypeclub/pype/issues/131)
+- _(maya)_ When extracting animation, the "Write Color Set" options on the instance were not respected. [#108](https://github.com/pypeclub/pype/issues/108)
+- _(maya)_ Attribute overrides for AOV only worked for the legacy render layers. Now it works for new render setup as well [#132](https://github.com/pypeclub/pype/issues/132)
+- _(maya)_ Stability and usability improvements in yeti workflow [#104](https://github.com/pypeclub/pype/issues/104)
+
+
+
+
+
+## 2.8.0 ##
+
+_**release date:** 20 April 2020_
+
+**new:**
+
+- _(pype)_ Option to generate slates from json templates. [PYPE-628] [#26](https://github.com/pypeclub/pype/issues/26)
+- _(pype)_ It is now possible to automate loading of published subsets into any scene. Documentation will follow :). [PYPE-611] [#24](https://github.com/pypeclub/pype/issues/24)
+
+**fix:**
+
+- _(maya)_ Some Redshift render tokens could break publishing. [PYPE-778] [#33](https://github.com/pypeclub/pype/issues/33)
+- _(maya)_ Publish was not preserving maya file extension. [#39](https://github.com/pypeclub/pype/issues/39)
+- _(maya)_ Rig output validator was failing on nodes without shapes. [#40](https://github.com/pypeclub/pype/issues/40)
+- _(maya)_ Yeti caches can now be properly versioned up in the scene inventory. [#40](https://github.com/pypeclub/pype/issues/40)
+- _(nuke)_ Build first workfiles was not accepting jpeg sequences. [#34](https://github.com/pypeclub/pype/issues/34)
+- _(deadline)_ Trying to generate ffmpeg review from multipart EXRs no longer crashes publishing. [PYPE-781]
+- _(deadline)_ Render publishing is more stable in multiplatform environments. [PYPE-775]
+
+
+
+
+
+## 2.7.0 ##
+
+_**release date:** 30 March 2020_
+
+**new:**
+
+- _(maya)_ Artist can now choose to load multiple references of the same subset at once [PYPE-646, PYPS-81]
+- _(nuke)_ Option to use named OCIO colorspaces for review colour baking. [PYPS-82]
+- _(pype)_ Pype can now work with `master` versions for publishing and loading. These are non-versioned publishes that are overwritten with the latest version during publish. These are now supported in all the GUIs, but their publishing is deactivated by default. [PYPE-653]
+- _(blender)_ Added support for basic blender workflow. We currently support `rig`, `model` and `animation` families. [PYPE-768]
+- _(pype)_ Source timecode can now be used in burn-ins. [PYPE-777]
+- _(pype)_ Review outputs profiles can now specify delivery resolution different than project setting [PYPE-759]
+- _(nuke)_ Bookmark to current context is now added automatically to all nuke browser windows. [PYPE-712]
+
+**change:**
+
+- _(maya)_ It is now possible to publish camera without. baking. Keep in mind that unbaked cameras can't be guaranteed to work in other hosts. [PYPE-595]
+- _(maya)_ All the renders from maya are now grouped in the loader by their Layer name. [PYPE-482]
+- _(nuke/hiero)_ Any publishes from nuke and hiero can now be versioned independently of the workfile. [PYPE-728]
+
+
+**fix:**
+
+- _(nuke)_ Mixed slashes caused issues in ocio config path.
+- _(pype)_ Intent field in pyblish GUI was passing label instead of value to ftrack. [PYPE-733]
+- _(nuke)_ Publishing of pre-renders was inconsistent. [PYPE-766]
+- _(maya)_ Handles and frame ranges were inconsistent in various places during publishing.
+- _(nuke)_ Nuke was crashing if it ran into certain missing knobs. For example DPX output missing `autocrop` [PYPE-774]
+- _(deadline)_ Project overrides were not working properly with farm render publishing.
+- _(hiero)_ Problems with single frame plates publishing.
+- _(maya)_ Redshift RenderPass token were breaking render publishing. [PYPE-778]
+- _(nuke)_ Build first workfile was not accepting jpeg sequences.
+- _(maya)_ Multipart (Multilayer) EXRs were breaking review publishing due to FFMPEG incompatiblity [PYPE-781]
+
+
+
+
+## 2.6.0 ##
+
+_**release date:** 9 March 2020_
+
+**change:**
+- _(maya)_ render publishing has been simplified and made more robust. Render setup layers are now automatically added to publishing subsets and `render globals` family has been replaced with simple `render` [PYPE-570]
+- _(avalon)_ change context and workfiles apps, have been merged into one, that allows both actions to be performed at the same time. [PYPE-747]
+- _(pype)_ thumbnails are now automatically propagate to asset from the last published subset in the loader
+- _(ftrack)_ publishing comment and intent are now being published to ftrack note as well as describtion. [PYPE-727]
+- _(pype)_ when overriding existing version new old representations are now overriden, instead of the new ones just being appended. (to allow this behaviour, the version validator need to be disabled. [PYPE-690])
+- _(pype)_ burnin preset has been significantly simplified. It now doesn't require passing function to each field, but only need the actual text template. to use this, all the current burnin PRESETS MUST BE UPDATED for all the projects.
+- _(ftrack)_ credentials are now stored on a per server basis, so it's possible to switch between ftrack servers without having to log in and out. [PYPE-723]
+
+
+**new:**
+- _(pype)_ production and development deployments now have different colour of the tray icon. Orange for Dev and Green for production [PYPE-718]
+- _(maya)_ renders can now be attached to a publishable subset rather than creating their own subset. For example it is possible to create a reviewable `look` or `model` render and have it correctly attached as a representation of the subsets [PYPE-451]
+- _(maya)_ after saving current scene into a new context (as a new shot for instance), all the scene publishing subsets data gets re-generated automatically to match the new context [PYPE-532]
+- _(pype)_ we now support project specific publish, load and create plugins [PYPE-740]
+- _(ftrack)_ new action that allow archiving/deleting old published versions. User can keep how many of the latest version to keep when the action is ran. [PYPE-748, PYPE-715]
+- _(ftrack)_ it is now possible to monitor and restart ftrack event server using ftrack action. [PYPE-658]
+- _(pype)_ validator that prevent accidental overwrites of previously published versions. [PYPE-680]
+- _(avalon)_ avalon core updated to version 5.6.0
+- _(maya)_ added validator to make sure that relative paths are used when publishing arnold standins.
+- _(nukestudio)_ it is now possible to extract and publish audio family from clip in nuke studio [PYPE-682]
+
+**fix**:
+- _(maya)_ maya set framerange button was ignoring handles [PYPE-719]
+- _(ftrack)_ sync to avalon was sometime crashing when ran on empty project
+- _(nukestudio)_ publishing same shots after they've been previously archived/deleted would result in a crash. [PYPE-737]
+- _(nuke)_ slate workflow was breaking in certain scenarios. [PYPE-730]
+- _(pype)_ rendering publish workflow has been significantly improved to prevent error resulting from implicit render collection. [PYPE-665, PYPE-746]
+- _(pype)_ launching application on a non-synced project resulted in obscure [PYPE-528]
+- _(pype)_ missing keys in burnins no longer result in an error. [PYPE-706]
+- _(ftrack)_ create folder structure action was sometimes failing for project managers due to wrong permissions.
+- _(Nukestudio)_ using `source` in the start frame tag could result in wrong frame range calculation
+- _(ftrack)_ sync to avalon action and event have been improved by catching more edge cases and provessing them properly.
+
+
+
+
+## 2.5.0 ##
+
+_**release date:** 11 Feb 2020_
+
+**change:**
+- _(pype)_ added many logs for easier debugging
+- _(pype)_ review presets can now be separated between 2d and 3d renders [PYPE-693]
+- _(pype)_ anatomy module has been greatly improved to allow for more dynamic pulblishing and faster debugging [PYPE-685]
+- _(pype)_ avalon schemas have been moved from `pype-config` to `pype` repository, for simplification. [PYPE-670]
+- _(ftrack)_ updated to latest ftrack API
+- _(ftrack)_ publishing comments now appear in ftrack also as a note on version with customisable category [PYPE-645]
+- _(ftrack)_ delete asset/subset action had been improved. It is now able to remove multiple entities and descendants of the selected entities [PYPE-361, PYPS-72]
+- _(workfiles)_ added date field to workfiles app [PYPE-603]
+- _(maya)_ old deprecated loader have been removed in favour of a single unified reference loader (old scenes will upgrade automatically to the new loader upon opening) [PYPE-633, PYPE-697]
+- _(avalon)_ core updated to 5.5.15 [PYPE-671]
+- _(nuke)_ library loader is now available in nuke [PYPE-698]
+
+
+**new:**
+- _(pype)_ added pype render wrapper to allow rendering on mixed platform farms. [PYPE-634]
+- _(pype)_ added `pype launch` command. It let's admin run applications with dynamically built environment based on the given context. [PYPE-634]
+- _(pype)_ added support for extracting review sequences with burnins [PYPE-657]
+- _(publish)_ users can now set intent next to a comment when publishing. This will then be reflected on an attribute in ftrack. [PYPE-632]
+- _(burnin)_ timecode can now be added to burnin
+- _(burnin)_ datetime keys can now be added to burnin and anatomy [PYPE-651]
+- _(burnin)_ anatomy templates can now be used in burnins. [PYPE=626]
+- _(nuke)_ new validator for render resolution
+- _(nuke)_ support for attach slate to nuke renders [PYPE-630]
+- _(nuke)_ png sequences were added to loaders
+- _(maya)_ added maya 2020 compatibility [PYPE-677]
+- _(maya)_ ability to publish and load .ASS standin sequences [PYPS-54]
+- _(pype)_ thumbnails can now be published and are visible in the loader. `AVALON_THUMBNAIL_ROOT` environment variable needs to be set for this to work [PYPE-573, PYPE-132]
+- _(blender)_ base implementation of blender was added with publishing and loading of .blend files [PYPE-612]
+- _(ftrack)_ new action for preparing deliveries [PYPE-639]
+
+
+**fix**:
+- _(burnin)_ more robust way of finding ffmpeg for burnins.
+- _(pype)_ improved UNC paths remapping when sending to farm.
+- _(pype)_ float frames sometimes made their way to representation context in database, breaking loaders [PYPE-668]
+- _(pype)_ `pype install --force` was failing sometimes [PYPE-600]
+- _(pype)_ padding in published files got calculated wrongly sometimes. It is now instead being always read from project anatomy. [PYPE-667]
+- _(publish)_ comment publishing was failing in certain situations
+- _(ftrack)_ multiple edge case scenario fixes in auto sync and sync-to-avalon action
+- _(ftrack)_ sync to avalon now works on empty projects
+- _(ftrack)_ thumbnail update event was failing when deleting entities [PYPE-561]
+- _(nuke)_ loader applies proper colorspaces from Presets
+- _(nuke)_ publishing handles didn't always work correctly [PYPE-686]
+- _(maya)_ assembly publishing and loading wasn't working correctly
+
+
+
+
+
+
+## 2.4.0 ##
+
+_**release date:** 9 Dec 2019_
+
+**change:**
+- _(ftrack)_ version to status ftrack event can now be configured from Presets
+ - based on preset `presets/ftracc/ftrack_config.json["status_version_to_task"]`
+- _(ftrack)_ sync to avalon event has been completely re-written. It now supports most of the project management situations on ftrack including moving, renaming and deleting entities, updating attributes and working with tasks.
+- _(ftrack)_ sync to avalon action has been also re-writen. It is now much faster (up to 100 times depending on a project structure), has much better logging and reporting on encountered problems, and is able to handle much more complex situations.
+- _(ftrack)_ sync to avalon trigger by checking `auto-sync` toggle on ftrack [PYPE-504]
+- _(pype)_ various new features in the REST api
+- _(pype)_ new visual identity used across pype
+- _(pype)_ started moving all requirements to pip installation rather than vendorising them in pype repository. Due to a few yet unreleased packages, this means that pype can temporarily be only installed in the offline mode.
+
+**new:**
+- _(nuke)_ support for publishing gizmos and loading them as viewer processes
+- _(nuke)_ support for publishing nuke nodes from backdrops and loading them back
+- _(pype)_ burnins can now work with start and end frames as keys
+ - use keys `{frame_start}`, `{frame_end}` and `{current_frame}` in burnin preset to use them. [PYPS-44,PYPS-73, PYPE-602]
+- _(pype)_ option to filter logs by user and level in loggin GUI
+- _(pype)_ image family added to standalone publisher [PYPE-574]
+- _(pype)_ matchmove family added to standalone publisher [PYPE-574]
+- _(nuke)_ validator for comparing arbitrary knobs with values from presets
+- _(maya)_ option to force maya to copy textures in the new look publish rather than hardlinking them
+- _(pype)_ comments from pyblish GUI are now being added to ftrack version
+- _(maya)_ validator for checking outdated containers in the scene
+- _(maya)_ option to publish and load arnold standin sequence [PYPE-579, PYPS-54]
+
+**fix**:
+- _(pype)_ burnins were not respecting codec of the input video
+- _(nuke)_ lot's of various nuke and nuke studio fixes across the board [PYPS-45]
+- _(pype)_ workfiles app is not launching with the start of the app by default [PYPE-569]
+- _(ftrack)_ ftrack integration during publishing was failing under certain situations [PYPS-66]
+- _(pype)_ minor fixes in REST api
+- _(ftrack)_ status change event was crashing when the target status was missing [PYPS-68]
+- _(ftrack)_ actions will try to reconnect if they fail for some reason
+- _(maya)_ problems with fps mapping when using float FPS values
+- _(deadline)_ overall improvements to deadline publishing
+- _(setup)_ environment variables are now remapped on the fly based on the platform pype is running on. This fixes many issues in mixed platform environments.
+
+
+
+
+## 2.3.6 #
+
+_**release date:** 27 Nov 2019_
+
+**hotfix**:
+- _(ftrack)_ was hiding important debug logo
+- _(nuke)_ crashes during workfile publishing
+- _(ftrack)_ event server crashes because of signal problems
+- _(muster)_ problems with muster render submissions
+- _(ftrack)_ thumbnail update event syntax errors
+
+
+
+
+## 2.3.0 ##
+
+_release date: 6 Oct 2019_
+
+**new**:
+- _(maya)_ support for yeti rigs and yeti caches
+- _(maya)_ validator for comparing arbitrary attributes against ftrack
+- _(pype)_ burnins can now show current date and time
+- _(muster)_ pools can now be set in render globals in maya
+- _(pype)_ Rest API has been implemented in beta stage
+- _(nuke)_ LUT loader has been added
+- _(pype)_ rudimentary user module has been added as preparation for user management
+- _(pype)_ a simple logging GUI has been added to pype tray
+- _(nuke)_ nuke can now bake input process into mov
+- _(maya)_ imported models now have selection handle displayed by defaulting
+- _(avalon)_ it's is now possible to load multiple assets at once using loader
+- _(maya)_ added ability to automatically connect yeti rig to a mesh upon loading
+
+**changed**:
+- _(ftrack)_ event server now runs two parallel processes and is able to keep queue of events to process.
+- _(nuke)_ task name is now added to all rendered subsets
+- _(pype)_ adding more families to standalone publisher
+- _(pype)_ standalone publisher now uses pyblish-lite
+- _(pype)_ standalone publisher can now create review quicktimes
+- _(ftrack)_ queries to ftrack were sped up
+- _(ftrack)_ multiple ftrack action have been deprecated
+- _(avalon)_ avalon upstream has been updated to 5.5.0
+- _(nukestudio)_ published transforms can now be animated
+-
+
+**fix**:
+- _(maya)_ fps popup button didn't work in some cases
+- _(maya)_ geometry instances and references in maya were losing shader assignments
+- _(muster)_ muster rendering templates were not working correctly
+- _(maya)_ arnold tx texture conversion wasn't respecting colorspace set by the artist
+- _(pype)_ problems with avalon db sync
+- _(maya)_ ftrack was rounding FPS making it inconsistent
+- _(pype)_ wrong icon names in Creator
+- _(maya)_ scene inventory wasn't showing anything if representation was removed from database after it's been loaded to the scene
+- _(nukestudio)_ multiple bugs squashed
+- _(loader)_ loader was taking long time to show all the loading action when first launcher in maya
+
+## 2.2.0 ##
+_**release date:** 8 Sept 2019_
+
+**new**:
+- _(pype)_ add customisable workflow for creating quicktimes from renders or playblasts
+- _(nuke)_ option to choose deadline chunk size on write nodes
+- _(nukestudio)_ added option to publish soft effects (subTrackItems) from NukeStudio as subsets including LUT files. these can then be loaded in nuke or NukeStudio
+- _(nuke)_ option to build nuke script from previously published latest versions of plate and render subsets.
+- _(nuke)_ nuke writes now have deadline tab.
+- _(ftrack)_ Prepare Project action can now be used for creating the base folder structure on disk and in ftrack, setting up all the initial project attributes and it automatically prepares `pype_project_config` folder for the given project.
+- _(clockify)_ Added support for time tracking in clockify. This currently in addition to ftrack time logs, but does not completely replace them.
+- _(pype)_ any attributes in Creator and Loader plugins can now be customised using pype preset system
+
+**changed**:
+- nukestudio now uses workio API for workfiles
+- _(maya)_ "FIX FPS" prompt in maya now appears in the middle of the screen
+- _(muster)_ can now be configured with custom templates
+- _(pype)_ global publishing plugins can now be configured using presets as well as host specific ones
+
+
+**fix**:
+- wrong version retrieval from path in certain scenarios
+- nuke reset resolution wasn't working in certain scenarios
+
+## 2.1.0 ##
+_release date: 6 Aug 2019_
+
+A large cleanup release. Most of the change are under the hood.
+
+**new**:
+- _(pype)_ add customisable workflow for creating quicktimes from renders or playblasts
+- _(pype)_ Added configurable option to add burnins to any generated quicktimes
+- _(ftrack)_ Action that identifies what machines pype is running on.
+- _(system)_ unify subprocess calls
+- _(maya)_ add audio to review quicktimes
+- _(nuke)_ add crop before write node to prevent overscan problems in ffmpeg
+- **Nuke Studio** publishing and workfiles support
+- **Muster** render manager support
+- _(nuke)_ Framerange, FPS and Resolution are set automatically at startup
+- _(maya)_ Ability to load published sequences as image planes
+- _(system)_ Ftrack event that sets asset folder permissions based on task assignees in ftrack.
+- _(maya)_ Pyblish plugin that allow validation of maya attributes
+- _(system)_ added better startup logging to tray debug, including basic connection information
+- _(avalon)_ option to group published subsets to groups in the loader
+- _(avalon)_ loader family filters are working now
+
+**changed**:
+- change multiple key attributes to unify their behaviour across the pipeline
+ - `frameRate` to `fps`
+ - `startFrame` to `frameStart`
+ - `endFrame` to `frameEnd`
+ - `fstart` to `frameStart`
+ - `fend` to `frameEnd`
+ - `handle_start` to `handleStart`
+ - `handle_end` to `handleEnd`
+ - `resolution_width` to `resolutionWidth`
+ - `resolution_height` to `resolutionHeight`
+ - `pixel_aspect` to `pixelAspect`
+
+- _(nuke)_ write nodes are now created inside group with only some attributes editable by the artist
+- rendered frames are now deleted from temporary location after their publishing is finished.
+- _(ftrack)_ RV action can now be launched from any entity
+- after publishing only refresh button is now available in pyblish UI
+- added context instance pyblish-lite so that artist knows if context plugin fails
+- _(avalon)_ allow opening selected files using enter key
+- _(avalon)_ core updated to v5.2.9 with our forked changes on top
+
+**fix**:
+- faster hierarchy retrieval from db
+- _(nuke)_ A lot of stability enhancements
+- _(nuke studio)_ A lot of stability enhancements
+- _(nuke)_ now only renders a single write node on farm
+- _(ftrack)_ pype would crash when launcher project level task
+- work directory was sometimes not being created correctly
+- major pype.lib cleanup. Removing of unused functions, merging those that were doing the same and general house cleaning.
+- _(avalon)_ subsets in maya 2019 weren't behaving correctly in the outliner
diff --git a/website/docs/dev_build.md b/website/docs/dev_build.md
new file mode 100644
index 0000000000..01e53918d2
--- /dev/null
+++ b/website/docs/dev_build.md
@@ -0,0 +1,191 @@
+---
+id: dev_build
+title: Build openPYPE from source
+sidebar_label: Build
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+To build Pype you currently need (on all platforms):
+
+- **[Python 3.7](https://www.python.org/downloads/)** as we are following [vfx platform](https://vfxplatform.com).
+- **[git](https://git-scm.com/downloads)**
+
+We use [CX_Freeze](https://cx-freeze.readthedocs.io/en/latest) to freeze the code and all dependencies.
+
+
+
+
+
+
+More tools might be needed for installing some dependencies (for example for **OpenTimelineIO**) - mostly
+development tools like [CMake](https://cmake.org/) and [Visual Studio](https://visualstudio.microsoft.com/cs/downloads/)
+
+### Clone repository:
+```sh
+git clone --recurse-submodules git@github.com:pypeclub/pype.git
+```
+
+### Run from source
+
+For development purposes it is possible to run OpenPype directly from the source. We provide a simple launcher script for this.
+
+To start OpenPype from source you need to
+
+1) Run `.\tools\create_env.ps1` to create virtual environment in `.\venv`
+2) Run `.\tools\run_tray.ps1` if you have all required dependencies on your machine you should be greeted with OpenPype igniter window and once you give it your Mongo URL, with OpenPype icon in the system tray.
+
+
+### To build openPype:
+
+1) Run `.\tools\create_env.ps1` to create virtual environment in `.\venv`
+2) Run `.\tools\build.ps1` to build pype executables in `.\build\`
+
+To create distributable openPype versions, run `./tools/create_zip.ps1` - that will
+create zip file with name `pype-vx.x.x.zip` parsed from current pype repository and
+copy it to user data dir. You can specify `--path /path/to/zip` to force it into a different
+location. This can be used to prepare new version releases for artists in the studio environment
+without the need to re-build the whole package
+
+
+
+
+
+
+To build pype on linux you wil need:
+
+- **[curl](https://curl.se)** on systems that doesn't have one preinstalled.
+- Python header files installed (**python3-dev** on Ubuntu for example).
+- **[CMake](https://cmake.org/)**: to build some external openPype dependencies.
+- **bzip2**, **readline** and **sqlite3** libraries.
+
+Because some Linux distros come with newer Python version pre-installed, you might
+need to install **3.7** version and make use of it explicitly.
+Your best bet is probably using [pyenv](https://github.com/pyenv/pyenv).
+
+You can use your package manager to install **git** and **cmake**.
+Use curl for pyenv installation
+
+:::note Install build requirements for **Ubuntu**
+
+
+```sh
+sudo apt install build-essential checkinstall
+sudo apt install git cmake curl
+sudo apt install libbz2-dev libreadline-dev libsqlite3-dev
+```
+
+In case you run in error about `xcb` when running Pype,
+you'll need also additional libraries for Qt5:
+
+```sh
+sudo apt install qt5-default
+```
+:::
+
+:::note Install build requirements for **Centos**
+
+```sh
+sudo yum install git cmake python3-devel python3-pip
+sudo yum install bzip2-devel readline-devel sqlite-devel
+```
+
+In case you run in error about `xcb` when running Pype,
+you'll need also additional libraries for Qt5:
+
+```sh
+sudo yum install qt5-qtbase-devel
+```
+
+:::
+
+#### Common steps for all Distros
+
+Use pyenv to prepare Python version for Pype build
+
+```sh
+curl https://pyenv.run | bash
+
+# you can add those to ~/.bashrc
+export PATH="$HOME/.pyenv/bin:$PATH"
+eval "$(pyenv init -)"
+eval "$(pyenv virtualenv-init -)"
+
+# reload shell
+exec $SHELL
+
+# install Python 3.7.9
+pyenv install -v 3.7.9
+
+# change path to pype 3
+cd /path/to/pype-3
+
+# set local python version
+pyenv local 3.7.9
+
+```
+
+#### To build Pype:
+
+1. Run `.\tools\create_env.sh` to create virtual environment in `.\venv`
+2. Run `.\tools\build.sh` to build pype executables in `.\build\`
+
+
+
+
+To build pype on MacOS you wil need:
+
+- **[Homebrew](https://brew.sh)**, Easy way of installing everything necessary is to use.
+- **[CMake](https://cmake.org/)** to build some external openPype dependencies.
+- **XCode Command Line Tools** (or some other build system)
+
+1) Install **Homebrew**:
+```sh
+/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
+```
+
+2) Install **cmake**:
+```sh
+brew install cmake
+```
+
+3) Install [pyenv](https://github.com/pyenv/pyenv):
+```sh
+brew install pyenv
+echo 'eval "$(pypenv init -)"' >> ~/.zshrc
+pyenv init
+exec "$SHELL"
+PATH=$(pyenv root)/shims:$PATH
+```
+
+4) Pull in required Python version 3.7.x
+```sh
+# install Python build dependences
+brew install openssl readline sqlite3 xz zlib
+
+# replace with up-to-date 3.7.x version
+pyenv install 3.7.9
+```
+
+5) Set local Python version
+```sh
+# switch to Pype source directory
+pyenv local 3.7.9
+```
+
+#### To build Pype:
+
+1. Run `.\tools\create_env.sh` to create virtual environment in `.\venv`
+2. Run `.\tools\build.sh` to build Pype executables in `.\build\`
+
+
+
diff --git a/website/docs/dev_contribute.md b/website/docs/dev_contribute.md
new file mode 100644
index 0000000000..6655ec88c1
--- /dev/null
+++ b/website/docs/dev_contribute.md
@@ -0,0 +1,85 @@
+---
+id: dev_contribute
+title: Contribute to openPype development
+sidebar_label: Contribute
+---
+
+## What should you do if ...
+
+### You found a bug.
+
+1. Check in the issues and our [bug triage](https://github.com/pypeclub/pype/projects/2) to make sure it wasn't reported already.
+2. Ask on our [discord](http://pype.community/chat) Often, what appears as a bug, might be the intended behavior for someone else.
+3. Create a new issue.
+4. Use the issue template for you PR please.
+
+
+### You wrote a patch that fixes a bug.
+
+- Open a new GitHub pull request with the patch.
+- Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable.
+
+
+### You intend to add a new feature or change an existing one.
+
+- Open a new thread in the [github discussions](https://github.com/pypeclub/pype/discussions/new)
+- Do not open issue until the suggestion is discussed. We will convert accepted suggestions into backlog and point them to the relevant discussion thread to keep the context.
+
+### You have questions about the source code.
+
+Open a new question on [github discussions](https://github.com/pypeclub/pype/discussions/new)
+
+
+## Branching Strategy
+
+As we move to 3.x as the primary supported version of OpenPype and only keep Pype 2.15 on bugfixes and client sponsored feature requests, we need to be very careful with merging strategy.
+
+These are the important branches to remember.
+
+### OpenPype 3.x
+
+**`main`** - Production branch with stable releases
+
+**`develop`** - Development branch where we merge all PRs during the development
+
+**`release/3.x.x`** - Testing branch for a release, once a release branch is crated, no new features
+are accepted for the given release. Bugfixes, however, are expected. Once the branch is stable it is
+merged to `main` and `develop` and `main` is tagged with a new release
+
+**`feature/{Issue#}-{Issue_name}`** - development of new features
+
+**`bugfix/{Issue#}-{Issue_name}`** - bug fixes
+
+**`hotfix/{Issue#}-{Issue_name}`** - production critical hotfixes (always created from `main`)
+
+### OpenPype 2.x
+
+Branching is identical to 3.x development, however all the branches should be pre-pended with
+`2.x/` namespace. For example `2.x/feature/1025-support_exporting_of_alembic`,
+`2.x/bugfix/wrong_colourspace_in_maya`
+
+Main and develop for 2.x development are `2.x/main` and `2.x/develop`
+
+
+A few important notes about 2.x and 3.x development:
+
+- 3.x features are not backported to 2.x unless specifically requested.
+- 3.x bugs and hotfixes can be ported to 2.x if they are relevant or severe.
+- 2.x features and bugs MUST be ported to 3.x at the same time.
+
+## Pull Requests
+
+- Each 2.x PR MUST have a corresponding 3.x PR in github. Without 3.x PR, 2.x features will not be merged! Luckily most of the code is compatible, albeit sometimes in a different place after the refactoring. Porting from 2.x to 3.x should be really easy.
+- Please keep the corresponding 2 and 3 PR names the same so they can be easily identified from the PR list page.
+- Each 2.x PR should be labeled with `2.x-dev` label.
+
+Inside each PR, put a link to the corresponding PR.
+
+Of course if you want to contribute, feel free to make a PR to only 2.x/develop or develop, based on what you are using. While reviewing the PRs, we might convert the code to corresponding PR for the other release ourselves.
+
+We might also change the target of you PR to and intermediate branch, rather than `develop` if we feel it requires some extra work on our end. That way, we preserve all your commits so you don't loos out on the contribution credits.
+
+
+
+
+If a PR is targeted at 2.x release it must be labelled with 2x-dev label in Github.
\ No newline at end of file
diff --git a/website/docs/dev_requirements.md b/website/docs/dev_requirements.md
new file mode 100644
index 0000000000..bbf3b1fb5b
--- /dev/null
+++ b/website/docs/dev_requirements.md
@@ -0,0 +1,131 @@
+---
+id: dev_requirements
+title: Requirements
+sidebar_label: Requirements
+---
+
+
+We aim to closely follow [**VFX Reference Platform**](https://vfxplatform.com/)
+
+OpenPype is written in Python 3 with specific elements still running in Python2 until all DCCs are fully updated. To see the list of those, that are not quite there yet, go to [VFX Python3 tracker](https://vfxpy.com/)
+
+The main things you will need to run and build pype are:
+
+- **Terminal** in your OS
+ - PowerShell 5.0+ (Windows)
+ - Bash (Linux)
+- [**Python 3.7.8**](#python) or higher
+- [**MongoDB**](#database)
+
+
+## OS
+
+It can be built and ran on all common platforms. We develop and test on the following:
+
+- **Windows** 10
+- **Linux**
+ - **Ubuntu** 20.04 LTS
+ - **Centos** 7
+- **Mac OSX**
+ - **10.15** Catalina
+ - **11.1** Big Sur (using Rosetta2)
+
+
+## Database
+
+Pype needs site-wide installation of **MongoDB**. It should be installed on
+reliable server, that all workstations (and possibly render nodes) can connect. This
+server holds **Avalon** database that is at the core of everything
+
+Depending on project size and number of artists working connection speed and
+latency influence performance experienced by artists. If remote working is required, this mongodb
+server must be accessible from Internet or cloud solution can be used. Reasonable backup plan
+or high availability options are recommended. *Replication* feature of MongoDB should be considered. This is beyond the
+scope of this documentation, please refer to [MongoDB Documentation](https://docs.mongodb.com/manual/replication/).
+
+Pype can run it's own instance of mongodb, mostly for testing and development purposes.
+For that it uses locally installed MongoDB.
+
+Download it from [mognoDB website](https://www.mongodb.com/download-center/community), install it and
+add to the `PATH`. On Windows, Pype tries to find it in standard installation destination or using `PATH`.
+
+To run mongoDB on server, use your server distribution tools to set it up (on Linux).
+
+## Python
+
+**Python 3.7.8** is the recommended version to use (as per [VFX platform CY2021](https://vfxplatform.com/)).
+
+If you're planning to run openPYPE on workstations from built executables (highly recommended), you will only need python for building and development, however, if you'd like to run from source centrally, every user will need python installed.
+
+## Hardware
+
+openPYPE should be installed on all workstations that need to use it, the same as any other application.
+
+There are no specific requirements for the hardware. If the workstation can run
+the major DCCs, it most probably can run openPYPE.
+
+Installed, it takes around 400MB of space, depending on the platform
+
+
+For well functioning ftrack event server, we recommend a linux virtual server with Ubuntu or CentOS. CPU and RAM allocation needs differ based on the studio size, but a 2GB of ram, with a dual core CPU and around 4GB of storage should suffice
+
+
+## Deployment
+
+For pushing pipeline updates to the artists, you will need to create a shared folder that
+will be accessible with at least Read permission to every OpenPype user in the studio.
+This can also be hosted on the cloud in fully distributed deployments.
+
+
+
+## Dependencies
+
+### Key projects we depend on
+
+- [**Avalon**](https://github.com/getavalon)
+- [**Pyblish**](https://github.com/pyblish)
+- [**OpenTimelineIO**](https://github.com/PixarAnimationStudios/OpenTimelineIO)
+- [**OpenImageIO**](https://github.com/OpenImageIO/oiio)
+- [**FFmpeg**](https://github.com/FFmpeg/FFmpeg)
+
+
+### Python modules we use and their licenses
+
+| Package | License |
+|-------------------------------------|--------------------------------------------------------------|
+| acre 1.0.0 | GNU Lesser General Public License v3 (LGPLv3) |
+| aiohttp 3.7.3 | Apache 2 |
+| aiohttp-json-rpc 0.13.3 | Apache 2.0 |
+| appdirs 1.4.4 | MIT |
+| blessed 1.17.12 | MIT |
+| click 7.1.2 | BSD-3-Clause |
+| clique 1.5.0 | Apache License (2.0) |
+| coverage 5.3.1 | Apache 2.0 |
+| cx-Freeze 6.5.1 | Python Software Foundation License |
+| docutils 0.16 | public domain, Python, 2-Clause BSD, GPL 3 (see COPYING.txt) |
+| flake8 3.8.4 | MIT |
+| ftrack-python-api 2.0.0 | Apache License (2.0) |
+| jinxed 1.0.1 | MPLv2.0
+| log4mongo 1.7.0 | BSD |
+| OpenTimelineIO 0.14.0.dev1 | Modified Apache 2.0 License |
+| Pillow 8.1.0 | HPND |
+| pyblish-base 1.8.8 | LGPL |
+| pycodestyle 2.6.0 | Expat license |
+| pydocstyle 5.1.1 | MIT |
+| pylint 2.6.0 | GPL |
+| pymongo 3.11.2 | Apache License, Version 2.0 |
+| pynput 1.7.2 | LGPLv3 |
+| PyQt5 5.15.2 | GPL v3 |
+| pytest 6.2.1 | MIT |
+| pytest-cov 2.11.0 | MIT |
+| pytest-print 0.2.1 | MIT |
+| pywin32-ctypes 0.2.0 | BSD |
+| Qt.py 1.3.2 | MIT |
+| six 1.15.0 | MIT |
+| speedcopy 2.1.0 | UNKNOWN |
+| Sphinx 3.4.3 | BSD |
+| sphinx-qt-documentation 0.3 | BSD-3-Clause |
+| sphinxcontrib-websupport 1.2.4 | BSD |
+| tqdm 4.56.0 | MPLv2.0, MIT Licences |
+| wheel 0.36.2 | MIT |
+| wsrpc-aiohttp 3.1.1 | Apache Software License |
diff --git a/website/docs/features.md b/website/docs/features.md
new file mode 100644
index 0000000000..c6413a7aa7
--- /dev/null
+++ b/website/docs/features.md
@@ -0,0 +1,261 @@
+## Pype tray
+
+Ftrack
+
+Login
+
+reset Action server
+
+Launcher: Launch applications without the need of going through ftrack website
+
+Library: Browse through all the published assets across the projects. You can also launch actions.
+
+Standalone Publisher
+
+Services
+
+Idle manager
+
+Timers manager
+
+Statics server
+
+## System Admin
+
+Manage environments per project/shot/tasks
+
+Centralized pipeline installation
+
+Localized Python environment (for speed purposes)
+
+Automatic user environment updates (online/offline)
+
+Ability to run completely offline for TPN and MPAA certified sites
+
+Git controlled deployment
+
+Separated development and production installation for safety and testing
+
+Per project pipeline configuration overrides
+
+Linux, Windows, Mac support
+
+MongoDB backbone
+
+## Ftrack
+
+Launch applications
+
+Custom actions
+
+Create base project structure
+
+Create Folders
+
+Sync to Avalon
+
+Propagate Thumbnails
+
+Create required custom attributes
+
+launch version in RV / DJVview
+
+Delete assets and subsets
+
+Sort Client Review
+
+Kill old Ftrack jobs
+
+Event server (automatically triggered actions)
+
+Sync to Avalon
+
+Update status on the next task
+
+Propagate Thumbnails from version to tasks and assets/shots
+
+Propagate statuses between versions and tasks
+
+Avalon <-> Ftrack sync
+
+## Maya
+
+### Tools
+
+Creator
+
+Publisher
+
+Loader
+
+Scene Inventory
+
+Look assigner
+
+Workfiles
+
+### Families
+
+Model
+
+Look
+
+Rig
+
+Animation
+
+Cache
+
+Camera
+
+Assembly
+
+MayaAscii (generic scene)
+
+Setdress
+
+RenderSetup
+
+Review
+
+arnoldStandin
+
+vrayProxy
+
+vrayScene
+
+yetiCache
+
+yetiRig
+
+## Houdini
+
+### Tools
+
+Creator
+
+Publisher
+
+Loader
+
+Scene Inventory
+
+Look assigner
+
+Workfiles
+
+### Families
+
+Model
+
+Animation
+
+Cache
+
+Camera
+
+Review
+
+## Nuke
+
+Tools
+
+Publisher
+
+Loader
+
+Scene Inventory
+
+Workfiles
+
+Families
+
+Model (load only)
+
+Camera (load only)
+
+Render
+
+Review
+
+Plate
+
+Prerender
+
+## NukeStudio
+
+Create Shots in Ftrack and Avalon
+
+handles
+
+frame ranges
+
+edit in and edit out
+
+Publish Plates
+
+Any number of plate
+
+colorspace managed
+
+Attach preview quicktimes to Ftrack versions
+
+## Fusion
+
+Tools
+
+Publisher
+
+Loader
+
+Scene Inventory
+
+Workfiles
+
+Families
+
+Model (load only)
+
+Camera (load only)
+
+Render
+
+Review
+
+Plate
+
+Prerender
+
+## Deadline
+
+Publish to deadline from
+
+Maya
+
+Nuke
+
+Create preview quicktimes from rendered frames
+
+publish rendered outputs to Avalon and Ftrack
+
+ ## Muster
+
+Publish to deadline from
+
+Maya
+
+Nuke
+
+Create preview quicktimes from rendered frames
+
+publish rendered outputs to Avalon and Ftrack
+
+## Clockify
+
+Automatic timer start and stop in sync with Ftrack.
+
+## Arnold
+
+## Vray
+
+## Redshift
diff --git a/website/docs/hosts-maya.md b/website/docs/hosts-maya.md
new file mode 100644
index 0000000000..0ee0c2d86b
--- /dev/null
+++ b/website/docs/hosts-maya.md
@@ -0,0 +1,33 @@
+### Tools
+Creator
+Publisher
+Loader
+Scene Inventory
+Look assigner
+Workfiles
+
+### Plugins
+Deadline
+Muster
+Yeti
+Arnold
+Vray
+Redshift
+
+### Families
+Model
+Look
+Rig
+Animation
+Cache
+Camera
+Assembly
+MayaAscii (generic scene)
+Setdress
+RenderSetup
+Review
+arnoldStandin
+vrayProxy
+vrayScene
+yetiCache
+yetiRig
diff --git a/website/docs/manager_ftrack.md b/website/docs/manager_ftrack.md
new file mode 100644
index 0000000000..69faf6ae9d
--- /dev/null
+++ b/website/docs/manager_ftrack.md
@@ -0,0 +1,62 @@
+---
+id: manager_ftrack
+title: Ftrack
+sidebar_label: Project Manager
+---
+
+Ftrack is currently the main project management option for OpenPype. This documentation assumes that you are familiar with Ftrack and it's basic principles. If you're new to Ftrack, we recommend having a thorough look at [Ftrack Official Documentation](http://ftrack.rtd.ftrack.com/en/stable/).
+
+## Project management
+Setting project attributes is the key to properly working pipeline.
+
+### New Project
+The best practice for creating a new project ready for OpenPype.
+1. First of all you must [create a project](http://ftrack.rtd.ftrack.com/en/stable/using/managing_projects/creating_a_new_project.html) in Ftrack.
+2. All the required attributes need to be populated. The easiest way to do it is by using [Prepare Project](manager_ftrack_actions#prepare-project) action.
+
+:::tip
+Do not forget to set up `applications` and `tools`, otherwise users won't be able to launch applications.
+:::
+
+3. Now you can create Project hierarchy with shots, assets, tasks and others, which has [specific rules](#synchronization-rules). [Create Project Structure](manager_ftrack_actions#create-project-structure) action may help you with this step.
+4. Last step is to [synchronize](#synchronization-to-avalon-database) project to Avalon database.
+
+:::tip
+Turn on `auto-sync` attribute on your project in ftrack. That way you'll only need to synchronise the project once and all further changes will be propagated automatically.
+:::
+
+## Synchronization to Avalon database
+This process is how data from Ftrack will get into Avalon database.
+
+### How to synchronize
+You can do synchronization with [Sync To Avalon](manager_ftrack_actions#sync-to-avalon) action.
+
+Synchronization can be automated with OpenPype's [event server](#event-server) and synchronization events. If your Ftrack is [prepared for OpenPype](#prepare-ftrack-for-pype), the project should have custom attribute `Avalon auto-sync`. Check the custom attribute to allow auto-updates with event server.
+
+:::important
+Always use `Sync To Avalon` action before you enable `Avalon auto-sync`!
+:::
+
+:::important
+Synchronization actions and events can show you interface with information when something goes differently than expected. Just read carefully what happened messages should guide you.
+:::
+
+### Synchronization rules
+Required:
+- entity can only contain **letters**, **numbers** and **underscore** symbols. *(In technical terms: all names must match regex: `^[a-zA-Z0-9_.]*$`)`*
+
+Not allowed:
+- duplicated entity names within project (there can be only one shot with name "sh0010" in whole project for example)
+- have any **Tasks** directly on the *Project* level
+
+### Managing Entities
+
+There are certain situations that are very hard, or even impossible to handle automatically and will have be resolved by your TD. These include
+
+- Deleting shots and assets after some data has already been published in them.
+- Re-structuring the project hierarchy when work is already being done.
+- Renaming the Project
+
+If you need to move entity or change its name it is possible only in the acse when no-one has worked on it yet. Once work is in progreess, you must archive the old one and create new.
+
+To archive entities you should use [Archive Asset/Subset](manager_ftrack_actions#delete-asset/subset) action. This will remove the selected entity from ftrack and avalon database in mostly non-destructive way, so it can be recovered later. To completely delete all traces of this such entity you'll need to go to OpenPype archive and delete them from there.
diff --git a/website/docs/manager_ftrack_actions.md b/website/docs/manager_ftrack_actions.md
new file mode 100644
index 0000000000..6349d4357f
--- /dev/null
+++ b/website/docs/manager_ftrack_actions.md
@@ -0,0 +1,288 @@
+---
+id: manager_ftrack_actions
+title: Ftrack Actions
+sidebar_label: Ftrack actions
+---
+
+Actions are small useful tools that help artists, managers and administrators.
+To avoid overfilled action menu some actions are filtered by entity types and some of them by user roles permissions.
+
+In most cases actions filtered by entity type:
+- Project
+- Typed Context
+ - Folder
+ - Episode
+ - Sequence
+ - Shot
+ - Library
+ - Asset Build
+ - Asset Variant
+ - Epic
+ - Milestone
+- Task
+- Asset Version
+- Component
+- Review Session
+
+*Typed Context* is global Ftrack entity for hierarchical types representing all of them. Hierarchical types can be used for filtering too, but because they are dynamic *(you can add, modify and remove them)*, *Typed Context* is used to be more general.
+
+So if you do not see action you need to use check if action is available for selected *entity type* or ask *administrator* to check if you have permissions to use it.
+
+:::important
+Filtering can be more complicated for example a lot of actions can be shown only when one particular entity is selected.
+:::
+
+---
+## Applications
+
+### Launch applications
+* Entity types: Task
+* User roles: All
+
+These actions *launch application with OpenPype initiated* and *start timer* for the selected Task. We recommend you to launch application this way.
+
+:::important
+Project Manager or Supervisor must set project's applications during project preparation otherwise you won't see them.
+:::
+
+### RV
+* Entity types: All
+* User roles: All
+
+You can launch RV player with playable components from selected entities. You can choose which components will be played.
+
+:::important
+You must have RV player installed and licensed and have correct RV environments set to be able use this action.
+:::
+
+### DJV View
+* Entity types: Task, Asset Version
+* User roles: All
+
+You can launch DJV View with one playable component from selected entities. You can choose which component will be played.
+
+:::important
+You must have DJV View installed and configured in studio-config to be able use this action.
+:::
+
+---
+
+
+A group of actions that are used for OpenPype Administration.
+
+### Create/Update Avalon Attributes
+* Entity types: All
+* User roles: Pypeclub, Administrator
+
+Action creates and updates Ftrack's Custom Attributes that are needed to manage and run OpenPype within Ftrack. Most of custom attribute configurations are stored in OpenPype presets (*Pype Settings โ Project โ Anatomy โ Attributes*). It is not recommended to modify values stored in the file unless your studio used completely custom configuration.
+
+### Sync to Avalon
+* Entity types: Project, Typed Context
+* User roles: Pypeclub, Administrator, Project manager
+
+Synchronization to Avalon is key process to keep OpenPype data updated. Action updates selected entities (Project, Shot, Sequence, etc.) and all nested entities to Avalon database. If action is successfully finished [Sync Hier Attrs](#sync-hier-attrs) action is triggered.
+
+There are 2 versions of **Sync to Avalon** first labeled as **server** second as **local**.
+* **server** version will be processed with [event server](admin_ftrack#event-server)
+* **local** version will be processed with user's OpenPype tray application
+
+It is recommended to use **local** version if possible to avoid unnecessary deceleration of event server.
+
+### Sync Hier Attrs
+* Entity types: Project, Typed Context
+* User roles: Pypeclub, Administrator, Project manager
+
+Synchronization to Avalon of Ftrack's hierarchical Custom attributes is a bit complicated so we decided to split synchronization process into 2 actions. This action updates hierarchical Custom attributes of selected entities (Project, Shot, Sequence, etc.) and all their nested entities to pipeline database. This action is also triggered automatically after successfully finished [Sync To Avalon](#sync-to-avalon) action.
+
+There are 2 versions of **Sync Hier Attrs** first labeled as **server** second as **local**.
+* **server** version will be processed with [event server](admin_ftrack#event-server)
+* **local** version will be processed with user's OpenPype tray application
+
+It is recommended to use **local** version if possible to avoid unnecessary deceleration of event server.
+
+### Job Killer
+* Entity types: All
+* User roles: Pypeclub, Administrator
+
+Custom Jobs in Ftrack help to track process and status of triggered actions but sometimes unexpected failure of action may happen *(Please let us know when happens)*. The failure will cause that job's status will remain set to **Running** which may cause issues in future.
+
+This action gives ability to *stop running jobs*. When action is triggered, an interface with all running jobs with checkbox next to each is shown. Status of checked jobs will be set to **Failure** on submit.
+
+### Delete Assets by Name
+* Entity types: Typed Context, Task
+* User roles: Pypeclub, Administrator
+
+With this action it's possible to delete up to 15 entities at once from active project in pipeline database. Entered names must match exactly the names stored in database. These entities also must not have children entities *(Sequence must not have Shots but Task is not entity)*.
+
+---
+
+
+A group of actions for thumbnail management.
+
+### Thumbnail to Parent
+Propagates the thumbnail of the selected entity to its parent.
+
+### Thumbnail to Children
+Propagates the thumbnail of the selected entity to its first direct children entities.
+
+---
+
+
+* Entity types: Project
+* User roles: Pypeclub, Administrator, Project manager
+
+Allows project managers and coordinator to *set basic project attributes* needed for OpenPype to operate, *Create project folders* if you want and especially *prepare Project specific [anatomy](admin_config#anatomy) and [presets](admin_config#presets)* files for you.
+
+:::tip
+It is possible to use this action during the lifetime of a project but we recommend using it only once at the start of the project.
+:::
+
+
+
+---
+
+
+* Entity types: Asset Version
+* User roles: All
+
+You can add same note to multiple Asset Versions at once with this action.
+
+
+---
+
+
+* Entity types: Typed Context, Task
+* User roles: Pypeclub, Administrator
+
+Action deletes Entities and Asset Versions from Ftrack and Avalon database.
+
+You should use this action if you need to delete Entities or Asset Versions otherwise deletion will not take effect in Avalon database. Currently the action allows to only delete one entity at the time. Entity also must not have any children.
+
+---
+
+
+* Entity types: Project
+* User roles: Pypeclub, Administrator
+
+*Create Project Structure* helps to create basic folder structure and may create the main ftrack entities for the project.
+
+Structure is loaded from [presets](admin_config#presets) *(Pype Settings โ Project โ Global โ Project Folder Structure)*. You should examine that preset to see how it works. Preset may contain dictionaries of nested dictionaries where each key represents a folder name. Key and all it's parents will be also created in Ftrack if the key ends with `[ftrack]`. Default Ftrack entity type is *Folder* but entity type can be specified using `[ftrack.{entity type}]`. To create *Sequence* with name *Seq_001* key should look like `Seq_001[ftrack.Sequence]`.
+
+:::note
+Please keep in mind this action is meant to make your project setup faster at the very beginning, but it does not create folders for each shot and asset. For creating asset folder refer to `Create Folders` Action
+:::
+
+---
+
+
+* Entity types: Typed Context, Task
+* User roles: All
+
+Creates folders for a selected asset in based on project templates.
+
+It is usually not necessary to launch this action because folders are created automatically every time you start working on a task. However it can be handy if you need to create folders before any work begins or you want to use applications that don't have pipeline implementation.
+
+
+
+
+---
+
+
+* Entity types: File Component
+* User roles: All
+
+This action will open folder of selected *Component* on *Asset Version*.
+
+:::warning
+Does not work for components uploaded to Ftrack Web server.
+:::
+
+
+:::warning
+Component's path must be accessible by current OS.
+:::
+
+---
+## Sort Review
+* Entity types: Review Session
+* User roles: All
+
+Helps you sort *Asset Versions* in *Client Review Session*.
+
+Asset Versions are sorted by *Version number*, *Task name* and *Version name*.
diff --git a/website/docs/manager_naming.md b/website/docs/manager_naming.md
new file mode 100644
index 0000000000..bf822fbeb4
--- /dev/null
+++ b/website/docs/manager_naming.md
@@ -0,0 +1,56 @@
+---
+id: manager_naming
+title: Naming Conventions
+sidebar_label: Naming Conventions
+---
+
+:::note
+This naming convention holds true for most of our pipeline. Please match it as close as possible even for projects and files that might be outside of pipeline scope at this point. Small errors count! The reason for given formatting is to allow people to understand the file at glance and that a script or a program can easily get meaningful information from your files without errors.
+:::
+
+## General rules
+
+For more detailed rules and different file types, have a look at naming conventions for scenes and assets
+
+- Every file starts with file code based on a project it belongs to e.g. โtst_โ, โdrm_โ
+- Optional subversion and comment always comes after the major version. v##.subversion_comment.
+- File names can only be composed of letters, numbers, underscores `_` and dots โ.โ
+- You can use snakeCase or CamelCase if you need more words in a section.ย thisIsLongerSentenceInComment
+- No spaces in filenames. Ever!
+- Frame numbers are always separated by a period โ.โ
+- If you're not sure use this template:
+
+## Work files
+
+**`{code}_{shot}_{task}_v001.ext`**
+
+**`{code}_{asset}_{task}_v001.ext`**
+
+**Examples:**
+
+ prj_sh010_enviro_v001.ma
+ prj_sh010_animation_v001.ma
+ prj_sh010_comp_v001.nk
+
+ prj_bob_modelling_v001.ma
+ prj_bob_rigging_v001.ma
+ prj_bob_lookdev_v001.ma
+
+:::info
+In all of the examples anything enclosed in curly brackets ย { }ย is compulsory in the name.
+Anything in square bracketsย [ ]ย is optional.
+:::
+
+## Published Assets
+
+**`{code}_{asset}_{family}_{subset}_{version}_[comment].ext`**
+
+**Examples:**
+
+ prj_bob_model_main_v01.ma
+ prj_bob_model_hires_v01.ma
+ prj_bob_model_main_v01_clothes.ma
+ prj_bob_model_main_v01_body.ma
+ prj_bob_rig_main_v01.ma
+ Prj_bob_look_main_v01.ma
+ Prj_bob_look_wet_v01.ma
diff --git a/website/docs/module_clockify.md b/website/docs/module_clockify.md
new file mode 100644
index 0000000000..f1020ab818
--- /dev/null
+++ b/website/docs/module_clockify.md
@@ -0,0 +1,10 @@
+---
+id: module_clockify
+title: Clockify Administration
+sidebar_label: Clockify
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
diff --git a/website/docs/module_deadline.md b/website/docs/module_deadline.md
new file mode 100644
index 0000000000..bb3e1fbdb7
--- /dev/null
+++ b/website/docs/module_deadline.md
@@ -0,0 +1,24 @@
+---
+id: module_deadline
+title: Deadline Administration
+sidebar_label: Deadline
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+## Preparation
+
+For [AWS Thinkbox Deadline](https://www.awsthinkbox.com/deadline) support you need to set a few things up in both OpenPype and Deadline itself
+
+1. Enable Deadline module it in the [settings](admin_settings_system#deadline)
+
+2. Set up *Deadline Web API service*. For more details on how to do it, see [here](https://docs.thinkboxsoftware.com/products/deadline/10.0/1_User%20Manual/manual/web-service.html).
+
+3. Point OpenPype to your deadline webservice URL in the [settings](admin_settings_system#deadline)
+
+4. Install our custom plugin, event plugin and scripts to your deadline repository. It should be ass simple as copying content of `openPype/vendor/deadline/custom` to `path/to/your/deadline/repository/custom`
+
+## Troubleshooting
+
diff --git a/website/docs/module_ftrack.md b/website/docs/module_ftrack.md
new file mode 100644
index 0000000000..436594b64c
--- /dev/null
+++ b/website/docs/module_ftrack.md
@@ -0,0 +1,195 @@
+---
+id: module_ftrack
+title: Ftrack Administration
+sidebar_label: Ftrack
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+Ftrack is currently the main project management option for Pype. This documentation assumes that you are familiar with Ftrack and it's basic principles. If you're new to Ftrack, we recommend having a thorough look at [Ftrack Official Documentation](http://ftrack.rtd.ftrack.com/en/stable/).
+
+## Prepare Ftrack for OpenPype
+
+### Server URL
+If you want to connect Ftrack to OpenPype you might need to make few changes in Ftrack settings. These changes would take a long time to do manually, so we prepared a few Ftrack actions to help you out. First, you'll need to launch OpenPype settings, enable [Ftrack module](admin_settings_system#Ftrack), and enter the address to your ftrack server.
+
+### Login
+Once your server is configured, restart OpenPype and you should be prompted to enter your [Ftrack credentials](#credentials) to be able to run our Ftrack actions. If you are already logged in to ftrack in your browser, it is enough to press `ftrack login` and it will connect automatically.
+
+For more details step by step on how to login to ftrack in OpenPype to go [artist ftrack login](#artist_ftrack#first-use-best-case-scenario) documentation.
+
+You can only use our Ftrack Actions and publish to ftrack if each artist is logged in.
+
+
+### Custom Attributes
+After successfully connecting OpenPype with you ftrack, you can right on any project in ftrack and you should see a bunch of actions available. The most important one is called `OpenPype Admin` and contains multiple options inside.
+
+To prepare ftrack for working with OpenPype you'll need to run [OpenPype Admin - Create/Update Avalon Attributes](manager_ftrack_actions#create-update-avalon-attributes), which creates and sets the Custom Attributes necessary for OpenPype to function.
+
+
+
+
+
+
+## Event Server
+
+Ftrack Event Server is the key to automation of many tasks like _status change_, _thumbnail update_, _automatic synchronization to Avalon database_ and many more. Event server should run at all times to perform the required processing as it is not possible to catch some of them retrospectively with enough certainty.
+
+### Running event server
+
+There are specific launch arguments for event server. With `openpype eventserver` you can launch event server but without prior preparation it will terminate immediately. The reason is that event server requires 3 pieces of information: _Ftrack server url_, _paths to events_ and _Credentials (Username and API key)_. Ftrack server URL and Event path are set from OpenPype's environments by default, but the credentials must be done separatelly for security reasons.
+
+
+
+:::note There are 2 ways of passing your credentials to event server.
+
+
+
+
+
+- **`--ftrack-user "your.username"`** : Ftrack Username
+- **`--ftrack-api-key "00000aaa-11bb-22cc-33dd-444444eeeee"`** : User's API key
+- **`--store-crededentials`** : Entered credentials will be stored for next launch with this argument _(It is not needed to enter **ftrackuser** and **ftrackapikey** args on next launch)_
+- **`--no-stored-credentials`** : Stored credentials are loaded first so if you want to change credentials use this argument
+- `--ftrack-url "https://yourdomain.ftrackapp.com/"` : Ftrack server URL _(it is not needed to enter if you have set `FTRACK_SERVER` in OpenPype' environments)_
+- `--ftrack-events-path "//Paths/To/Events/"` : Paths to events folder. May contain multiple paths separated by `;`. _(it is not needed to enter if you have set `FTRACK_EVENTS_PATH` in OpenPype' environments)_
+
+So if you want to use OpenPype's environments then you can launch event server for first time with these arguments `$PYPE_SETUP/pype eventserver --ftrack-user "my.username" --ftrack-api-key "00000aaa-11bb-22cc-33dd-444444eeeee" --store-credentials`. Since that time, if everything was entered correctly, you can launch event server with `$PYPE_SETUP/pype eventserver`.
+
+
+
+
+- `FTRACK_API_USER` - Username _("your.username")_
+- `FTRACK_API_KEY` - User's API key _("00000aaa-11bb-22cc-33dd-444444eeeee")_
+- `FTRACK_SERVER` - Ftrack server url _(")_
+- `FTRACK_EVENTS_PATH` - Paths to events _("//Paths/To/Events/")_
+ We do not recommend you this way.
+
+
+
+:::
+
+:::caution
+We do not recommend setting your ftrack user and api key environments in a persistent way, for security reasons. Option 1. passing them as arguments is substantially safer.
+:::
+
+### Where to run event server
+
+We recommend you to run event server on stable server machine with ability to connect to Avalon database and Ftrack web server. Best practice we recommend is to run event server as service.
+
+:::important
+Event server should **not** run more than once! It may cause major issues.
+:::
+
+### Which user to use
+
+- must have at least `Administrator` role
+- same user should not be used by an artist
+
+### Run Linux service - step by step
+
+1. create file:
+ `sudo vi /opt/OpenPype/run_event_server.sh`
+
+2. add content to the file:
+
+```sh
+export PYPE_DEBUG=3
+pushd /mnt/pipeline/prod/pype-setup
+. pype eventserver --ftrack-user --ftrack-api-key
+```
+
+3. create service file:
+ `sudo vi /etc/systemd/system/openpype-ftrack-event-server.service`
+
+4. add content to the service file
+
+```toml
+[Unit]
+Description=Run Pype Ftrack Event Server Service
+After=network.target
+
+[Service]
+Type=idle
+ExecStart=/opt/pype/run_event_server.sh
+Restart=on-failure
+RestartSec=10s
+
+[Install]
+WantedBy=multi-user.target
+```
+
+5. change file permission:
+ `sudo chmod 0755 /etc/systemd/system/openpype-ftrack-event-server.service`
+
+6. enable service:
+ `sudo systemctl enable openpype-ftrack-event-server`
+
+7. start service:
+ `sudo systemctl start openpype-ftrack-event-server`
+
+* * *
+
+## Ftrack events
+
+Events are helpers for automation. They react to Ftrack Web Server events like change entity attribute, create of entity, etc. .
+
+### Delete Avalon ID from new entity _(DelAvalonIdFromNew)_
+
+Is used to remove value from `Avalon/Mongo Id` Custom Attribute when entity is created.
+
+`Avalon/Mongo Id` Custom Attribute stores id of synchronized entities in pipeline database. When user _Copy -> Paste_ selection of entities to create similar hierarchy entities, values from Custom Attributes are copied too. That causes issues during synchronization because there are multiple entities with same value of `Avalon/Mongo Id`. To avoid this error we preventively remove these values when entity is created.
+
+### Next Task update _(NextTaskUpdate)_
+
+Change status of next task from `Not started` to `Ready` when previous task is approved.
+
+Multiple detailed rules for next task update can be configured in the presets.
+
+### Synchronization to Avalon database _(Sync_to_Avalon)_
+
+Automatic [synchronization to pipeline database](manager_ftrack#synchronization-to-avalon-database).
+
+This event updates entities on their changes Ftrack. When new entity is created or existing entity is modified. Interface with listing information is shown to users when [synchronization rules](manager_ftrack#synchronization-rules) are not met. This event may also undo changes when they might break pipeline. Namely _change name of synchronized entity_, _move synchronized entity in hierarchy_.
+
+:::important
+Deleting an entity by Ftrack's default is not processed for security reasons _(to delete entity use [Delete Asset/Subset action](manager_ftrack_actions#delete-asset-subset))_.
+:::
+
+### Synchronize hierarchical attributes _(SyncHierarchicalAttrs)_
+
+Auto-synchronization of hierarchical attributes from Ftrack entities.
+
+Related to [Synchronize to Avalon database](#synchronization-to-avalon-database) event _(without it, it makes no sense to use this event)_. Hierarchical attributes must be synchronized with special way so we needed to split synchronization into 2 parts. There are [synchronization rules](manager_ftrack#synchronization-rules) for hierarchical attributes that must be met otherwise interface with messages about not meeting conditions is shown to user.
+
+### Thumbnails update _(ThumbnailEvents)_
+
+Updates thumbnail of Task and it's parent when new Asset Version with thumbnail is created.
+
+This is normally done by Ftrack Web server when Asset Version is created with Drag&Drop but not when created with Ftrack API.
+
+### Version to Task status _(VersionToTaskStatus)_
+
+Updates Task status based on status changes on it's `AssetVersion`.
+
+The issue this solves is when Asset version's status is changed but the artist assigned to Task is looking at the task status, thus not noticing the review.
+
+This event makes sure statuses Asset Version get synced to it's task. After changing a status on version, this event first tries to set identical status to version's parent (usually task). But this behavior can be tweaked in settings.
+
+
+### Update First Version status _(FirstVersionStatus)_
+
+This event handler allows setting of different status to a first created Asset Version in ftrack.
+
+This is usefull for example if first version publish doesn't contain any actual reviewable work, but is only used for roundtrip conform check, in which case this version could receive status `pending conform` instead of standard `pending review`
+
+Behavior can be filtered by `name` or `type` of the task assigned to the Asset Version. Configuration can be found in [ftrack presets](admin_presets_ftrack#first_version_status-dict)
+
+* * *
diff --git a/website/docs/module_muster.md b/website/docs/module_muster.md
new file mode 100644
index 0000000000..28c4b33aa8
--- /dev/null
+++ b/website/docs/module_muster.md
@@ -0,0 +1,10 @@
+---
+id: module_muster
+title: Muster Administration
+sidebar_label: Muster
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
diff --git a/website/docs/module_site_sync.md b/website/docs/module_site_sync.md
new file mode 100644
index 0000000000..1b728e151a
--- /dev/null
+++ b/website/docs/module_site_sync.md
@@ -0,0 +1,10 @@
+---
+id: module_site_sync
+title: Site Sync Administration
+sidebar_label: Site Sync
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
diff --git a/website/docs/pype2/admin_anatomy.md b/website/docs/pype2/admin_anatomy.md
new file mode 100644
index 0000000000..7f6342ff78
--- /dev/null
+++ b/website/docs/pype2/admin_anatomy.md
@@ -0,0 +1,78 @@
+---
+id: admin_anatomy
+title: Project Anatomy
+sidebar_label: Folder Structure
+---
+
+## PROJECT Structure
+
+This is example project structure when using Pype:
+
+```text
+Project
+ โโโโassets
+ โ โโโโBob
+ โ โโโโ...
+ โโโโepisodes
+ โโโโep01
+ โโโโsq01
+ โโโโep01_sq01_sh001
+ โโโโpublish
+ โโโโwork
+```
+
+:::note Shot naming
+We do strongly recommend to name shots with their full hierarchical name. Avalon doesn't allow two assets with same name in project. Therefor if you have for example:
+
+```text
+sequence01 / shot001
+```
+and then
+```text
+sequence02 / shot001
+```
+you'll run into trouble because there are now two `shot001`.
+
+Better way is to use full qualified name for shot. So the above become:
+```text
+sequence01 / sequence01_shot001
+```
+
+This has two advantages: there will be no duplicities this way and artists can see just by looking at filename the whole hierarchy.
+:::
+
+## ASSET Structure
+
+```text
+Bob
+ โโโโpublish
+ โ โโโโmodel
+ โ โ โโโโmodelMain
+ โ โ โโโโmodelProxy
+ โ โ โโโโmodelSculpt
+ โ โโโโworkfile
+ โ โ โโโโtaskName
+ โ โโโโrig
+ โ โ โโโโrigMain
+ โ โโโโlook
+ โ โ โโโโlookMain
+ โ โ โ โโโโv01
+ โ โ โ โโโโtexture
+ โ โ โโโโlookWet
+ โ โโโโcamera
+ โ โ โโโโcamMain
+ โ โ โโโโcamLayout
+ โ โโโโcache
+ โ โ โโโโcacheChar01
+ โ โ โโโโcacheRock01
+ โ โโโโvrproxy
+ โ โโโโfx
+ โ โโโโsetdress
+ โโโโwork
+ โโโโconcept
+ โโโโfur
+ โโโโmodelling
+ โโโโrig
+ โโโโlook
+ โโโโtaskName
+```
diff --git a/website/docs/pype2/admin_config.md b/website/docs/pype2/admin_config.md
new file mode 100644
index 0000000000..c753ee85a4
--- /dev/null
+++ b/website/docs/pype2/admin_config.md
@@ -0,0 +1,392 @@
+---
+id: admin_config
+title: Studio Config
+sidebar_label: Studio Config
+---
+
+All of the studio specific configurations are stored as simple JSON files in the **pype-config** repository.
+
+Config is split into multiple sections described below.
+
+## Anatomy
+
+Defines where and how folders and files are created for all the project data. Anatomy has two parts **Roots** and **Templates**.
+
+:::warning
+It is recommended to create anatomy [overrides](#per-project-configuration) for each project even if values haven't changed. Ignoring this recommendation may cause catastrophic consequences.
+:::
+
+### Roots
+Roots define where files are stored with path to shared folder. You can set them in `roots.json`.
+It is required to set root path for each platform you are using in studio. All paths must point to same folder!
+```json
+{
+ "windows": "P:/projects",
+ "darwin": "/Volumes/projects",
+ "linux": "/mnt/share/projects"
+}
+```
+
+It is possible to set multiple roots when necessary. That may be handy when you need to store specific type of data on another disk. In that case you'll have to add one level in json.
+```json
+{
+ "work": {
+ "windows": "P:/work",
+ "darwin": "/Volumes/work",
+ "linux": "/mnt/share/work"
+ },
+ "publish": {
+ "windows": "Y:/publish",
+ "darwin": "/Volumes/publish",
+ "linux": "/mnt/share/publish"
+ }
+}
+```
+Usage of multiple roots is explained below in templates part.
+
+### Templates
+Templates define project's folder structure and filenames. You can set them in `default.yaml`.
+
+### Required templates
+We have a few required anatomy templates for Pype to work properly, however we keep adding more when needed.
+
+```yaml
+work:
+ folder: "{root}/{project[name]}/{hierarchy}/{asset}/work/{task}"
+ file: "{project[code]}_{asset}_{task}_v{version:0>3}<_{comment}>.{ext}"
+ path: "{root}/{project[name]}/{hierarchy}/{asset}/work/{task}/{project[code]}_{asset}_{task}_v{version:0>3}<_{comment}>.{ext}"
+
+publish:
+ folder: "{root}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/v{version:0>3}"
+ file: "{project[code]}_{asset}_{subset}_v{version:0>3}<.{frame}>.{representation}"
+ path: "{root}/{project[name]}/{hierarchy}/{asset}/publish/{family}/{subset}/v{version:0>3}/{project[code]}_{asset}_{subset}_v{version:0>3}<.{frame}>.{representation}"
+```
+
+Template groups `work` and `publish` must be set in all circumstances. Both must have set keys as shown `folder`, holds path template for the directory where the files are stored, `file` only holds the filename and `path` combines the two together for quicker access.
+
+### Available keys
+| Context key | Description |
+| --- | --- |
+| root | Path to root folder |
+| root[\] | Path to root folder when multiple roots are used. Key `` represents root key specified in `roots.json` |
+| project[name] | Project's full name. |
+| project[code] | Project's code. |
+| hierarchy | All hierarchical parents as subfolders. |
+| asset | Name of asset or shot. |
+| task | Name of task. |
+| version | Version number. |
+| subset | Subset name. |
+| family | Main family name. |
+| ext | File extention. (Possible to use only in `work` template atm.) |
+| representation | Representation name. (Is used instead of `ext` except `work` template atm.) |
+| frame | Frame number for sequence files. |
+| output | |
+| comment | |
+
+:::warning
+Be careful about using `root` key in templates when using multiple roots. It is not allowed to combine both `{root}` and `{root[]}` in templates.
+:::
+:::note
+It is recommended to set padding for `version` which is possible with additional expression in template. Entered key `{version:0<3}` will result into `001` if version `1` is published.
+**Explanation:** Expression `0<3` will add `"0"` char to the beginning(`<`) until string has `3` characters.
+:::
+
+| Date-Time key | Example result | Description |
+| --- | --- | --- |
+| d | 1, 30 | Day of month in shortest possible way. |
+| dd | 01, 30 | Day of month with 2 digits. |
+| ddd | Mon | Shortened week day name. |
+| dddd | Monday | Full week day name. |
+| m | 1, 12 | Month number in shortest possible way. |
+| mm | 01, 12 | Month number with 2 digits. |
+| mmm | Jan | Shortened month name. |
+| mmmm | January | Full month name. |
+| yy | 20 | Shortened year. |
+| yyyy | 2020 | Full year. |
+| H | 4, 17 | Shortened 24-hour number. |
+| HH | 04, 17 | 24-hour number with 2 digits. |
+| h | 5 | Shortened 12-hour number. |
+| hh | 05 | 12-hour number with 2 digits. |
+| ht | AM, PM | Midday part. |
+| M | 0 | Shortened minutes number. |
+| MM | 00 | Minutes number with 2 digits. |
+| S | 0 | Shortened seconds number. |
+| SS | 00 | Seconds number with 2 digits. |
+
+### Optional keys
+Keys may be optional for some reason when are wrapped with `<` and `>`. But it is recommended to use only for these specific keys with obvious reasons:
+- `output`, `comment` are optional to fill
+- `frame` is used only for sequences.
+
+### Inner keys
+It is possible to use value of one template key inside value of another template key. This can be done only per template group, which means it is not possible to use template key from `publish` group inside `work` group.
+
+Usage is similar to using template keys but instead of `{key}` you must add `@` in front of key: `{@key}`
+
+With this feature `work` template from example above may be much easier to read and modify.
+```yaml
+work:
+ folder: "{root}/{project[name]}/{hierarchy}/{asset}/work/{task}"
+ file: "{project[code]}_{asset}_{task}_v{version:0>3}<_{comment}>.{ext}"
+ path: "{@folder}/{@file}"
+ # This is how `path` key will look as result
+ # path: "{root}/{project[name]}/{hierarchy}/{asset}/work/{task}/{project[code]}_{asset}_{task}_v{version:0>3}<_{comment}>.{ext}"
+```
+
+:::warning
+Be aware of unsolvable recursion in inner keys.
+```yaml
+group:
+ # Use key where source key is used in value
+ key_1: "{@key_2}"
+ key_2: "{@key_1}"
+
+ # Use itself
+ key_3: "{@key_3}"
+```
+:::
+
+### Global keys
+Global keys are keys with value outside template groups. All these keys will be available in each template group with ability to override them inside the group.
+
+**Source**
+```yaml
+# Global key outside template group
+global_key: "global value"
+
+group_1:
+ # `global_key` is not set
+ example_key_1: "{example_value_1}"
+
+group_2:
+ # `global_key` is iverrided
+ global_key: "overriden global value"
+```
+**Result**
+```yaml
+global_key: "global value"
+
+group_1:
+ # `global_key` was added
+ global_key: "global value"
+ example_key_1: "{example_value_1}"
+
+group_2:
+ # `global_key` kept it's value for `group_2`
+ global_key: "overriden global value"
+```
+
+### Combine Inner keys with Global keys
+Real power of [Inner](#inner-keys) and [Global](#global-keys) keys is their combination.
+
+**Template source**
+```yaml
+# PADDING
+frame_padding: 4
+frame: "{frame:0>frame_padding}"
+# MULTIPLE ROOT
+root_name: "root_name_1"
+root: {root[{@root_name}]}
+
+group_1:
+ example_key_1: "{@root}/{@frame}"
+
+group_2:
+ frame_padding: 3
+ root_name: "root_name_2"
+ example_key_2: "{@root}/{@frame}"
+
+group_3:
+ frame: "{frame}"
+ example_key_3: "{@root}/force_value/{@frame}"
+```
+**Equals**
+```yaml
+frame_padding: 4
+frame: "{frame:0>3}"
+root_name: "root_name_1"
+root: {root[root_name_1]}
+
+group_1:
+ frame_padding: 4
+ frame: "{frame:0>3}"
+ root_name: "root_name_1"
+ root: {root[root_name_1]}
+ # `example_key_1` result
+ example_key_1: "{root[root_name_1]}/{frame:0>3}"
+
+group_2:
+ frame_padding: 3
+ frame: "{frame:0>3}"
+ root_name: "root_name_2"
+ root: {root[root_name_2]}
+ # `example_key_2` result
+ example_key_2: "{root[root_name_2]}/{frame:0>2}"
+
+group_3:
+ frame_padding: 4
+ frame: "{frame}"
+ root_name: "root_name_1"
+ root: {root[root_name_1]}
+ # `example_key_3` result
+ example_key_3: "{root[root_name_1]}/force_value/{frame}"
+```
+
+:::warning
+Be careful about using global keys. Keep in mind that **all global keys** will be added to **all template groups** and all inner keys in their values **MUST** be in the group.
+For example in [required templates](#required-templates) it seems that `path: "{@folder}/{@file}"` should be used as global key, but that would require all template groups have `folder` and `file` keys which is not true by default.
+:::
+
+## Environments
+
+Here is where all the environment variables are set up. Each software has it's own environment file where we set all variables needed for it to function correctly. This is also a place where any extra in-house variables should be added. All of these individual configs and then loaded additively as needed based on current context.
+
+For example when launching Pype Tray, **Global** and **Avalon** envs are loaded first. If the studio uses also *Deadline* and *Ftrack*, both of those environments get added at the same time. This sets the base environment for the rest of the pipeline that will be inherited by all the applications launched from this point on.
+
+When user launches an application for a task, its general and versioned env files get added to the base before the software launches. When launching *Maya 2019*, both `maya.json` and `maya_2019.json` will be added.
+
+If the project or task also has extra tools configured, say *Arnold Mtoa 3.1.1*, a config JSON with the same name will be added too.
+
+This way the environment is completely dynamic with possibility of overrides on a granular level, from project all the way down to task.
+
+## Launchers
+
+Considering that different studios use different ways of deploying software to their workstations, we need to tell Pype how to launch all the individual applications available in the studio.
+
+Each software need multiple files prepared for it to function correctly.
+
+```text
+application_name.toml
+application_name.bat
+application_name.sh
+```
+
+TOML file tells Pype how to work with the application across the board. Icons, Label in GUI, *Ftrack* settings but most importantly it defines what executable to run. These executable are stored in the windows and linux subfolder in the launchers folder. If `application_name.toml` defines that executable to run is `application_name`, Pype assumes that a `.bat` and `.sh` files under that name exist in the linux and windows folders in launchers. Correct version is picked automatically based on the platform Pype is running on.
+
+These `.bat` and `.sh` scripts have only one job then. They have to point to the exact executable path on the system, or to a command that will launch the app we want. Version granularity is up to the studio to decide. We can show artists Nuke 11.3, while specifying the particular version 11.3v4 only in the .bat file, so the artist doesn't need to deal with it, or we can present him with 11.3v4 directly. the choice is mostly between artist control vs more configuration files on the system.
+
+## Presets
+
+This is where most of the functions configuration of the pipeline happens. Colorspace, data types, burnin setting, geometry naming conventions, ftrack attributes, playblast settings, types of exports and lot's of other settings.
+
+Presets are categorized in folders based on what they control or what host (DCC application) they are for. We're slowly working on documenting them all, but new ones are being created regularly as well. Hopefully the categories and names are sufficiently self-explanatory.
+
+### colorspace
+
+Defines all available color spaces in the studio. These configs not only tell the system what OCIO to use, but also how exactly it needs to be applied in the give application. From loading the data, trough previewing it all the way to rendered
+
+### Dataflow
+
+Defines allowed file types and data formats across the pipeline including their particular coded and compression settings.
+
+### Plugins
+
+All the creator, loader and publisher configurations are stored here. We can override any properties of the default plugin values and more.
+
+#### How does it work
+
+Overriding plugin properties is as simple as adding what needs to be changed to
+JSON file along with plugin name.
+
+Say you have name validating plugin:
+
+```python
+import pyblish.api
+
+
+class ValidateModelName(pyblish.api.InstancePlugin):
+
+ order = pype.api.ValidateContentsOrder
+ hosts = ['maya']
+ families = ['model']
+ label = 'Validate Mesh Name'
+
+ # check for: 'foo_001_bar_GEO`
+ regex = r'.*_\d*_.*_GEO'
+
+ def process(self, instance):
+ # pseudocode to get nodes
+ models = get_models(instance.data.get("setMembers", None))
+ r = re.compile(self.regex)
+ for model in models:
+ m = r.match(obj)
+ if m is None:
+ raise RuntimeError("invalid name on {}".format(model))
+
+```
+_This is just non-functional example_
+
+Instead of creating new plugin with different regex, you can put:
+
+```javascript
+"ValidateModelName": {
+ "regex": ".*\\d*_.*_geometry"
+}
+```
+and put it into `repos/pype-config/presets/plugins/maya/publish.json`. There can be more entries
+like that for how many plugins you need.
+
+That will effectively replace regex defined in plugin during runtime with the one you've just
+defined in JSON file. This way you can change any properties defined in plugin.
+
+:::tip loader and creators
+Similar way exist for *Loaders* and *Creators*. Use files `create.json` for Creators, `load.json`
+for Loaders and `publish.json` for **Pyblish** plugins like extractors, validators, etc.
+
+Preset resolution works by getting host name (for example *Maya*) and then looking inside
+ `repos/pype-config/presets/plugins//publish.json` path. If plugin is not found, then
+ `repos/pype-config/presets/plugins/global/publish.json` is tried.
+:::
+
+:::tip Per project plugin override
+You can override plugins per project. See [Per-project configuration](#per-project-configuration)
+:::
+
+
+## Schema
+
+Holds all database schemas for *mongoDB*, that we use. In practice these are never changed on a per studio basis, however we included them in the config for cases where a particular project might need a very individual treatment.
+
+## Per-project configuration
+
+You can have per-project configuration with Pype. This allows you to have for example different
+validation requirements, file naming, etc.
+
+This is very easy to set up - point `PYPE_PROJECT_CONFIGS` environment variable to place
+where you want those per-project configurations. Then just create directory with project name and
+that's almost it. Inside, you can follow hierarchy of **pype-config** presets. Everything put there
+will override stuff in **pype-config**.
+
+### Example
+
+You have a project where you need to disable some validators - let's say overlapping
+UVs validator in Maya.
+
+Project name is *FooProject*.
+Your `PYPE_PROJECT_CONFIGS` points to `/studio/pype/projects`.
+
+Create projects settings directory:
+```sh
+mkdir $PYPE_PROJECT_CONFIGS/FooProject
+```
+Now you can use plugin overrides to disable validator:
+
+Put:
+```javascript
+{
+ "ValidateMeshHasOverlappingUVs": {
+ "enabled": false
+ }
+}
+```
+into:
+
+```sh
+$PYPE_PROJECT_CONFIGS/FooPoject/presets/plugins/maya/publish.json
+```
+
+And its done. **ValidateMeshHasOverlappingUVs** is a class name of validator - you can
+find that name by looking into python file containing validator code, or in Pyblish GUI.
+
+That way you can make it optional or set whatever properties you want on plugins and those
+settings will take precedence over the default site-wide settings.
diff --git a/website/docs/pype2/admin_ftrack.md b/website/docs/pype2/admin_ftrack.md
new file mode 100644
index 0000000000..d321caf870
--- /dev/null
+++ b/website/docs/pype2/admin_ftrack.md
@@ -0,0 +1,203 @@
+---
+id: admin_ftrack
+title: Ftrack Setup
+sidebar_label: Ftrack Setup
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+
+Ftrack is currently the main project management option for Pype. This documentaion assumes that you are familiar with Ftrack and it's basic principles. If you're new to Ftrack, we recommend having a thorough look at [Ftrack Official Documentation](http://ftrack.rtd.ftrack.com/en/stable/).
+
+## Prepare Ftrack for Pype
+
+If you want to connect Ftrack to Pype you might need to make few changes in Ftrack settings. These changes would take a long time to do manually, so we prepared a few Ftrack actions to help you out. First, you'll need to launch Pype's tray application and set [Ftrack credentials](#credentials) to be able to run our Ftrack actions.
+
+The only action that is strictly required is [Pype Admin - Create/Update Avalon Attributes](manager_ftrack_actions#create-update-avalon-attributes), which creates and sets the Custom Attributes necessary needed for Pype to function. If you want to use pype only for new projects then you should read about best practice with [new project](#new-project).
+
+If you want to switch projects that are already in production, you might also need to run [Pype Doctor - Custom attr doc](manager_ftrack_actions#custom-attr-doc).
+
+:::caution
+Keep in mind that **Custom attr doc** action will migrate certain attributes from ftrack default ones to our custom attributes. Some attributes will also be renamed. We make backup of the values, but be very carefull with this option and consults us before running it.
+:::
+
+## Event Server
+
+Ftrack Event Server is the key to automation of many tasks like _status change_, _thumbnail update_, _automatic synchronization to Avalon database_ and many more. Event server should run at all times to perform all the required processing as it is not possible to catch some of them retrospectively with enough certainty.
+
+### Running event server
+
+There are specific launch arguments for event server. With `$PYPE_SETUP/pype eventserver` you can launch event server but without prior preparation it will terminate immediately. The reason is that event server requires 3 pieces of information: _Ftrack server url_, _paths to events_ and _Credentials (Username and API key)_. Ftrack server URL and Event path are set from Pype's environments by default, but the credentials must be done separatelly for security reasons.
+
+
+
+:::note There are 2 ways of passing your credentials to event server.
+
+
+
+
+
+- **`--ftrack-user "your.username"`** : Ftrack Username
+- **`--ftrack-api-key "00000aaa-11bb-22cc-33dd-444444eeeee"`** : User's API key
+- **`--store-crededentials`** : Entered credentials will be stored for next launch with this argument _(It is not needed to enter **ftrackuser** and **ftrackapikey** args on next launch)_
+- **`--no-stored-credentials`** : Stored credentials are loaded first so if you want to change credentials use this argument
+- `--ftrack-url "https://yourdomain.ftrackapp.com/"` : Ftrack server URL _(it is not needed to enter if you have set `FTRACK_SERVER` in Pype' environments)_
+- `--ftrack-events-path "//Paths/To/Events/"` : Paths to events folder. May contain multiple paths separated by `;`. _(it is not needed to enter if you have set `FTRACK_EVENTS_PATH` in Pype' environments)_
+
+So if you want to use Pype's environments then you can launch event server for first time with these arguments `$PYPE_SETUP/pype eventserver --ftrack-user "my.username" --ftrack-api-key "00000aaa-11bb-22cc-33dd-444444eeeee" --store-credentials`. Since that time, if everything was entered correctly, you can launch event server with `$PYPE_SETUP/pype eventserver`.
+
+
+
+
+- `FTRACK_API_USER` - Username _("your.username")_
+- `FTRACK_API_KEY` - User's API key _("00000aaa-11bb-22cc-33dd-444444eeeee")_
+- `FTRACK_SERVER` - Ftrack server url _(")_
+- `FTRACK_EVENTS_PATH` - Paths to events _("//Paths/To/Events/")_
+ We do not recommend you this way.
+
+
+
+:::
+
+:::caution
+We do not recommend setting your ftrack user and api key environments in a persistent way, for security reasons. Option 1. passing them as arguments is substantially safer.
+:::
+
+### Where to run event server
+
+We recommend you to run event server on stable server machine with ability to connect to Avalon database and Ftrack web server. Best practice we recommend is to run event server as service.
+
+:::important
+Event server should **not** run more than once! It may cause big pipeline issues.
+:::
+
+### Which user to use
+
+- must have at least `Administrator` role
+- same user should not be used by an artist
+
+### Run Linux service - step by step
+
+1. create file:
+ `sudo vi /opt/pype/run_event_server.sh`
+
+2. add content to the file:
+
+```sh
+export PYPE_DEBUG=3
+pushd /mnt/pipeline/prod/pype-setup
+. pype eventserver --ftrack-user --ftrack-api-key
+```
+
+3. create service file:
+ `sudo vi /etc/systemd/system/pype-ftrack-event-server.service`
+
+4. add content to the service file
+
+```toml
+[Unit]
+Description=Run Pype Ftrack Event Server Service
+After=network.target
+
+[Service]
+Type=idle
+ExecStart=/opt/pype/run_event_server.sh
+Restart=on-failure
+RestartSec=10s
+
+[Install]
+WantedBy=multi-user.target
+```
+
+5. change file permission:
+ `sudo chmod 0755 /etc/systemd/system/pype-ftrack-event-server.service`
+
+6. enable service:
+ `sudo systemctl enable pype-ftrack-event-server`
+
+7. start service:
+ `sudo systemctl start pype-ftrack-event-server`
+
+* * *
+
+## Ftrack events
+
+Events are helpers to automation. They react to Ftrack Web Server events like change entity attribute, create of entity, etc. .
+
+### Delete Avalon ID from new entity _(DelAvalonIdFromNew)_
+
+Is used to remove value from `Avalon/Mongo Id` Custom Attribute when entity is created.
+
+`Avalon/Mongo Id` Custom Attribute stores id of synchronized entities in pipeline database. When user _Copy -> Paste_ selection of entities to create similar hierarchy entities, values from Custom Attributes are copied too. That causes issues during synchronization because there are multiple entities with same value of `Avalon/Mongo Id`. To avoid this error we preventively remove these values when entity is created.
+
+### Next Task update _(NextTaskUpdate)_
+
+Change status of next task from `Not started` to `Ready` when previous task is approved.
+
+Multiple detailed rules for next task update can be configured in the presets.
+
+### Synchronization to Avalon database _(Sync_to_Avalon)_
+
+Automatic [synchronization to pipeline database](manager_ftrack#synchronization-to-avalon-database).
+
+This event updates entities on their changes Ftrack. When new entity is created or existing entity is modified. Interface with listing information is shown to users when [synchronization rules](manager_ftrack#synchronization-rules) are not met. This event may also undo changes when they might break pipeline. Namely _change name of synchronized entity_, _move synchronized entity in hierarchy_.
+
+:::important
+Deleting an entity by Ftrack's default is not processed for security reasons _(to delete entity use [Delete Asset/Subset action](manager_ftrack_actions#delete-asset-subset))_.
+:::
+
+### Synchronize hierarchical attributes _(SyncHierarchicalAttrs)_
+
+Auto-synchronization of hierarchical attributes from Ftrack entities.
+
+Related to [Synchronize to Avalon database](#synchronization-to-avalon-database) event _(without it, it makes no sense to use this event)_. Hierarchical attributes must be synchronized with special way so we needed to split synchronization into 2 parts. There are [synchronization rules](manager_ftrack#synchronization-rules) for hierarchical attributes that must be met otherwise interface with messages about not meeting conditions is shown to user.
+
+### Thumbnails update _(ThumbnailEvents)_
+
+Updates thumbnail of Task and it's parent when new Asset Version with thumbnail is created.
+
+This is normally done by Ftrack Web server when Asset Version is created with Drag&Drop but not when created with Ftrack API.
+
+### Version to Task status _(VersionToTaskStatus)_
+
+Updates Task status based on status changes on it's `AssetVersion`.
+
+The issue this solves is when Asset version's status is changed but the artist assigned to Task is looking at the task status, thus not noticing the review.
+
+This event makes sure statuses Asset Version get synced to it's task. After changing a status on version, this event first tries to set identical status to version's parent (usually task). At this moment there are a few more status mappings hardcoded into the system. If Asset version's status was changed to:
+
+- `Reviewed` then Task's status will be changed to `Change requested`
+- `Approved` then Task's status will be changed to `Complete`
+
+
+### Update First Version status _(FirstVersionStatus)_
+
+This event handler allows setting of different status to a first created Asset Version in ftrack.
+
+This is usefull for example if first version publish doesn't contain any actual reviewable work, but is only used for roundtrip conform check, in which case this version could receive status `pending conform` instead of standard `pending review`
+
+Behaviour can be filtered by `name` or `type` of the task assigned to the Asset Version. Configuration can be found in [ftrack presets](admin_presets_ftrack#first_version_status-dict)
+
+* * *
+
+## Credentials
+
+If you want to be able use Ftrack actions with Pype tray or [event server](#event-server) you need to enter credentials. The credentials required for Ftrack are `Username` and `API key`.
+
+### Credentials in tray
+
+How to handle with credentials in tray is described [here](#artist_ftrack#first-use-best-case-scenario).
+
+### Credentials in event server
+
+How to enter credentials to event server is described [here](#how-to-run-event-server).
+
+### Where to find API key
+
+Please check the [official documentation](http://ftrack.rtd.ftrack.com/en/backlog-scaling-ftrack-documentation-story/developing/api_keys.html).
diff --git a/website/docs/pype2/admin_hosts.md b/website/docs/pype2/admin_hosts.md
new file mode 100644
index 0000000000..24efef7f05
--- /dev/null
+++ b/website/docs/pype2/admin_hosts.md
@@ -0,0 +1,260 @@
+---
+id: admin_hosts
+title: Hosts Setup
+sidebar_label: Hosts Setup
+---
+
+## Host configuration
+
+To add new host application (for example new version of Autodesk Maya, etc.) just follow these steps:
+
+### Launchers
+
+You can find **launchers** in `repos/pype-config`. You can notice there is a bunch of **[TOML](https://en.wikipedia.org/wiki/TOML)** files and Linux and Windows shell scripts in their respective folders. **TOML** file
+holds basic metadata information for host application. Their naming convention is important and follow this pattern:
+
+```fix
+app_name[_version].toml
+```
+
+for example `maya_2020.toml` or `nuke_11.3.toml`. More about it later. For now, lets look on content of one of these files:
+
+```toml
+executable = "unreal"
+schema = "avalon-core:application-1.0"
+application_dir = "unreal"
+label = "Unreal Editor 4.24"
+ftrack_label = "UnrealEditor"
+icon ="ue4_icon"
+launch_hook = "pype/hooks/unreal/unreal_prelaunch.py/UnrealPrelaunch"
+ftrack_icon = '{}/app_icons/ue4.png'
+```
+
+* `executable` - specifies name (without extension) of shell script launching application (in windows/linux/darwin folders)
+* `schema` - not important, specifying type of metadata
+* `application_dir` - this specifies name of folder used in **app** key in [anatomy templates](admin_config#anatomy)
+* `label` - name of application to show in launcher
+* `ftrack_label` - name under which this application is show in ftrack actions (grouped by)
+* `icon` - application icon used in avalon launcher
+* `launch_hook` - path to Python code to execute before application is started (currently only from ftrack action)
+* `ftrack_icon` - icon used in ftrack
+
+### Environments
+
+You can modify environment variables for you application in `repos/pype-config/environments`. Those files are
+[JSON](https://en.wikipedia.org/wiki/JSON) files. Those file are loaded and processed in somewhat hierarchical way. For example - for Autodesk Maya 2020, first file named `maya.json` is processed and then `maya_2020.json` is. Syntax is following:
+
+```json
+{
+ "VARIABLE": "123",
+ "NEXT_VARIABLE": "{VARIABLE}4",
+ "PLATFORMS": {
+ "windows": "set_on_windows",
+ "linux": "set_on_linux",
+ "darwin": "set_on_max"
+ },
+ "PATHS: [
+ "paths/1", "path/2", "path/3"
+ ]
+}
+```
+
+This will result on windows in environment with:
+
+```sh
+VARIABLE="123"
+NEXT_VARIABLE="1234"
+PLATFORMS="set_on_windows"
+PATHS="path/1;path/2;path/3"
+```
+
+### Ftrack
+
+You need to add your new application to ftrack so it knows about it. This is done in System Preferences of
+ftrack in `Advanced:Custom Attributes`. There you can find `applications` attribute. It looks like this:
+
+
+
+Menu/value consists of two rows per application - first row is application name and second is basically filename of this **TOML** file mentioned above without `.toml` extension. After you add or modify whatever you need here, you need to add you new application to project in ftrack. Just open project Info in ftrack, find out
+**Applications** and add your new application there. If you are running [event server](admin_ftrack#event-server) then this information is synced to avalon automatically. If not, you need to sync it manually by running **Sync to Avalon** action.
+
+Now, restart Pype and your application should be ready.
+
+### Conclusion
+
+To wrap it up:
+
+- create your shell scripts to launch application (don't forget to set correct OS permissions)
+- create **TOML** file pointing to shell scripts, set you icons and labels there
+- check or create you environment **JSON** file in `environments` even if it is empty (`{}`)
+- to make it work with ftrack, modify **applications** in *Custom Attributes*, add it to your project and sync
+- restart Pype
+
+## Autodesk Maya
+
+[Autodesk Maya](https://www.autodesk.com/products/maya/overview) is supported out of the box and doesn't require any special setup. Even though everything should be ready to go from the start, here is the checklist to get pype running in Maya
+
+1. Correct executable in launchers as explained in [here](admin_config#launchers)
+2. Pype environment variable added to `PYTHONPATH` key in `maya.json` environment preset.
+```json
+{
+ "PYTHONPATH": [
+ "{PYPE_ROOT}/repos/avalon-core/setup/maya",
+ "{PYPE_ROOT}/repos/maya-look-assigner"
+ ]
+}
+```
+
+
+## Foundry Nuke
+
+[Foundry Nuke](https://www.foundry.com/products/nuke) is supported out of the box and doesn't require any special setup. Even though everything should be ready to go from the start, here is the checklist to get pype running in Nuke
+
+1. Correct executable in launchers as explained in [here](admin_config#launchers)
+2. Following environment variables in `nuke.json` environment file. (PYTHONPATH might need to be changed in different studio setups)
+
+```json
+{
+ "NUKE_PATH": [
+ "{PYPE_ROOT}/repos/avalon-core/setup/nuke/nuke_path",
+ "{PYPE_MODULE_ROOT}/setup/nuke/nuke_path",
+ "{PYPE_STUDIO_PLUGINS}/nuke"
+ ],
+ "PYPE_LOG_NO_COLORS": "True",
+ "PYTHONPATH": {
+ "windows": "{VIRTUAL_ENV}/Lib/site-packages",
+ "linux": "{VIRTUAL_ENV}/lib/python3.6/site-packages"
+ }
+}
+```
+
+
+
+## AWS Thinkbox Deadline
+
+To support [AWS Thinkbox Deadline](https://www.awsthinkbox.com/deadline) you just need to:
+
+1. enable it in **init_env** key of your `deploy.json` file:
+
+```json
+{
+ "PYPE_CONFIG": "{PYPE_ROOT}/repos/pype-config",
+ "init_env": ["global", "avalon", "ftrack", "deadline"]
+}
+```
+
+2. Edit `repos/pype-config/environments/deadline.json` and change `DEADLINE_REST_URL` to point to your Deadline Web API service.
+
+3. Set up *Deadline Web API service*. For more details on how to do it, see [here](https://docs.thinkboxsoftware.com/products/deadline/10.0/1_User%20Manual/manual/web-service.html).
+
+### Pype Dealine supplement code
+
+There is some code needed to be installed on Deadline repository. You can find this repository overlay in
+`pype-setup/vendor/deadline`. This whole directory can be copied to your existing deadline repository.
+
+Currently there is just **GlobalJobPreLoad.py** script taking care of path remapping in case of multiplatform
+machine setup on farm. If there is no mix of windows/linux machines on farm, there is no need to use this.
+
+## Virtual Vertex Muster
+
+Pype supports rendering with [Muster](https://www.vvertex.com/). To enable it:
+1. Add `muster` to **init_env** to your `deploy.json`
+ file:
+
+```json
+{
+ "PYPE_CONFIG": "{PYPE_ROOT}/repos/pype-config",
+ "init_env": ["global", "avalon", "ftrack", "muster"]
+}
+```
+
+2. Configure URL to Muster Web API - in `repos/pype-config/environments/muster.json`. There you need to set `MUSTER_REST_URL` to correct value.
+
+3. Enabled muster in [tray presets](admin_presets_tools##item_usage-dict)
+
+#### Template mapping
+
+For setting up muster templates have a look at [Muster Template preset](admin_presets_tools#muster-templates)
+
+:::note
+User will be asked for it's Muster login credentials during Pype startup or any time later if its authentication token expires.
+:::
+
+
+## Clockify
+
+[Clockify](https://clockify.me/) integration allows pype users to seamlessly log their time into clockify in the background. This in turn allow project managers to have better overview of all logged times with clockify dashboards and analytics.
+
+1. Enable clockify, add `clockify` to **init_env** in your `deploy.json`
+ file:
+
+```json
+{
+ "PYPE_CONFIG": "{PYPE_ROOT}/repos/pype-config",
+ "init_env": ["global", "avalon", "ftrack", "clockify"]
+}
+```
+
+2. Configure your clockify workspace. In `repos/pype-config/environments/clockify.json`, you need to change `CLOCKIFY_WORKSPACE` to the correct value
+
+```json
+{
+ "CLOCKIFY_WORKSPACE": "test_workspace"
+}
+```
+
+3. Enabled Clockify in [tray presets](admin_presets_tools##item_usage-dict)
+
+
+:::note
+User will be asked for it's Clockify login credentials during Pype startup.
+:::
+
+
+## Unreal Editor
+
+Pype supports [Unreal](https://www.unrealengine.com/). This support is currently tested only on Windows platform.
+You can control Unreal behavior by editing `repos/pype-config/presets/unreal/project_setup.json`:
+
+```json
+{
+ "dev_mode": false,
+ "install_unreal_python_engine": false
+}
+```
+
+Setting `dev_mode` to **true** will make all new projects created on tasks by pype C++ projects. To work with those,
+you need [Visual Studio](https://visualstudio.microsoft.com/) installed.
+
+`install_unreal_python_engine` will install [20tab/UnrealEnginePython](https://github.com/20tab/UnrealEnginePython) as plugin
+in new project. This implies `dev_mode`. Note that **UnrealEnginePython** is compatible only with specific versions of Unreal Engine (usually not with the latest one). This plugin is not needed but can be used along *"standard"* python support in Unreal Engine to
+extend Pype or Avalon functionality.
+
+### Unreal Engine version detection
+
+Pype is trying to automatically find installed Unreal Engine versions. This relies on [Epic Games Launcher](https://www.epicgames.com/store/en-US/).
+If you have custom install location (for example you've built your own version from sources), you can set
+`UNREAL_ENGINE_LOCATION` to point there. Pype then tries to find UE version in `UE_x.xx` subfolders.
+
+### Avalon Unreal Integration plugin
+
+Avalon/Pype integration needs [Avalon Unreal Integration Plugin](https://github.com/pypeclub/avalon-unreal-integration). Use `AVALON_UNREAL_PLUGIN` environment variable to point to it. When new
+UE project is created, file are copied from this directory to project `Plugins`. If Pype detects that plugin
+isn't already built, it will copy its source codes to new project and force `dev_mode`. In that case, you need
+**Visual Studio** to compile the plugin along with the project code.
+
+### Dependencies
+
+Pype integration needs:
+
+* *Python Script Plugin enabled* (done automatically)
+* *Editor Scripting Utilities* (done automatically)
+* *PySide* installed in Unreal Python 2 (or PySide2/PyQt5 if you've build Unreal Editor with Python 3 support) (done automatically)
+* *Avalon Unreal Integration plugin* ([sources are on GitHub](https://github.com/pypeclub/avalon-unreal-integration))
+* *Visual Studio 2017* is needed to build *Avalon Unreal Integration Plugin* and/or if you need to work in `dev_mode`
+
+### Environment Variables
+
+- `AVALON_UNREAL_EDITOR` points to Avalon Unreal Integration Plugin sources/build
+- `UNREAL_ENGINE_LOCATION` to override Pype autodetection and point to custom Unreal intallation
+- `PYPE_UNREAL_ENGINE_PYTHON_PLUGIN` path to [20tab/UnrealEnginePython](https://github.com/20tab/UnrealEnginePython) optional plugin
diff --git a/website/docs/pype2/admin_install.md b/website/docs/pype2/admin_install.md
new file mode 100644
index 0000000000..dad0d19b50
--- /dev/null
+++ b/website/docs/pype2/admin_install.md
@@ -0,0 +1,430 @@
+---
+id: admin_install
+title: Pype Setup
+sidebar_label: Pype Setup
+---
+
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+## Introduction
+
+The general approach to pype deployment is installing central repositories on a shared network storage which can be accessed by all artists in the studio. Simple shortcuts to launchers are then distributed to all workstations for artists to use. This approach ensures easy maintenance and updates.
+
+When artist first runs pype all the required python packages get installed automatically to his local workstation and updated everytime there is a change in the central installation.
+
+:::note
+Automatic workstation installation and updates will not work in offline scenarios. In these case `pype install --force --offline` command must be triggered explicitly on the workstation
+:::
+
+## Requirements
+
+### Python 3.6+
+
+Pype requires Python 3.6 or later to be installed on each workstation running Pype.
+
+:::note
+If you want to use pype with Blender, you need to upgrade your python to 3.7 or higher.
+:::
+
+Windows version of Python can be easily grabbed at [python.org](https://www.python.org/downloads/). Install location doesn't matter but
+python executable should be in `PATH` environment variable.
+
+:::important Linux
+On linux it is somehow different and all depends on linux distribution in use.
+
+Some linux variants (for example *Ubuntu*) need **python-dev** variant of python package that includes python headers and developer tools. This is needed because some of **Pype** requirements need to compile themselves against python during their installation. Please, refer to your distribution community to find out how to install that package.
+:::
+
+
+
+
+
+
+```sh
+sudo yum group install "Development Tools"
+```
+
+Python 3.6 is not part of official distribution. Easiest way is to add it with the help of *SCL* - Software Collection project.
+This has advantage that it won't replace system version of python.
+
+```sh
+sudo yum update
+sudo yum install centos-release-scl
+```
+Now you can install python itself:
+```sh
+sudo yum install rh-python36
+```
+
+To be able to use installed version of python, you must enable it in shell:
+```sh
+scl enable rh-python36 bash
+```
+
+This will enable python 3.6 in currently running bash only!
+
+Check it with:
+```sh
+python --version
+```
+
+
+
+
+```sh
+sudo apt install build-essential
+```
+
+Some versions of Ubuntu already has python 3.6 installed, check it with:
+```sh
+python3 --version
+```
+If python shows lower version then required, use:
+```
+sudo apt-get update
+sudo apt-get install python3-dev
+```
+Please be aware that even if your system already has python 3.6, than if that
+didn't come from **python3-dev** package, Pype will most likely fail to install
+it's dependencies.
+
+
+
+
+
+:::note Override Python detection
+You can override autodetection of Python. This can be useful if you want to use central network python location or some other custom location. Just set `PYPE_PYTHON_EXE` environment variable to point where you need.
+:::
+
+--------------
+
+### MongoDB
+
+Pype needs site-wide installation of **MongoDB**. It should be installed on
+reliable server all workstations (and possibly render nodes) can connect. This
+server holds **Avalon** database that is at the core of everything, containing
+very important data, so it should be backed up often and if high-availability is
+needed, *replication* feature of **MongoDB** should be considered. This is beyond the
+scope of this documentation, please refer to [MongoDB Documentation](https://docs.mongodb.com/manual/replication/).
+
+Pype can run it's own instance of **mongodb**, mostly for testing and development purposes.
+For that it uses locally installed **MongoDB**.
+
+Download it from [mognoDB website](https://www.mongodb.com/download-center/community), install it and
+add to the `PATH`. On Windows, Pype tries to find it in standard installation destination or using `PATH`.
+
+To run **mongoDB** on server, use your server distribution tools to set it up (on Linux).
+
+### Git
+
+To be able to deploy Pype, **git** is need. It will clone all required repositories and
+control versions so future updates are easier. Git is however only requirent on admin workstation for global studio updates.
+
+See [how to install git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git).
+
+To access private repositories, you'll need other optional stuff like ssh key agents, etc.
+
+### PowerShell (on Windows only)
+
+PowerShell is now included in recent versions of Windows. **Pype** requires at least
+version 5.0, included in Windows 10 from beginning and available for Windows 7 SP1,
+Windows 8.1 and Windows Server 2012.
+
+If you want to know what version of PowerShell are you running, execute in PowerShell prompt:
+```powershell
+$PSVersionTable
+```
+ If you need to install PowerShell or update it, please refer to:
+ [Installing powershell on windows](https://docs.microsoft.com/en-us/powershell/scripting/install/installing-powershell?view=powershell-6)
+
+### Xcode CLT (on Mac only)
+
+Pype need **Xcode Command Line Tools** installed to provide its tools and be able to install its dependencies via pythons `pip` command. Those will be downloaded
+and installed automatically if needed.
+
+### Other
+:::warning Linux headless server
+If you need to run Pype's **ftrack event server** on headless linux server, be aware that due Qt dependencies, you'll need to install OpenGL support there even if server doesn't have any real use for it.
+:::
+
+## Studio Setup
+
+### Pype location
+
+Before you install Pype, first clone **pype-setup** repository to place you want Pype to be. In studio setting
+you probably want that destination to be on shared network drive so all users can access it.
+
+:::tip production and development branch
+We recommend to maintain two *versions* of Pype. The first is **production** branch - the one your artists use everyday for their work. The second one is **development** version you should use for testing new features and as development sandbox. Development branch can point to a different Avalon database and use its own **ftrack event server**. More on that in [Pype Configuration](admin_config)
+
+```text
+Shared Network Drive
+โโโโ pype
+ โโโโ prod
+ โโโโ dev
+```
+
+To prepare this structure, you can use:
+```sh
+cd /shared_drive/pype
+git clone --tag 2.4.0 https://bitbucket.com/pypeclub/pype-setup.git prod
+git clone --tag 2.4.0 https://bitbucket.com/pypeclub/pype-setup.git dev
+```
+:::
+
+Specify your version after `--branch` or `--tag` option.
+
+:::note
+It is possible to distinguish `dev` and `prod` by changing Pype icon color to orange. To do so, you have to create `config.ini` file with content:
+```text
+[DEFAULT]
+dev=true
+```
+
+And put the file to:
+```text
+Shared Network Drive
+โโโโ dev
+ โโโโ pype-setup
+ โโโโpypeapp
+ โโโโconfig.ini
+```
+:::
+
+:::note
+You should always use tags to checkout to get specific release, otherwise you end up with *develop* branch that can be unstable.
+:::
+
+:::warning
+By default, both branches will use the same virtual environment. Be careful when modifying your requirements in **dev** version because then it will influence **prod** version as well. To be safe, modify `PYPE_ENV` environment variable before using **dev** Pype commands.
+:::
+
+### Installation
+
+
+
+
+
+
+To install Pype you need to get first to it's root directory in powershell.
+
+If you have Pype on network, you should mount it as drive and assign it some consistent letter. You can also mount this network drive via junction point feature. As admin run from shell:
+
+```sh
+mklink /d "C:\pipeline" "\\server\pipeline"
+```
+Then your network drive will be available transparently at `C:\pipeline`.
+
+```sh
+cd Z:\pype\production\pype-setup
+```
+-----
+
+Now you can run installation itself:
+```sh
+.\pype.bat install
+```
+
+
+
+
+To install pype you first need get to it's root directory in bash shell.
+If you Pype location is on network drive, you should add it to `/etc/fstab` to
+mount it automatically during system startup.
+```sh
+cd /location/of/pype
+```
+
+**Pype** can be installed with the following command:
+
+```sh
+. pype install
+```
+
+On linux it is necessary to adjust user permissions to `/opt/pype/pype_env2` or whatever you set in `PYPE_ENV` and for that you need to be **root**.
+
+
+#### Mounting network drives
+If you Pype location is on network drive, you need to mount it first. Here are the steps to do it and make it so it re-mounts automatically after your computer restarts:
+
+1) in Finder press **Command+K**
+2) enter path `smb://server/pipeline` and hit **Connect**
+3) enter login and password
+4) network drive is now mounted under `/Volumes/pipeline`
+5) now go to **System Preferences**
+6) click **Users & Groups -> Login Items**
+7) click + and select mounted drive and click **Add**
+
+
+
+
+
+To install Pype on Mac, you need to have Administrator privileges. There are also further requirements if you need to deploy repositories.
+
+Run **Terminal**. Run following commands:
+```sh
+sudo -s
+cd /Volumes/pipeline/pype/production/pype-setup
+./pype install
+```
+
+`sudo -s` will take you to elevated privileges and you need to enter your password. `cd` will change directory to where you have pype located and `pype install` will run installation.
+
+If there are then warnings about some directory not owned by current user, you can fix it with following commands:
+
+```sh
+chown -R yourusername /usr/local/pype
+chown -R yourusername /Users/yourusername/Library/Caches/pip
+```
+Switch `yourusername` for your user name :)
+
+
+
+
+
+What it basically does is:
+1) Create python virtual environment on path: `C:\Users\Public\pype_env2` on Windows or `/opt/pype/pype_env2` on Linux or `/usr/local/pype/pype_env2` on Mac.
+This can be overridden by setting `PYPE_ENV` to different path. Logic behind this is that this directory on Windows can be shared
+between users on one machine - it only stores Pype dependencies, not any personal setting or credentials.
+
+2) Then it will install all python dependencies defined in `pypeapp\requirements.txt` into this virtual environment.
+
+Default installation will use your internet connection to download all necessary requirements.
+
+#### Offline installation
+
+You can also install Pype in offline scenarios:
+
+```sh
+pype install --offline
+```
+
+This will use dependencies downloaded into `pype-setup/vendor/packages` rather than pulling directly from the internet. Those packages must, however, first be
+downloaded on a machine connected to the internet using:
+
+```sh
+pype download
+```
+
+:::warning multiple platforms
+`pype download` will only download packages for currently running platform. So if you run it on Windows machine, only windows packages get downloaded (along with many universal ones). If you then run `pype install --offline` on Linux machine, it will probably fail as Linux specific packages will be missing. In multiplatform environments we recommend to run `pype download` on all used platform to combine all necessary packages into `vendor/packages`.
+:::
+
+:::caution multiplatform caveat
+There can be problems with libraries compatibility, when using multiplatform environments. For example if using **PyQt 5.12**, there seems to be no problem on Windows, but using it on **Centos Linux 7** will cause problems because Centos ships with some older dependent libraries that will not work with aforementioned PyQt version.
+:::
+
+#### Forcing Installation
+
+Sometime it is necessary to force re-install Pype environment. To do this:
+
+```sh
+pype install --force
+```
+
+or
+
+```sh
+pype install --force --offline
+```
+in offline scenarios.
+
+This is useful if Pype is misbehaving as first line of debugging. You can of course just manually delete `PYPE_ENV` directory and run `pype install` again.
+
+### Deployment
+
+After Pype is cloned and installed, it is necessary to *deploy* all repositories used by Pype. This must be done on a computer with
+Internet access.
+
+```sh
+pype deploy
+```
+
+This command will process all repositories specified in `deploy/deploy.json` and clone them into `repos/` directory.
+
+```sh
+pype deploy --force
+```
+
+will deploy repositories, overwriting existing ones if they exists and setting them to state specified in *deploy.json*.
+
+:::note customizing deployment
+You can customize your deployment to some extent. Everything specified in `deploy/deploy.json` is considered as default and can be overridden by creating your own *deploy.json* in sub directory.
+```text
+pype
+ โโโโ pypeapp
+ โโโโ deploy
+ โ โโโโ deploy.json
+ โ โโโโ deploy_schema-1.0.json
+ โ โโโโ my_studio_override
+ โ โ โโโโ deploy.json
+ โ โ โโโโ deploy_schema-1.0.json
+ โ ...
+...
+```
+In such configuration, `deploy/my_studio_override/deploy.json` will take precedence over the default one.
+:::
+
+To validate if Pype deployment is ok, run:
+
+```sh
+pype validate
+```
+
+#### Structure of `deploy.json`
+
+There are a few features in `deploy.json` that needs to be explained in further detail.
+
+Here is a list of keys used and their function:
+
+- `PYPE_CONFIG` - path to Pype configuration repository.
+- `init_env` - these are environment files in Pype configuration repository that
+ are loaded immediately after Pype starts. They define basic functionality.
+ ```js
+ "init_env": ["global", "avalon", "ftrack", "deadline"]
+ ```
+ For example, if you don't use *Deadline* but you need *Muster* support, change `deadline` to `muster`.
+ Pype will then load `{PYPE_CONFIG}/environments/muster.json` and set environment variables there.
+- `repositories`: this is list of repositories that will be deployed to `repos/`. There are few options
+ for each repository:
+
+ - `name`: name of repository will be used as directory name
+ - `url`: url of the git repository
+ - `branch` or `tag`: this specify either branch - it's *HEAD* will be checked out, or
+ `tag` - commit tagged with specified tag will be checked out.
+
+- `pip`: these are additional dependencies to be installed by *pip* to virtual environment.
+- `archive_files`: archive files to be unpacked to somewhere. For example ffmpeg installation or
+ anything else we need to extract during deployment to some place.
+
+ - `extract_path`: path to where this archive should be extracted
+ - `url` or `vendor`: this is url of source to be downloaded or name in `vendor/packages` to be Used
+ - `md5_url` optional url for md5 file to validate checksum of downloaded file
+ - `skip_first_subfolder` will move everything inside first directory in archive to `extract_path`.
+
+#### Offline Deployment
+
+In offline scenarios it is up to you to replicate what `pype deploy` does. The easiest way
+to go is to run `pype deploy` on machine, get everything in `repos/` and move it to your studio install location:
+
+```sh
+cd pype-setup
+tar cvzf pype_repos.tgz repos/
+```
+
+do the same for things deployed to *vendor*.
diff --git a/website/docs/pype2/admin_introduction.md b/website/docs/pype2/admin_introduction.md
new file mode 100644
index 0000000000..7a3b8f51d8
--- /dev/null
+++ b/website/docs/pype2/admin_introduction.md
@@ -0,0 +1,71 @@
+---
+id: admin_getting_started
+title: Getting Started
+sidebar_label: Getting Started
+---
+
+## Introduction
+
+**Pype** is part of a larger ecosystem of tools build around [avalon](https://github.com/getavalon/core) and [pyblish](https://github.com/pyblish/pyblish-base).
+To be able to use it, you need those tools and set your environment. This
+requires additional software installed and set up correctly on your system.
+
+Fortunately this daunting task is handled for you by **Pype Setup** package itself. **Pype** can
+install most of its requirements automatically but a few more things are needed in
+various usage scenarios.
+
+## Software requirements
+
+- **Python 3.7+** (Locally on all workstations)
+- **PowerShell 5.0+** (Windows only)
+- **Bash** (Linux only)
+- **MongoDB** (Centrally accessible)
+
+There are other requirements for different advanced scenarios. For more
+complete guide please refer to [Pype Setup page](admin_install).
+
+
+## Hardware requirements
+
+Pype should be installed centrally on a fast network storage with at least read access right for all workstations and users in the Studio. Full Deplyoyment with all dependencies and both Development and Production branches installed takes about 1GB of data, however to ensure smooth updates and general working comfort, we recommend allocating at least at least 4GB of storage dedicated to PYPE deployment.
+
+For well functioning ftrack event server, we recommend a linux virtual server with Ubuntu or Centos OS. CPU and RAM allocation need differ based on the studio size, but a 2GB of ram, with a dual core CPU and around 4GB of storage should suffice
+
+## Central repositories
+
+### Pype-setup
+
+Pype-Setup is the glue that binds Avalon, Pype and the Studio together. It is essentially a wrapper application that manages requirements, installation, all the environments and runs all of our standalone tools.
+
+It has two main interfaces. `Pype` CLI command for all admin level tasks and a `Pype Tray` application for artists. Documentation for the `Pype` command can be found [here](admin_pype_commands)
+
+This is also the only repository that needs to be downloaded by hand before full pype deployment can take place.
+
+### Pype
+
+Pype is our "Avalon Config" in Avalon terms that takes avalon-core and expands on it's default features and capabilities. This is where vast majority of the code that works with your data lives.
+
+Avalon gives us the ability to work with a certain host, say Maya, in a standardised manner, but Pype defines **how** we work with all the data. You can think of it as. Avalon by default expects each studio to have their own avalon config, which is reasonable considering all studios have slightly different requirements and workflows. We abstracted a lot of this customisability out of the avalon config by allowing pype behaviour to be altered by a set of .json based configuration files and presets.
+
+Thanks to that, we are able to maintain one codebase for vast majority of the features across all our clients deployments while keeping the option to tailor the pipeline to each individual studio.
+
+### Avalon-core
+
+Avalon-core is the heart and soul of Pype. It provides the base functionality including GUIs (albeit expanded modified by us), database connection and maintenance, standards for data structures and working with entities and a lot of universal tools.
+
+Avalon is being very actively developed and maintained by a community of studios and TDs from around the world, with Pype Club team being an active contributor as well.
+
+## Studio Specific Repositories
+
+### Pype-Config
+
+Pype_config repository need to be prepared and maintained for each studio using pype and holds all of their specific requiremens for pype. Those range from naming conventions and folder structures (in pype referred to as `project anatomy`), through colour management, data preferences, all the way to what individual validators they want to use and what they are validating against.
+
+Thanks to a very flexible and extensible system of presets, we're almost always able to accommodate client requests for modified behaviour by introducing new presets, rather than permanently altering the main codebase for everyone.
+
+
+### Studio-Project-Configs
+
+On top of studio wide pype config, we support project level overrides for any and all avriables and presets available in the main studio config.
+
+### Studio-Project-Scrips
diff --git a/website/docs/pype2/admin_presets_ftrack.md b/website/docs/pype2/admin_presets_ftrack.md
new file mode 100644
index 0000000000..793812dc2c
--- /dev/null
+++ b/website/docs/pype2/admin_presets_ftrack.md
@@ -0,0 +1,119 @@
+---
+id: admin_presets_ftrack
+title: Presets > Ftrack
+sidebar_label: Ftrack
+---
+
+## PROJECT_DEFAULTS.json
+
+path: `pype-config/presets/ftrack/project_defauls.json`
+
+A list of all project defaults to be set when you run "Ftrack Prepare Project"
+
+```json
+{
+ "fps": 25,
+ "frameStart": 1001,
+ "frameEnd": 1100,
+ "clipIn": 1001,
+ "clipOut": 1100,
+ "handleStart": 10,
+ "handleEnd": 10,
+
+ "resolutionHeight": 1080,
+ "resolutionWidth": 1920,
+ "pixelAspect": 1.0,
+ "applications": [
+ "maya_2019", "nuke_11.3", "nukex_11.3", "nukestudio_11.3", "deadline"
+ ],
+ "tools_env": [],
+ "avalon_auto_sync": true
+}
+```
+
+## FTRACK_CONFIG.json
+
+path: `pype-config/presets/ftrack/ftrack_config.json`
+
+### `sync_to_avalon` [dict]
+
+list of statuses that allow moving, deleting and changing of names on ftrack entities. Once any child of and entity is set to a status different than those listed in this list, it is considered to have been worked on and will not allow any major changes to hierarchy any more.
+
+`statuses_name_change [list]`:
+
+```json
+{
+ "sync_to_avalon": {
+ "statuses_name_change": ["not ready", "ready"]
+ }
+}
+```
+
+### `status_update` [dict]
+
+mapping of status for automatic updates.
+Key specifies the resulting status and value is a list of statuses from which we allow changing to the target status.
+
+`_ignore_` [list]: source statuses to ignore
+
+`target_status` [list]: target
+
+```json
+{
+ "status_update": {
+ "_ignore_": ["in progress", "ommited", "on hold"],
+ "Ready": ["not ready"],
+ "In Progress" : ["_any_"]
+ }
+}
+```
+
+### `status_version_to_task` [dict]
+
+mapping of status that propagate automatically from published version to it's task. By default we search for identical status, however this preset let's you remap between different statuses on versions and tasks.
+
+
+`status_version_to_task` [dict]:
+
+```json
+{
+ "status_version_to_task": {
+ "__description__": "Status `from` (key) must be lowered!",
+ "in progress": "in progress",
+ "approved": "approved"
+ }
+}
+```
+
+## SERVER.json
+
+path: `pype-config/presets/ftrack/server.json`
+
+### `first_version_status` [dict]
+
+`task_status_map` [list]: List of dictionaires specifying individual mappings
+
+`status` [string]: status to set if `key` and `name` match.
+
+`name` [string]: name of task or task's type.
+
+`key` [enumerator]: _optional_ specify where to look for name. There are two possible value:
+ 1. `task`: task's name (default)
+ 2. `task_type`: task type's name
+
+It doesn't matter if values are lowered or capitalized.
+
+```json
+{
+ "FirstVersionStatus": {
+ "task_status_map": [{
+ "key": "task",
+ "name": "compositing",
+ "status": "Blocking"
+ }, {
+ "MORE ITEMS...": "MORE VALUES..."
+ }]
+ },
+ "...": "{...}"
+}
+```
diff --git a/website/docs/pype2/admin_presets_maya.md b/website/docs/pype2/admin_presets_maya.md
new file mode 100644
index 0000000000..52717873d2
--- /dev/null
+++ b/website/docs/pype2/admin_presets_maya.md
@@ -0,0 +1,143 @@
+---
+id: admin_presets_maya
+title: Presets > Maya
+sidebar_label: Maya
+---
+
+## CAPTURE.json
+
+path: `pype-config/presets/maya/capture.json`
+
+All the viewport settings for maya playblasts.
+
+### `Codec` [dict] ###
+
+```python
+ "Codec": {
+ "compression": "jpg",
+ "format": "image",
+ "quality": 95
+ }
+```
+
+
+### `Display Options` [dict] ###
+
+```python
+"Display Options": {
+ "background": [
+ 0.7137254901960784,
+ 0.7137254901960784,
+ 0.7137254901960784
+ ],
+ "backgroundBottom": [
+ 0.7137254901960784,
+ 0.7137254901960784,
+ 0.7137254901960784
+ ],
+ "backgroundTop": [
+ 0.7137254901960784,
+ 0.7137254901960784,
+ 0.7137254901960784
+ ],
+ "override_display": true
+ }
+```
+
+### `Generic` [dict] ###
+```python
+"Generic": {
+ "isolate_view": true,
+ "off_screen": true
+},
+```
+
+### `IO` [dict] ###
+
+```python
+"IO": {
+ "name": "",
+ "open_finished": false,
+ "raw_frame_numbers": false,
+ "recent_playblasts": [],
+ "save_file": false
+},
+```
+
+### `PanZoom` [dict] ###
+
+```python
+"PanZoom": {
+ "pan_zoom": true
+},
+```
+
+### `Viewport Options` [dict] ###
+
+```python
+"Viewport Options": {
+ "cameras": false,
+ "clipGhosts": false,
+ "controlVertices": false,
+ "deformers": false,
+ "dimensions": false,
+ "displayLights": 0,
+ "dynamicConstraints": false,
+ "dynamics": false,
+ "fluids": false,
+ "follicles": false,
+ "gpuCacheDisplayFilter": false,
+ "greasePencils": false,
+ "grid": false,
+ "hairSystems": false,
+ "handles": false,
+ "high_quality": true,
+ "hud": false,
+ "hulls": false,
+ "ikHandles": false,
+ "imagePlane": false,
+ "joints": false,
+ "lights": false,
+ "locators": false,
+ "manipulators": false,
+ "motionTrails": false,
+ "nCloths": false,
+ "nParticles": false,
+ "nRigids": false,
+ "nurbsCurves": false,
+ "nurbsSurfaces": false,
+ "override_viewport_options": true,
+ "particleInstancers": false,
+ "pivots": false,
+ "planes": false,
+ "pluginShapes": false,
+ "polymeshes": true,
+ "shadows": false,
+ "strokes": false,
+ "subdivSurfaces": false,
+ "textures": false,
+ "twoSidedLighting": true
+}
+```
+
+## Maya instance scene types
+
+It is possible to set when to use `.ma` or `.mb` for:
+
+- camera
+- setdress
+- layout
+- model
+- rig
+- yetiRig
+
+Just put `ext_mapping.json` into `presets/maya`. Inside is simple mapping:
+
+```JSON
+{
+ "rig": "mb",
+ "camera": "mb"
+}
+```
+
+*Note that default type is `ma`*
diff --git a/website/docs/pype2/admin_presets_nukestudio.md b/website/docs/pype2/admin_presets_nukestudio.md
new file mode 100644
index 0000000000..256c6e5ef4
--- /dev/null
+++ b/website/docs/pype2/admin_presets_nukestudio.md
@@ -0,0 +1,58 @@
+---
+id: admin_presets_nukestudio
+title: Presets > NukeStudio
+sidebar_label: Nukestudio
+---
+
+## TAGS.json
+
+path: `pype-config/presets/nukestudio/tags.json`
+
+Each tag defines defaults in `.json` file. Inside of the file you can change the default values as shown in the example (`>>>"1001"<<<`). Please be careful not to alter the `family` value.
+
+```python
+"Frame start": {
+ "editable": "1",
+ "note": "Starting frame for comps",
+ "icon": {
+ "path": "icons:TagBackground.png"
+ },
+ "metadata": {
+ "family": "frameStart",
+ "number": >>>"1001"<<<
+ }
+}
+```
+
+## PUBLISH.json
+
+path: `pype-config/presets/plugins/nukestudio/publish.json`
+
+### `CollectInstanceVersion` [dict] ###
+
+
+This plugin is set to `true` by default so it will synchronize version of published instances with the version of the workfile. Set `enabled` to `false` if you wish to let publishing process decide on the next available version.
+
+```python
+{
+ "CollectInstanceVersion": {
+ "enabled": false
+ }
+}
+```
+
+### `ExtractReviewCutUpVideo` [dict] ###
+
+path: `pype-config/presets/plugins/nukestudio/publish.json`
+
+Plugin is responsible for cuting shorter or longer source material for review. Here you can add any aditional tags you wish to be added into extract review process.
+
+The plugin generates reedited intermediate video with handless even if it has to add empty black frames. Some productions prefer to use review material without handless so in the example, `no-handles` are added as tags. This allow furter review extractor to publish review without handles, without affecting other outputs.
+
+```python
+{
+ "ExtractReviewCutUpVideo": {
+ "tags_addition": ["no-handles"]
+ }
+}
+```
diff --git a/website/docs/pype2/admin_presets_plugins.md b/website/docs/pype2/admin_presets_plugins.md
new file mode 100644
index 0000000000..797995d2b7
--- /dev/null
+++ b/website/docs/pype2/admin_presets_plugins.md
@@ -0,0 +1,592 @@
+---
+id: admin_presets_plugins
+title: Presets > Plugins
+sidebar_label: Plugins
+---
+
+## Global
+
+### publish.json
+
+Each plugin in the json should be added as name of the class. There are some default attributes recommended to use in case you wish a plugin to be switched off for some projects in `project overwrites` like `enabled: false`. So for example if you wish to switch off plugin class name `PluginName(pyblish.api.contextPlugin)` if file `name_of_plugin_file.py`, it could be done only by adding following text into root level of publish.json file:
+
+```json
+{
+ "PluginName": {
+ "enabled": false
+ }
+}
+```
+
+
+### `ExtractReview`
+
+Plugin responsible for automatic FFmpeg conversion to variety of formats.
+
+Supported extensions for both input and output: `["exr", "jpg", "jpeg", "png", "dpx", "mov", "mp4"]`
+
+**ExtractReview** creates new representations based on presets and representations in instance. Preset should contain only one attribute **"profiles"** which is list of profile items. Each profile item has **outputs**, where definitions of possible outputs are, and may have specified filters for **hosts**, **tasks** and **families**.
+
+#### Profile filters
+As mentioned above you can define multiple profiles for different contexts. Profile with filters matching current context the most is used. You can define profile without filters and use it as **default**. Only **one or none** profile is processed per instance.
+
+All context filters are lists which may contain strings or Regular expressions (RegEx).
+- **hosts** - Host from which publishing was triggered. `["maya", "nuke"]`
+- **tasks** - Currently processed task. `["[Cc]ompositing", "[Aa]nimation"]`
+- **families** - Main family of processed instance. `["plate", "model"]`
+
+:::important Filtering
+Filters are optional and may not be set. In case when multiple profiles match current context, profile with filters has higher priority that profile without filters.
+:::
+
+#### Profile outputs
+Profile may have multiple outputs from one input and that's why **outputs** is dictionary where key represents **filename suffix** to avoid overriding files with same name and value represents definition itself. Definition may contain multiple optional keys.
+
+| Key | Description | Type | Example |
+| --- | --- | --- | --- |
+| **width** | Width of output. | int | 1920 |
+| **height** | Height of output. | int | 1080 |
+| **letter_box** | Set letterbox ratio. | float | 2.35 |
+| **ext** | Extension of output file(s). | str | "mov" |
+| **tags** | Tags added to new representation. | list | [here](#new-representation-tags-tags) |
+| **ffmpeg_args** | Additional FFmpeg arguments. | dict | [here](#ffmpeg-arguments-ffmpeg_args) |
+| **filter** | Filters definition. | dict | [here](#output-filters-filter) |
+
+:::note
+As metioned above **all keys are optional**. If they are not filled at all, then **"ext"** is filled with input's file extension and resolution keys **"width"** and **"heigh"** are filled from instance data, or from input resolution if instance doesn't have set them.
+:::
+
+:::important resolution
+It is not possible to enter only **"width"** or only **"height"**. In that case set values will be skipped.
+:::
+
+#### New representation tags (`tags`)
+You can add tags to representation created during extracting process. This might help to define what should happen with representation in upcomming plugins.
+
+| Tag | Description |
+| --- | --- |
+| **burnin** | Add burnins with predefined values into the output. |
+| **preview** | Will be used as preview in Ftrack. |
+| **reformat** | Rescale to format based on width and height keys. |
+| **bake-lut** | Bake LUT into the output (if is available path in data). |
+| **slate-frame** | Add slate frame at the beggining of video. |
+| **no-handles** | Remove the shot handles from the output. |
+| **sequence** | Generate a sequence of images instead of single frame. Is applied only if **"ext"** of output is image extension e.g.: png or jpg/jpeg. |
+
+:::important Example
+Tags key must contain list of strings.
+```json
+{
+ "tags": ["burnin", "preview"]
+ ...
+}
+```
+:::
+
+#### FFmpeg arguments (`ffmpeg_args`)
+It is possible to set additional FFmpeg arguments. Arguments are split into 4 categories **"input"**, **"video_filters"**, **"audio_filters"** and **"output"**.
+
+| Key | Description | Type | Example |
+| --- | --- | --- | --- |
+| **input** | FFmpeg arguments added before video/image input. | list | ["-gamma 2.2"] |
+| **video_filters** | All values which should be in `-vf` or `-filter:v` argument. | list | ["scale=iw/2:-1"] |
+| **audio_filters** | All values which should be in `-af` or `-filter:a` argument. | list | ["loudnorm"] |
+| **output** | FFmpeg arguments added before output filepath. | list | ["-pix_fmt yuv420p", "-crf 18"] |
+
+:::important Example
+For more information about FFmpeg arguments please visit [official documentation](https://ffmpeg.org/documentation.html).
+```json
+{
+ "ffmpeg_args": {
+ "input": ["-gamma 2.2"],
+ "video_filters": ["yadif=0:0:0", "scale=iw/2:-1"],
+ "output": ["-pix_fmt yuv420p", "-crf 18"]
+ }
+ ...
+}
+```
+:::
+
+#### Output filters (`filter`)
+Even if profile has filtering options it is possible that output definitions require to be filtered by all instance **families** or representation's **tags**.
+
+Families filters in output's `filter` will check all instance's families and may check for single family or combination of families.
+
+| Key | Description | Type | Example |
+| --- | --- | --- | --- |
+| **families** | At least one family item must match instance's families to process definition. | list | ["review"] |
+| **tags** | At least one tag from list must be in representation's tags to process definition. | list | ["preview"] |
+
+:::important Example
+These filters helps with explicit processing but do **NOT** use them if it's not necessary.
+```json
+{
+ "filter": {
+ "families": [
+ "review",
+ ["ftrack", "render2d"]
+ ],
+ "tags": ["preview"],
+ }
+ ...
+}
+```
+In this example representation's tags must contain **"preview"** tag and instance's families must contain **"review"** family, or both **"ftrack"** and **"render2d"** families.
+:::
+
+#### Simple example
+This example just create **mov** output with filename suffix **"simplemov"** for all representations with supported extensions.
+```json
+{
+ "ExtractReview": {
+ "profiles": [{
+ "outputs": {
+ /* Filename suffix "simplemov"*/
+ "simplemov": {
+ /* Output extension will be "mov"*/
+ "ext": "mov"
+ }
+ }
+ }]
+ }
+}
+```
+
+#### More complex example
+:::note
+This is just usage example, without relevant data. Do **NOT** use these presets as default in production.
+:::
+
+```json
+{
+ "ExtractReview": {
+ "profiles": [
+ {
+ /* 1. profile - Without filters will be used as default. */
+ "outputs": {
+ /* Extract single mov Prores 422 with burnins, slate and baked lut. */
+ "prores": {
+ "ext": "mov",
+ "codec": [
+ "-codec:v prores_ks",
+ "-profile:v 3"
+ ],
+ "tags": ["burnin", "reformat", "bake-lut", "slate-frame"]
+ }
+ }
+ }, {
+ /* 2. profile - Only for Nuke, "compositing" task and instance family "render2d". */
+ "hosts": ["nuke"],
+ "tasks": ["compositing"],
+ "families": ["render2d"],
+ "outputs": {
+ /* Extract preview mov with burnins and without handles.*/
+ "h264": {
+ "ext": "mov",
+ "ffmpeg_args": {
+ "output": [
+ "-pix_fmt yuv420p",
+ ]
+ },
+ "tags": ["burnin", "preview", "no-handles"]
+ },
+ /* Also extract mxf with slate */
+ "edit": {
+ "ext": "mxf",
+ "ffmpeg_args": {
+ "output": [
+ "-codec:v dnxhd",
+ "-profile:v dnxhr_444",
+ "-pix_fmt yuv444p10le",
+ "-b:v 185M",
+ "-ar 48000",
+ "-qmax 51"
+ ]
+ },
+ "tags": ["slate-frame"]
+ }
+ }
+ }, {
+ /* 3. profile - Default profile for Nuke and Maya. */
+ "hosts": ["maya", "nuke"],
+ "outputs": {
+ /* Extract preview mov with burnins and with forced resolution. */
+ "h264": {
+ "width": 1920,
+ "height": 1080,
+ "ext": "mov",
+ "ffmpeg_args": {
+ "input": [
+ "-gamma 2.2"
+ ],
+ "output": [
+ "-pix_fmt yuv420p",
+ "-crf 18",
+ "-intra"
+ ]
+ },
+ "tags": ["burnin", "preview"]
+ }
+ }
+ }
+ ]
+ }
+}
+```
+
+
+### `ExtractBurnin`
+
+Plugin is responsible for adding burnins into review representations.
+
+Burnins are text values painted on top of input and may be surrounded with box in 6 available positions `Top Left`, `Top Center`, `Top Right`, `Bottom Left`, `Bottom Center`, `Bottom Right`.
+
+
+
+ExtractBurnin creates new representations based on plugin presets and representations in instance. Presets may contain 3 keys **options**, **profiles** and **fields**.
+
+#### Burnin settings (`options`)
+Options is dictionary where you can set the global appearance of burnins. It is possible to not fill options at all, in that case default values are used.
+
+| Key | Description | Type | Example | Default |
+| --- | --- | --- | --- | --- |
+| **font_size** | Size of text. | float | 24 | 42 |
+| **font_color** | Color of text. | str | [FFmpeg color documentation](https://ffmpeg.org/ffmpeg-utils.html#color-syntax) | "white" |
+| **opacity** | Opacity of text. | float | 0.7 | 1 |
+| **x_offset** | Horizontal margin around text and box. | int | 0 | 5 |
+| **y_offset** | Vertical margin around text and box. | int | 0 | 5 |
+| **bg_padding** | Padding for box around text. | int | 0 | 5 |
+| **bg_color** | Color of box around text. | str | [FFmpeg color documentation](https://ffmpeg.org/ffmpeg-utils.html#color-syntax) | "black" |
+| **bg_opacity** | Opacity of box around text. | float | 1 | 0.5 |
+
+#### Burnin profiles (`profiles`)
+Plugin process is skipped if `profiles` are not set at all. Profiles contain list of profile items. Each profile item has **burnins**, where definitions of possible burnins are, and may have specified filters for **hosts**, **tasks** and **families**. Filters work the same way as described in [ExtractReview](#profile-filters).
+
+#### Profile burnins
+Profile may have set multiple burnin outputs from one input and that's why **burnins** is dictionary where key represents **filename suffix** to avoid overriding files with same name and value represents burnin definition. Burnin definition may contain multiple optional keys.
+
+| Key | Description | Type | Example |
+| --- | --- | --- | --- |
+| **top_left** | Top left corner content. | str | "{dd}.{mm}.{yyyy}" |
+| **top_centered** | Top center content. | str | "v{version:0>3}" |
+| **top_right** | Top right corner content. | str | "Static text" |
+| **bottom_left** | Bottom left corner content. | str | "{asset}" |
+| **bottom_centered** | Bottom center content. | str | "{username}" |
+| **bottom_right** | Bottom right corner content. | str | "{frame_start}-{current_frame}-{frame_end}" |
+| **options** | Options overrides for this burnin definition. | dict | [Options](#burnin-settings-options) |
+| **filter** | Filters definition. | dict | [ExtractReview output filter](#output-filters-filter) |
+
+:::important Position keys
+Any position key `top_left` -> `bottom_right` is skipped if is not set, contain empty string or is set to `null`.
+And position keys are not case sensitive so instead of key `top_left` can be used `TOP_LEFT` or `Top_Left`
+:::
+
+:::note Filename suffix
+Filename suffix is appended to filename suffix of source representation.
+If source representation has suffix **"h264"** and burnin suffix is **"client"** then final suffix is **"h264_client"**.
+:::
+
+**Available keys in burnin content**
+
+- It is possible to use same keys as in [Anatomy](admin_config#available-keys).
+
+- It is allowed to use [Anatomy templates](admin_config#anatomy) themselves in burnins if they can be filled with available data.
+
+- Additional keys in burnins:
+ | Burnin key | Description |
+ | --- | --- |
+ | frame_start | First frame number. |
+ | frame_end | Last frame number. |
+ | current_frame | Frame number for each frame. |
+ | duration | Count number of frames. |
+ | resolution_width | Resolution width. |
+ | resolution_height | Resolution height. |
+ | fps | Fps of an output. |
+ | timecode | Timecode by frame start and fps. |
+
+:::warning
+`timecode` is specific key that can be **only at the end of content**. (`"BOTTOM_RIGHT": "TC: {timecode}"`)
+:::
+
+```json
+{
+ "profiles": [{
+ "burnins": {
+ "example": {
+ "TOP_LEFT": "{dd}.{mm}.{yyyy}",
+ /* Use anatomy template values. */
+ "TOP_CENTERED": "{anatomy[publish][path]}",
+ /* Python's formatting:
+ ":0>3" adds padding to version number to have 3 digits. */
+ "TOP_RIGHT": "v{version:0>3}",
+ "BOTTOM_LEFT": "{frame_start}-{current_frame}-{frame_end}",
+ "BOTTOM_CENTERED": "{asset}",
+ "BOTTOM_RIGHT": "{username}"
+ }
+ }
+ }]
+ ...
+}
+```
+
+
+#### Default content values (`fields`)
+If you want to set position content values for all or most of burnin definitions, you can set them in **"fields"**. They will be added to every burnin definition in all profiles. Value can be overriden if same position key is filled in burnin definiton.
+
+```json
+{
+ "fields": {
+ "TOP_LEFT": "{yy}-{mm}-{dd}",
+ "TOP_CENTERED": "{username}",
+ "TOP_RIGHT": "v{version:0>3}"
+ },
+ "profiles": [{
+ "burnins": {
+ /* example1 has empty definition but top left, center and right values
+ will be filled. */
+ "example1": {},
+
+ /* example2 has 2 overrides. */
+ "example2": {
+ /* Top left value is overriden with asset name. */
+ "TOP_LEFT": "{asset}",
+ /* Top center will be skipped. */
+ "TOP_CENTERED": null
+ }
+ }
+ }]
+}
+```
+
+#### Full presets example
+:::note
+This is just usage example, without relevant data. Do **NOT** use these presets as default in production.
+:::
+
+```json
+{
+ "ExtractBurnin": {
+ "options": {
+ "opacity": 1,
+ "x_offset": 5,
+ "y_offset": 5,
+ "bg_padding": 5,
+ "bg_opacity": 0.5,
+ "font_size": 42
+ },
+ "fields": {
+ "TOP_LEFT": "{yy}-{mm}-{dd}",
+ "TOP_RIGHT": "v{version:0>3}"
+ },
+ "profiles": [{
+ "burnins": {
+ "burnin": {
+ "options": {
+ "opacity": 1
+ },
+ "TOP_LEFT": "{username}"
+ }
+ }
+ }, {
+ "families": ["animation", "pointcache", "model"],
+ "tasks": ["animation"],
+ "burnins": {}
+ }, {
+ "families": ["render"],
+ "tasks": ["compositing"],
+ "burnins": {
+ "burnin": {
+ "TOP_LEFT": "{yy}-{mm}-{dd}",
+ "TOP_RIGHT": "v{version:0>3}",
+ "BOTTOM_RIGHT": "{frame_start}-{current_frame}-{frame_end}",
+ "BOTTOM_LEFT": "{username}"
+ },
+ "burnin_ftrack": {
+ "filter": {
+ "families": ["ftrack"]
+ },
+ "BOTTOM_RIGHT": "{frame_start}-{current_frame}-{frame_end}",
+ "BOTTOM_LEFT": "{username}"
+ },
+ "burnin_v2": {
+ "options": {
+ "opacity": 0.5
+ },
+ "TOP_LEFT": "{yy}-{mm}-{dd}",
+ "TOP_RIGHT": "v{version:0>3}"
+ }
+ }
+ }, {
+ "families": ["rendersetup"],
+ "burnins": {
+ "burnin": {
+ "TOP_LEFT": "{yy}-{mm}-{dd}",
+ "BOTTOM_LEFT": "{username}"
+ }
+ }
+ }, {
+ "tasks": ["animation"],
+ "burnins": {
+ "burnin": {
+ "TOP_RIGHT": "v{version:0>3}",
+ "BOTTOM_RIGHT": "{frame_start}-{current_frame}-{frame_end}"
+ }
+ }
+ }]
+ }
+}
+```
+
+### `ProcessSubmittedJobOnFarm`
+
+```json
+{
+ "ProcessSubmittedJobOnFarm": {
+ "aov_filter": {
+ "host": ["aov_name"],
+ "maya": ["beauty"]
+ },
+ "deadline_pool": ""
+ }
+}
+```
+
+## Maya
+
+### load.json
+
+### `colors`
+
+maya outliner colours for various families
+
+```python
+"colors": {
+ "model": [0.821, 0.518, 0.117],
+ "rig": [0.144, 0.443, 0.463],
+ "pointcache": [0.368, 0.821, 0.117],
+ "animation": [0.368, 0.821, 0.117],
+ "ass": [1.0, 0.332, 0.312],
+ "camera": [0.447, 0.312, 1.0],
+ "fbx": [1.0, 0.931, 0.312],
+ "mayaAscii": [0.312, 1.0, 0.747],
+ "setdress": [0.312, 1.0, 0.747],
+ "layout": [0.312, 1.0, 0.747],
+ "vdbcache": [0.312, 1.0, 0.428],
+ "vrayproxy": [0.258, 0.95, 0.541],
+ "yeticache": [0.2, 0.8, 0.3],
+ "yetiRig": [0, 0.8, 0.5]
+}
+```
+
+### publish.json
+
+### `ValidateModelName`
+
+```python
+"ValidateModelName": {
+ "enabled": false,
+ "material_file": "/path/to/shader_name_definition.txt",
+ "regex": "(.*)_(\\d)*_(?P.*)_(GEO)"
+},
+```
+
+### `ValidateShaderName`
+
+```python
+"ValidateShaderName": {
+ "enabled": false,
+ "regex": "(?P.*)_(.*)_SHD"
+}
+```
+
+## Nuke
+
+### create.json
+
+### `CreateWriteRender`
+
+```python
+"CreateWriteRender": {
+ "fpath_template": "{work}/renders/nuke/{subset}/{subset}.{frame}.{ext}"
+}
+```
+
+### publish.json
+
+### `ExtractThumbnail`
+
+Plugin responsible for generating thumbnails with colorspace controlled by Nuke. Reformat node will secure proper framing within the default workfile screen space.
+
+```json
+{
+"nodes": {
+ "Reformat": [
+ ["type", "to format"],
+ ["format", "HD_1080"],
+ ["filter", "Lanczos6"],
+ ["black_outside", true],
+ ["pbb", false]
+ ]
+}
+}
+```
+
+### `ExtractReviewDataMov`
+
+`viewer_lut_raw` **true** will publish the baked mov file without any colorspace conversion. It will be baked with the workfile workspace. This can happen in case the Viewer input process uses baked screen space luts.
+
+#### baking with controlled colorspace
+
+Some productions might be using custom OCIO config files either for whole project, sequence or even individual shots. In that case we can use **display roles** to let compositors use their preferred viewer space, but also make sure baking of outputs is happening in a defined space for clients reviews.
+
+
+`bake_colorspace_fallback` this will be used if for some reason no space defined in `shot_grade_rec709` is found on shot's _config.ocio_
+
+> be aware this will only work if `viewer_lut_raw` is on _false_
+
+```json
+{
+"viewer_lut_raw": false,
+"bake_colorspace_fallback": "show_lut_rec709",
+"bake_colorspace_main": "shot_grade_rec709"
+}
+```
+
+## NukeStudio
+
+### Publish.json
+
+Destination of the following example codes:
+
+[`presets/plugins/nukestudio/publish.json`](https://github.com/pypeclub/pype-config/blob/develop/presets/plugins/nukestudio/publish.json)
+
+### `CollectInstanceVersion`
+
+Activate this plugin if you want your published plates to always have the same version as the hiero project they were published from. If this plugin is off, plate versioning automatically finds the next available version in the database.
+
+```json
+{
+ "CollectInstanceVersion": {
+ "enabled": true
+ }
+}
+```
+
+### `ExtractReviewCutUpVideo`
+
+Example of tag which could be added into the plugin preset.
+In this case because we might have 4K plates but we would like to publish all review files reformated to 2K.
+
+[details of available tags](#preset-attributes)
+
+```json
+{
+ "ExtractReviewCutUpVideo": {
+ "tags_addition": ["reformat"]
+ }
+}
+```
+
+## Standalone Publisher
+
+Documentation yet to come.
diff --git a/website/docs/pype2/admin_presets_tools.md b/website/docs/pype2/admin_presets_tools.md
new file mode 100644
index 0000000000..bcd992a1eb
--- /dev/null
+++ b/website/docs/pype2/admin_presets_tools.md
@@ -0,0 +1,191 @@
+---
+id: admin_presets_tools
+title: Presets > Tools
+sidebar_label: Tools
+---
+
+## Colorspace
+
+We provide two examples of possible settings for nuke, but these can vary wildly between clients and projects.
+
+### `Default` [dict]
+
+path: `pype-config/presets/colorspace/default.json`
+
+```python
+"nuke": {
+ "root": {
+ "colorManagement": "Nuke",
+ "OCIO_config": "nuke-default",
+ "defaultViewerLUT": "Nuke Root LUTs",
+ "monitorLut": "sRGB",
+ "int8Lut": "sRGB",
+ "int16Lut": "sRGB",
+ "logLut": "Cineon",
+ "floatLut": "linear"
+ },
+ "viewer": {
+ "viewerProcess": "sRGB"
+ },
+ "write": {
+ "render": {
+ "colorspace": "linear"
+ },
+ "prerender": {
+ "colorspace": "linear"
+ },
+ "still": {
+ "colorspace": "sRGB"
+ }
+ }
+},
+```
+
+### `aces103-cg` [dict]
+
+
+path: `pype-config/presets/colorspace/aces103-cg.json`
+
+```python
+"nuke": {
+ "root": {
+ "colorManagement": "OCIO",
+ "OCIO_config": "aces_1.0.3",
+ "workingSpaceLUT": "ACES - ACEScg",
+ "defaultViewerLUT": "OCIO LUTs",
+ "monitorLut": "ACES/sRGB D60 sim.",
+ "int8Lut": "Utility - sRGB - Texture",
+ "int16Lut": "Utility - sRGB - Texture",
+ "logLut": "Input - ARRI - V3 LogC (EI800) - Wide Gamut",
+ "floatLut": "ACES - ACES2065-1"
+ },
+ "viewer": {
+ "viewerProcess": "sRGB D60 sim. (ACES)"
+ },
+ "write": {
+ "render": {
+ "colorspace": "ACES - ACEScg"
+ },
+ "prerender": {
+ "colorspace": "ACES - ACEScg"
+ },
+ "still": {
+ "colorspace": "Utility - Curve - sRGB"
+ }
+ }
+},
+```
+
+
+## Creator Defaults
+
+path: `pype-config/presets/tools/creator.json`
+
+This preset tells the creator tools what family should be pre-selected in different tasks. Keep in mind that the task is matched loosely so for example any task with 'model' in it's name will be considered a modelling task for these purposes.
+
+`"Family name": ["list, "of, "tasks"]`
+
+```python
+"Model": ["model"],
+"Render Globals": ["light", "render"],
+"Layout": ["layout"],
+"Set Dress": ["setdress"],
+"Look": ["look"],
+"Rig": ["rigging"]
+```
+
+## Project Folder Structure
+
+path: `pype-config/presets/tools/project_folder_structure.json`
+
+Defines the base folder structure for a project. This is supposed to act as a starting point to quickly creat the base of the project. You can add `[ftrack.entityType]` after any of the folders here and they will automatically be also created in ftrack project.
+
+### `__project_root__` [dict]
+
+```python
+"__project_root__": {
+ "_prod" : {},
+ "_resources" : {
+ "footage": {
+ "ingest": {},
+ "offline": {}
+ },
+ "audio": {},
+ "art_dept": {},
+ },
+ "editorial" : {},
+ "assets[ftrack.Library]": {
+ "characters[ftrack]": {},
+ "locations[ftrack]": {}
+ },
+ "shots[ftrack.Sequence]": {
+ "editorial[ftrack.Folder]": {}
+ }
+}
+```
+
+## Software Folders
+
+path: `pype-config/presets/tools/sw_folders.json`
+
+Defines extra folders to be created inside the work space when particular task type is launched. Mostly used for configs, that use {app} key in their work template and want to add hosts that are not supported yet.
+
+```python
+"compositing": ["nuke", "ae"],
+"modeling": ["maya", "app2"],
+"lookdev": ["substance"],
+"animation": [],
+"lighting": [],
+"rigging": []
+```
+
+## Tray Items
+
+path: `pype-config/presets/tray/menu_items.json`
+
+This preset let's admins to turn different pype modules on and off from the tray menu, which in turn makes them unavailable across the pipeline
+
+### `item_usage` [dict]
+
+```python
+"item_usage": {
+ "User settings": false,
+ "Ftrack": true,
+ "Muster": false,
+ "Avalon": true,
+ "Clockify": false,
+ "Standalone Publish": true,
+ "Logging": true,
+ "Idle Manager": true,
+ "Timers Manager": true,
+ "Rest Api": true
+},
+```
+
+## Muster Templates
+
+path: `pype-config/presets/muster/templates_mapping.json`
+
+Muster template mapping maps Muster template ID to name of renderer. Initially it is set Muster defaults. About templates and Muster se Muster Documentation. Mapping is defined in:
+
+Keys are renderer names and values are templates IDs.
+
+```python
+"3delight": 41,
+"arnold": 46,
+"arnold_sf": 57,
+"gelato": 30,
+"harware": 3,
+"krakatoa": 51,
+"file_layers": 7,
+"mentalray": 2,
+"mentalray_sf": 6,
+"redshift": 55,
+"renderman": 29,
+"software": 1,
+"software_sf": 5,
+"turtle": 10,
+"vector": 4,
+"vray": 37,
+"ffmpeg": 48
+```
diff --git a/website/docs/pype2/admin_pype_commands.md b/website/docs/pype2/admin_pype_commands.md
new file mode 100644
index 0000000000..245e8a23e2
--- /dev/null
+++ b/website/docs/pype2/admin_pype_commands.md
@@ -0,0 +1,287 @@
+---
+id: admin_pype_commands
+title: Pype Commands Reference
+sidebar_label: Pype Commands
+---
+
+
+
+## Help
+
+To get all available commands:
+```sh
+pype --help
+```
+
+To get help on particular command:
+```sh
+pype --help
+```
+
+--------------------
+## `clean`
+
+Command to clean Python bytecode files from Pype and it's environment. Useful
+for developers after code or environment update.
+
+--------------------
+
+## `coverage`
+
+### `--pype`
+- without this option, tests are run on *pype-setup* only.
+
+Generate code coverage report.
+```sh
+pype coverage --pype
+```
+
+--------------------
+
+## `deploy`
+
+To deploy Pype:
+```sh
+pype deploy
+```
+
+### `--force`
+
+To force re-deploy:
+```sh
+pype deploy --force
+```
+
+---------------------------
+
+## `download`
+
+To download required dependencies:
+```sh
+pype download
+```
+
+--------------------
+
+## `eventserver`
+
+This command launches ftrack event server.
+
+This should be ideally used by system service (such us systemd or upstart
+on linux and window service).
+
+You have to set either proper environment variables to provide URL and
+credentials or use option to specify them. If you use `--store_credentials`
+provided credentials will be stored for later use.
+
+To run ftrack event server:
+```sh
+pype eventserver --ftrack-url= --ftrack-user= --ftrack-api-key= --ftrack-events-path= --no-stored-credentials --store-credentials
+```
+
+### `--debug`
+- print debug info
+
+### `--ftrack-url`
+- URL to ftrack server
+
+### `--ftrack-user`
+- user name to log in to ftrack
+
+### `--ftrack-api-key`
+- ftrack api key
+
+### `--ftrack-events-path`
+- path to event server plugins
+
+### `--no-stored-credentials`
+- will use credential specified with options above
+
+### `--store-credentials`
+- will store credentials to file for later use
+
+--------------------
+
+## `install`
+
+To install Pype:
+
+```sh
+pype install
+```
+
+### `--force`
+
+To reinstall Pype:
+```sh
+pype install --force
+```
+
+### `--offline`
+
+To install Pype in offline mode:
+```sh
+pype install --offline
+```
+
+To reinstall Pype in offline mode:
+```sh
+pype install --offline --force
+```
+
+--------------------
+
+## `launch`
+
+Launch application in Pype environment.
+
+### `--app`
+
+Application name - this should be the same as it's [defining toml](admin_hosts#launchers) file (without .toml)
+
+### `--project`
+Project name
+
+### `--asset`
+Asset name
+
+### `--task`
+Task name
+
+### `--tools`
+*Optional: Additional tools environment files to add*
+
+### `--user`
+*Optional: User on behalf to run*
+
+### `--ftrack-server` / `-fs`
+*Optional: Ftrack server URL*
+
+### `--ftrack-user` / `-fu`
+*Optional: Ftrack user*
+
+### `--ftrack-key` / `-fk`
+*Optional: Ftrack API key*
+
+For example to run Python interactive console in Pype context:
+```sh
+pype launch --app python --project my_project --asset my_asset --task my_task
+```
+
+--------------------
+
+## `make_docs`
+
+Generate API documentation into `docs/build`
+```sh
+pype make_docs
+```
+
+--------------------
+
+## `mongodb`
+
+To run testing mongodb database (requires mongoDB installed on the workstation):
+```sh
+pype mongodb
+```
+
+--------------------
+
+## `publish`
+
+Pype takes JSON from provided path and use it to publish data in it.
+```sh
+pype publish
+```
+
+### `--gui`
+- run Pyblish GUI
+
+### `--debug`
+- print more verbose infomation
+
+--------------------
+
+## `test`
+
+### `--pype`
+- without this option, tests are run on *pype-setup* only.
+
+Run test suite on Pype:
+```sh
+pype test --pype
+```
+:::note Pytest
+For more information about testing see [Pytest documentation](https://docs.pytest.org/en/latest/)
+:::
+
+--------------------
+
+## `texturecopy`
+
+Copy specified textures to provided asset path.
+
+It validates if project and asset exists. Then it will
+copy all textures found in all directories under `--path` to destination
+folder, determined by template texture in **anatomy**. I will use source
+filename and automatically rise version number on directory.
+
+Result will be copied without directory structure so it will be flat then.
+Nothing is written to database.
+
+### `--project`
+
+### `--asset`
+
+### `--path`
+
+```sh
+pype texturecopy --project --asset --path
+```
+
+--------------------
+
+## `tray`
+
+To launch Tray:
+```sh
+pype tray
+```
+
+### `--debug`
+
+To launch Tray with debugging information:
+```sh
+pype tray --debug
+```
+
+--------------------
+
+## `update-requirements`
+
+Synchronize dependecies in your virtual environment with requirement.txt file.
+Equivalent of running `pip freeze > pypeapp/requirements.txt` from your virtual
+environmnet. This is useful for development purposes.
+
+```sh
+pype update-requirements
+```
+
+--------------------
+
+## `validate`
+
+To validate deployment:
+```sh
+pype validate
+```
+
+--------------------
+
+## `validate-config`
+
+To validate JSON configuration files for syntax errors:
+```sh
+pype validate-config
+```
diff --git a/website/docs/pype2/admin_setup_troubleshooting.md b/website/docs/pype2/admin_setup_troubleshooting.md
new file mode 100644
index 0000000000..2ffdd9b5f3
--- /dev/null
+++ b/website/docs/pype2/admin_setup_troubleshooting.md
@@ -0,0 +1,17 @@
+---
+id: admin_setup_troubleshooting
+title: Setup Troubleshooting
+sidebar_label: Setup Troubleshooting
+---
+
+## SSL Server certificates
+
+Python is strict about certificates when connecting to server with SSL. If
+certificate cannot be validated, connection will fail. Therefor care must be
+taken when using self-signed certificates to add their certification authority
+to trusted certificates.
+
+Also please note that even when using certificates from trusted CA, you need to
+update your trusted CA certificates bundle as those certificates can change.
+
+So if you receieve SSL error `cannot validate certificate` or similar, please update root CA certificate bundle on machines and possibly **certifi** python package in Pype virtual environment - just edit `pypeapp/requirements.txt` and update its version. You can find current versions on [PyPI](https://pypi.org).
diff --git a/website/docs/system_introduction.md b/website/docs/system_introduction.md
new file mode 100644
index 0000000000..71c5d64aa8
--- /dev/null
+++ b/website/docs/system_introduction.md
@@ -0,0 +1,71 @@
+---
+id: system_introduction
+title: Introduction
+sidebar_label: Introduction
+---
+
+
+**OpenPype** is a python application built on top of many other open-source libraries, modules and projects.
+To be able to use it, you need those tools and set your environment. This
+requires additional software installed and set up correctly on your system.
+
+Fortunately this daunting task is mostly handled for you by OpenPype build and install scripts. **OpenPype** can
+install most of its requirements automatically but a few more things are needed in
+various usage scenarios.
+
+## Studio Preparation
+
+You can find detailed breakdown of technical requirements [here](dev_requirements), but in general OpenPype should be able
+to operate in most studios fairly quickly. The main obstacles are usually related to workflows and habits, that
+might now be fully compatible with what OpenPype is expecting or enforcing.
+
+Keep in mind that if you run into any workflows that are not supported, it's usually just because we haven't hit
+that particular case and it can most likely be added upon request.
+
+
+## Artist Workstations
+
+To use **OpenPype** in production, it should be installed on each artist workstation, whether that is in the studio or at home in
+case of a distributed workflow. Once started, it lives in the system tray menu bar and all of it's tools are executed locally on
+the artist computer. There are no special requirements for the artist workstations if you are running openPype from a frozen build.
+
+Each artist computer will need to be able to connect to your central mongo database to load and publish any work. They will also need
+access to your centralized project storage, unless you are running a fully distributed pipeline.
+
+## Centralized and Distributed?
+
+OpenPype supports a variety of studio setups, for example:
+
+- Single physical location with monolithic project storage.
+- Fully remote studios, utilizing artist's home workstations.
+- Distributed studios, running fully or partially on the cloud.
+- Hybrid setups with different storages per project.
+- And others that we probably didn't think of at all.
+
+It is totally up to you how you deploy and distribute OpenPype to your artist, but there are a few things to keep in mind:
+- While it is possible to store project files in different locations for different artist, it bring a lot of extra complexity
+to the table
+- Some DCCs do not support using Environment variables in file paths. This will make it very hard to maintain full multiplatform
+compatibility as well variable storage roots.
+- Relying on VPN connection and using it to work directly of network storage will be painfully slow.
+
+
+## Repositories
+
+### [OpenPype](https://github.com/pypeclub/pype)
+
+This is where vast majority of the code that works with your data lives. It acts
+as Avalon-Config, if we're speaking in avalon terms.
+
+Avalon gives us the ability to work with a certain host, say Maya, in a standardized manner, but OpenPype defines **how** we work with all the data, allows most of the behavior to be configured on a very granular level and provides a comprehensive build and installation tools for it.
+
+Thanks to that, we are able to maintain one codebase for vast majority of the features across all our clients deployments while keeping the option to tailor the pipeline to each individual studio.
+
+### [Avalon-core](https://github.com/pypeclub/avalon-core)
+
+Avalon-core is the heart of OpenPype. It provides the base functionality including key GUIs (albeit expanded and modified by us), database connection, standards for data structures, working with entities and some universal tools.
+
+Avalon is being actively developed and maintained by a community of studios and TDs from around the world, with Pype Club team being an active contributor as well.
+
+Due to the extensive work we've done on OpenPype and the need to react quickly to production needs, we
+maintain our own fork of avalon-core, which is kept up to date with upstream changes as much as possible.
diff --git a/website/docs/upgrade_notes.md b/website/docs/upgrade_notes.md
new file mode 100644
index 0000000000..dbc90e948d
--- /dev/null
+++ b/website/docs/upgrade_notes.md
@@ -0,0 +1,165 @@
+---
+id: update_notes
+title: Update Notes
+sidebar_label: Update Notes
+---
+
+
+
+## **Updating to 2.13.0** ##
+
+### MongoDB
+
+**Must**
+
+Due to changes in how tasks are stored in the database (we added task types and possibility of more arbitrary data.), we must take a few precautions when updating.
+1. Make sure that ftrack event server with sync to avalon is NOT running during the update.
+2. Any project that is to be worked on with 2.13 must be synced from ftrack to avalon with the udpated sync to avalon action, or using and updated event server sync to avalon event.
+
+If 2.12 event servers runs when trying to update the project sync with 2.13, it will override any changes.
+
+### Nuke Studio / hiero
+
+Make sure to re-generate pype tags and replace any `task` tags on your shots with the new ones. This will allow you to make multiple tasks of the same type, but with different task name at the same time.
+
+### Nuke
+
+Due to a minor update to nuke write node, artists will be prompted to update their write nodes before being able to publish any old shots. There is a "repair" action for this in the publisher, so it doesn't have to be done manually.
+
+
+
+
+## **Updating to 2.12.0** ##
+
+### Apps and tools
+
+**Must**
+
+run Create/Update Custom attributes action (to update custom attributes group)
+check if studio has set custom intent values and move values to ~/config/presets/global/intent.json
+
+**Optional**
+
+Set true/false on application and tools by studio usage (eliminate app list in Ftrack and time for registering Ftrack ations)
+
+
+
+
+## **Updating to 2.11.0** ##
+
+### Maya in deadline
+
+We added or own maya deadline plugin to make render management easier. It operates the same as standard mayaBatch in deadline, but allow us to separate Pype sumitted jobs from standard submitter. You'll need to follow this guide to update this [install pype deadline](https://pype.club/docs/admin_hosts#pype-dealine-supplement-code)
+
+
+
+
+## **Updating to 2.9.0** ##
+
+### Review and Burnin PRESETS
+
+This release introduces a major update to working with review and burnin presets. They can now be much more granular and can target extremely specific usecases. The change is backwards compatible with previous format of review and burnin presets, however we highly recommend updating all the presets to the new format. Documentation on what this looks like can be found on pype main [documentation page](https://pype.club/docs/admin_presets_plugins#publishjson).
+
+### Multiroot and storages
+
+With the support of multiroot projects, we removed the old `storage.json` from configuration and replaced it with simpler `config/anatomy/roots.json`. This is a required change, but only needs to be done once per studio during the update to 2.9.0. [Read More](https://pype.club/docs/next/admin_config#roots)
+
+
+
+
+## **Updating to 2.7.0** ##
+
+### Master Versions
+To activate `master` version workflow you need to activate `integrateMasterVersion` plugin in the `config/presets/plugins/global/publish.json`
+
+```
+"IntegrateMasterVersion": {"enabled": true},
+```
+
+### Ftrack
+
+Make sure that `intent` attributes in ftrack is set correctly. It should follow this setup unless you have your custom values
+```
+{
+ "label": "Intent",
+ "key": "intent",
+ "type": "enumerator",
+ "entity_type": "assetversion",
+ "group": "avalon",
+ "config": {
+ "multiselect": false,
+ "data": [
+ {"test": "Test"},
+ {"wip": "WIP"},
+ {"final": "Final"}
+ ]
+ }
+```
+
+
+
+
+## **Updating to 2.6.0** ##
+
+### Dev vs Prod
+
+If you want to differentiate between dev and prod deployments of pype, you need to add `config.ini` file to `pype-setup/pypeapp` folder with content.
+
+```
+[Default]
+dev=true
+```
+
+### Ftrack
+
+You will have to log in to ftrack in pype after the update. You should be automatically prompted with the ftrack login window when you launch 2.6 release for the first time.
+
+Event server has to be restarted after the update to enable the ability to control it via action.
+
+### Presets
+
+There is a major change in the way how burnin presets are being stored. We simplified the preset format, however that means the currently running production configs need to be tweaked to match the new format.
+
+:::note Example of converting burnin preset from 2.5 to 2.6
+
+2.5 burnin preset
+
+```
+"burnins":{
+ "TOP_LEFT": {
+ "function": "text",
+ "text": "{dd}/{mm}/{yyyy}"
+ },
+ "TOP_CENTERED": {
+ "function": "text",
+ "text": ""
+ },
+ "TOP_RIGHT": {
+ "function": "text",
+ "text": "v{version:0>3}"
+ },
+ "BOTTOM_LEFT": {
+ "function": "text",
+ "text": "{frame_start}-{current_frame}-{frame_end}"
+ },
+ "BOTTOM_CENTERED": {
+ "function": "text",
+ "text": "{asset}"
+ },
+ "BOTTOM_RIGHT": {
+ "function": "frame_numbers",
+ "text": "{username}"
+ }
+```
+
+2.6 burnin preset
+```
+"burnins":{
+ "TOP_LEFT": "{dd}/{mm}/{yyyy}",
+ "TOP_CENTER": "",
+ "TOP_RIGHT": "v{version:0>3}"
+ "BOTTOM_LEFT": "{frame_start}-{current_frame}-{frame_end}",
+ "BOTTOM_CENTERED": "{asset}",
+ "BOTTOM_RIGHT": "{username}"
+}
+```
diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js
new file mode 100644
index 0000000000..3ce1cde060
--- /dev/null
+++ b/website/docusaurus.config.js
@@ -0,0 +1,128 @@
+module.exports = {
+ title: 'openPYPE',
+ tagline: 'Pipeline with support, for studios and remote teams.',
+ url: 'http://openpype.io/',
+ baseUrl: '/',
+ organizationName: 'Orbi Tools s.r.o',
+ projectName: 'openPype',
+ favicon: 'img/favicon/favicon.ico',
+ onBrokenLinks: 'ignore',
+ customFields: {
+ },
+ presets: [
+ [
+ '@docusaurus/preset-classic', {
+ docs: {
+ sidebarPath: require.resolve('./sidebars.js'),
+ },
+ theme: {
+ customCss: require.resolve('./src/css/custom.css')
+ }
+ }
+ ]
+ ],
+ themeConfig: {
+ colorMode: {
+ // "light" | "dark"
+ defaultMode: 'light',
+
+ // Hides the switch in the navbar
+ // Useful if you want to support a single color mode
+ disableSwitch: true
+ },
+ announcementBar: {
+ id: 'help_with_docs', // Any value that will identify this message.
+ content:
+ 'This documentation is work in progress, help us make it better.. Current working version is 3.0.0-beta.',
+ backgroundColor: '#fff', // Defaults to `#fff`.
+ textColor: '#000', // Defaults to `#000`.
+ },
+ navbar: {
+ style: 'dark',
+ title: 'openPYPE',
+ logo: {
+ src: 'img/logos/splash_main.svg'
+ },
+ items: [
+ {
+ to: '/features',
+ label: 'Features',
+ position: 'left'
+ }, {
+ to: 'docs/artist_getting_started',
+ label: 'User Docs',
+ position: 'left'
+ }, {
+ to: 'docs/system_introduction',
+ label: 'Admin Docs',
+ position: 'left'
+ },
+ {
+ href: 'https://pype.club',
+ label: 'pypeclub',
+ position: 'right',
+ },{
+ href: 'https://github.com/pypeclub',
+ label: 'Github',
+ position: 'right',
+ },
+ ]
+ },
+ footer: {
+ style: 'dark',
+ links: [
+ {
+ title: 'Pages',
+ items: [
+ {
+ label: 'Features',
+ to: 'features',
+ },
+ {
+ label: 'Artist',
+ to: 'docs/artist_getting_started',
+ },
+ {
+ label: 'Admin',
+ to: 'docs/admin_getting_started',
+ }
+ ]
+ },
+ {
+ title: 'Community',
+ items: [
+ {
+ label: 'Avalon Chat',
+ to: 'https://gitter.im/getavalon/Lobby',
+ },
+ {
+ label: 'OpenPype Chat',
+ to: 'https://discord.gg/sFNPWXG',
+ },
+ {
+ label: 'Github Discussions',
+ to: 'https://github.com/pypeclub/pype/discussions',
+ }
+ ],
+ },
+ ],
+ copyright: 'Copyright ยฉ 2021 Orbi Tools',
+ },
+ algolia: {
+ apiKey: '5e01ee3bfbb744ca6f25d4b281ce38a9',
+ indexName: 'openpype',
+ // Optional: see doc section bellow
+ contextualSearch: true,
+ // Optional: Algolia search parameters
+ searchParameters: {},
+ },
+ googleAnalytics: {
+ trackingID: 'G-HHJZ9VF0FG',
+ // Optional fields.
+ anonymizeIP: false, // Should IPs be anonymized?
+ },
+ },
+ stylesheets: [
+ 'https://use.fontawesome.com/releases/v5.7.2/css/all.css'
+ ],
+};
diff --git a/website/package.json b/website/package.json
new file mode 100644
index 0000000000..7bd8b4e77b
--- /dev/null
+++ b/website/package.json
@@ -0,0 +1,27 @@
+{
+ "name": "pype-documentation",
+ "scripts": {
+ "examples": "docusaurus-examples",
+ "start": "docusaurus start",
+ "build": "docusaurus build",
+ "publish-gh-pages": "docusaurus-publish",
+ "write-translations": "docusaurus-write-translations",
+ "version": "docusaurus-version",
+ "rename-version": "docusaurus-rename-version",
+ "swizzle": "docusaurus swizzle",
+ "deploy": "docusaurus deploy",
+ "docusaurus": "docusaurus"
+ },
+ "dependencies": {
+ "@docusaurus/core": "2.0.0-alpha.72",
+ "@docusaurus/preset-classic": "2.0.0-alpha.72",
+ "classnames": "^2.2.6",
+ "clsx": "^1.1.1",
+ "react": "^16.10.2",
+ "react-dom": "^16.10.2",
+ "react-popupbox": "^2.0.8",
+ "remarkable-admonitions": "^0.2.1",
+ "yarn": "^1.17.3"
+ },
+ "devDependencies": {}
+}
diff --git a/website/publish.cmd b/website/publish.cmd
new file mode 100644
index 0000000000..f203823bde
--- /dev/null
+++ b/website/publish.cmd
@@ -0,0 +1,5 @@
+cd %~dp0
+set GIT_USER=mkolar
+set CURRENT_BRANCH=develop
+set USE_SSH=true
+yarn deploy
diff --git a/website/sidebars.js b/website/sidebars.js
new file mode 100644
index 0000000000..ec608f0a13
--- /dev/null
+++ b/website/sidebars.js
@@ -0,0 +1,110 @@
+module.exports = {
+ artist: [
+ {
+ type: "category",
+ collapsed: false,
+ label: "General",
+ items: [
+ "artist_getting_started",
+ "artist_concepts",
+ "artist_publish",
+ "artist_tools",
+ ],
+ },
+ {
+ type: "category",
+ collapsed: false,
+ label: "Integrations",
+ items: [
+ "artist_hosts_nukestudio",
+ "artist_hosts_nuke",
+ "artist_hosts_maya",
+ "artist_hosts_harmony",
+ "artist_hosts_aftereffects",
+ "artist_hosts_photoshop",
+ "artist_hosts_unreal",
+ {
+ type: "category",
+ label: "Ftrack",
+ items: [
+ "artist_ftrack",
+ "manager_ftrack",
+ "manager_ftrack_actions",
+ ],
+ }
+ ],
+ },
+ ],
+ Admin: [
+ "system_introduction",
+ {
+ type: "category",
+ label: "Getting Started",
+ items: [
+ "dev_requirements",
+ "dev_build",
+ "admin_distribute",
+ "admin_use",
+ "dev_contribute",
+ "admin_openpype_commands",
+ ],
+ },
+ {
+ type: "category",
+ label: "Configuration",
+ items: [
+ "admin_settings",
+ "admin_settings_system",
+ "admin_settings_project_anatomy",
+ "admin_settings_project",
+ ],
+ },
+ {
+ type: "category",
+ label: "Modules",
+ items: [
+ "module_ftrack",
+ "module_site_sync",
+ "module_deadline",
+ "module_muster",
+ "module_clockify"
+ ],
+ },
+ {
+ type: "category",
+ label: "Releases",
+ items: ["changelog", "update_notes"],
+ },
+ {
+ type: "category",
+ collapsed: false,
+ label: "2.0 legacy docs",
+ items: [
+ {
+ type: "category",
+ label: "Deployment",
+ items: [
+ "pype2/admin_getting_started",
+ "pype2/admin_install",
+ "pype2/admin_config",
+ "pype2/admin_ftrack",
+ "pype2/admin_hosts",
+ "pype2/admin_pype_commands",
+ "pype2/admin_setup_troubleshooting",
+ ],
+ },
+ {
+ type: "category",
+ label: "Configuration",
+ items: [
+ "pype2/admin_presets_nukestudio",
+ "pype2/admin_presets_ftrack",
+ "pype2/admin_presets_maya",
+ "pype2/admin_presets_plugins",
+ "pype2/admin_presets_tools",
+ ],
+ },
+ ],
+ },
+ ],
+};
diff --git a/website/src/components/BadgesSection/badges.js b/website/src/components/BadgesSection/badges.js
new file mode 100644
index 0000000000..4bc85df2ef
--- /dev/null
+++ b/website/src/components/BadgesSection/badges.js
@@ -0,0 +1,59 @@
+export default {
+ upper: [
+ {
+ title: "License",
+ src:
+ "https://img.shields.io/github/license/pypeclub/pype?labelColor=303846",
+ href: "https://github.com/pypeclub/pype",
+ },
+ {
+ title: "Release",
+ src:
+ "https://img.shields.io/github/v/release/pypeclub/pype?labelColor=303846",
+ href: "https://github.com/pypeclub/pype",
+ },
+ {
+ title: "Requirements State",
+ src:
+ "https://img.shields.io/requires/github/pypeclub/pype?labelColor=303846",
+ href:
+ "https://requires.io/github/pypeclub/pype/requirements/?branch=main",
+ },
+ {
+ title: "VFX Platform",
+ src:
+ "https://img.shields.io/badge/vfx%20platform-2021-lightgrey?labelColor=303846",
+ href: "https://vfxplatform.com",
+ },
+ {
+ title: "GitHub last commit",
+ src:
+ "https://img.shields.io/github/last-commit/pypeclub/pype/develop?labelColor=303846",
+ href: "https://github.com/pypeclub/pype",
+ },
+ {
+ title: "GitHub commit activity",
+ src:
+ "https://img.shields.io/github/commit-activity/y/pypeclub/pype?labelColor=303846",
+ href: "https://github.com/pypeclub/pype",
+ },
+ {
+ title: "Repository Size",
+ src:
+ "https://img.shields.io/github/repo-size/pypeclub/pype?labelColor=303846",
+ href: "https://github.com/pypeclub/pype",
+ },
+ {
+ title: "Forks",
+ src:
+ "https://img.shields.io/github/forks/pypeclub/pype?style=social&labelColor=303846",
+ href: "https://github.com/pypeclub/pype",
+ },
+ {
+ title: "Discord",
+ src:
+ "https://img.shields.io/discord/517362899170230292?label=discord&logo=discord&logoColor=white&labelColor=303846",
+ href: "https://discord.gg/sFNPWXG",
+ },
+ ],
+};
diff --git a/website/src/components/BadgesSection/index.js b/website/src/components/BadgesSection/index.js
new file mode 100644
index 0000000000..f782de2a52
--- /dev/null
+++ b/website/src/components/BadgesSection/index.js
@@ -0,0 +1,25 @@
+import React from 'react';
+
+import badges from './badges';
+import styles from './styles.module.css';
+import {StarButton} from "../index";
+
+const Badge = props => (
+
+
+
+);
+
+export default function BadgesSection() {
+ const {upper: upperBadges} = badges;
+
+ return (
+
+
+ Contribute
+
+
+ Get in touch
+
+
+ Join our chat
+
+
+ Get Support
+
+
+
+
+ OpenPYPE is developed, maintained and supported by PYPE.club
+
+
+
+
+
+ {services && services.length && (
+
+
+ {/*
Services
*/}
+
+ {services.map((props, idx) => (
+
+ ))}
+
+
+
+ )}
+
+
+
+
+
+
+
+
What is openPype?
+
+
Open-source pipeline for visual effects and animation built on top of the Avalon framework, expanding it with extra features and integrations. OpenPype connects your DCCs, asset database, project management and time tracking into a single system. It has a tight integration with Ftrack, but can also run independently or be integrated into a different project management solution.
+
+
+ OpenPype provides a robust platform for your studio, without the worry of a vendor lock. You will always have full access to the source-code and your project database will run locally or in the cloud of your choice.
+
+
+
+
+
+
+
+
+
+
+
Why choose openPype?
+
+
+ Pipeline is the technical backbone of your production. It means, that whatever solution you use, it will cause vendor-lock to some extend.
+ You can mitigate this risk by developing purely in-house tools, however, that just shifts the problem from a software vendor to your developers. Sooner or later, you'll hit the limits of such solution. In-house tools tend to be undocumented, narrow focused and heavily dependent on a very few or even a single developer.
+
+
+ OpenPYPE aims to solve these problems. It has dedicated and growing team of developers and support staff, that can provide the comfort of a commercial solution, while giving you the benefit of a full source-code access. You can build and deploy it yourself, or even fork and continue in-house if you're not happy about where openPYPE is heading in the future.
+