Hi @pradel, the dash documentation https://dash.plot.ly/ is a very big multipage Dash app. You can find its source code on https://github.com/plotly/dash-docs (the documentation pages are in the
dash_docs/tutorial directory). The big advantage of this solution is that your doc is reactive and interactive since it’s a Dash app, therefore you can demonstrate the parameters of the different components and how they interact together. However, you have to host your documentation (heroku is a free solution for this), since you need flask to run your application, so you cannot just dump a set of html pages somewhere (Github pages for example) as for a static doc.
About docstrings, for documenting the API we use indeed docstrings which are parsed and formatted (see https://github.com/plotly/dash-docs/blob/master/dash_docs/tutorial/utils/convert_props_to_list.py).
Sphinx is not used for the Dash documentation, but it is used for documenting the API of the plotly.py library https://plot.ly/python-api-reference/.
For the Dash apps of the gallery, you may have noticed that there is often a
dcc.Tab with documentation (and other tabs for the interaction with data), it’s a useful trick to have enough space for the documentation without cluttering the dashboard with a lot of information. Also,
dcc.Markdown is a convenient way to write well-formatted text such as documentation.
I’m sure other users will have other tips and tricks to share !