A modern, responsive documentation system and package catalogue for custom Dash components, software, and research projects
A comprehensive documentation platform showcasing a collection of custom Dash components, software, and research projects maintained by Pip Install Python. This system serves as both a package catalogue and a reusable boilerplate for creating beautiful, interactive documentation with markdown-driven content, live code examples, and automatic theme persistence.
This documentation system showcases 18 custom Dash component libraries with comprehensive documentation, live examples, and download statistics:
- dash-summernote - Rich text WYSIWYG Editor
- dash-insta-stories - Instagram Stories Component
- dash-image-gallery - Image Gallery Component
- dash-fullcalendar - Thin wrapper around FullCalendar
- dash-gauge - Gauge Component
- dash-emoji-mart - Slack-like Emoji Picker
- dash-dock - Dynamic dock windows and tabs layout
- dash-pannellum - 360 Panorama Viewer for Images and Video
- dash-planet - Interactive orbital menu component
- dash-model-viewer - 3D Model Viewer
- dash-excalidraw - Freeform Drawing and Notebook Component
- dash-credit-cards, dash-charty, dash-nivo, dash-discord, dash-dynamic-grid-layout, dash-swiper, dash-fullcalendar
Total Downloads: Automatically aggregated from PyPI using the pypistats.org API and displayed on the home page.
- Write documentation in Markdown with Python integration
- Custom directives for interactive examples, code highlighting, and component props
- Automatic page generation from markdown files with frontmatter metadata
- Table of contents generation for easy navigation
- Built with Dash Mantine Components
- Responsive design for mobile, tablet, and desktop
- Dark and light theme support with automatic preference persistence
- Smooth transitions and professional styling
- Customizable color schemes and theming
- "Other Apps" menu - Quick navigation to related Pip Install Python projects (Plotly.pro, ai-agent.buzz, GeoMapIndex)
- Hot reload during development
- Searchable component navigation with custom page ordering
- Syntax highlighting for multiple languages
- Interactive code examples with live callbacks
- Component props documentation auto-generation
- Automatic download statistics - Real-time PyPI download counters for all packages
- Total downloads aggregation - Automatically fetches and sums downloads across 18 packages
- API integration - Uses pypistats.org API for accurate historical data
- Visual presentation - Professional download counter displayed on home page
- Smart error handling - Gracefully handles API failures with detailed logging
- Automatic AI-friendly documentation - llms.txt, page.json, architecture.txt
- SEO optimization - sitemap.xml with intelligent priority inference
- Bot management - Control which bots can access your app (blocks AI training, allows AI search)
- Structured data - Schema.org JSON-LD for better search engine understanding
- Privacy controls - mark_hidden() for sensitive pages
- Share with AI - Users can share your app URL with ChatGPT/Claude for help
- Powered by dash-improve-my-llms v0.3.0
- Docker and docker-compose support
- Gunicorn production server included
- Optimized for deployment
- Environment-based configuration
- Dash 3.2.0 - Modern Plotly Dash framework
- DMC 2.4.0 - Dash Mantine Components
- Mantine 8.3.6 - Beautiful React UI library
- React 18 - Latest React features
- Python 3.11+ - Modern Python
- Python: 3.11 or higher
- Node.js: 14+ (for npm dependencies)
- npm: 6+
- dash >= 3.0.0
- dash-mantine-components >= 2.4.0
- flask >= 3.0.0
- plotly >= 5.0.0
- pandas >= 1.2.3
- pydantic >= 2.3.0
- python-frontmatter >= 1.0.0
- markdown2dash
- gunicorn >= 21.2.0 (production)
See requirements.txt for complete list.
git clone https://github.com/pip-install-python/Dash-Documentation-Boilerplate.git
cd Dash-Documentation-BoilerplatePython packages:
pip install -r requirements.txtNode packages (for DMC frontend components):
npm installpython run.pyVisit http://localhost:8553 in your browser.
Create your documentation in the docs folder:
docs/
βββ your-component/
β βββ your-component.md # Markdown documentation
β βββ examples.py # Python code examples (optional)dash-documentation-boilerplate/
βββ assets/ # Static assets and CSS
β βββ dash_documentation_boilerplate.png
β βββ intro_img.png
β βββ m2d.css # Markdown-to-Dash styling
β βββ main.css # Custom styles
β
βββ components/ # Reusable UI components
β βββ appshell.py # Main app layout with MantineProvider
β βββ header.py # Header with search and theme toggle
β βββ navbar.py # Navigation sidebar and drawer
β
βββ docs/ # Documentation content
β βββ example/
β βββ example.md # Example documentation page
β βββ introduction.py # Example interactive component
β
βββ lib/ # Utility libraries
β βββ constants.py # App-wide constants
β βββ directives/ # Custom markdown directives
β βββ kwargs.py # Component props table generator
β βββ source.py # Source code display directive
β βββ toc.py # Table of contents directive
β
βββ pages/ # Dash multi-page app pages
β βββ home.md # Home page content
β βββ home.py # Home page layout
β βββ download_counter.py # PyPI download statistics aggregator
β βββ markdown.py # Dynamic markdown page loader
β
βββ templates/
β βββ index.html # Custom HTML template
β
βββ .gitignore
βββ CHANGELOG.md # Version history and changes
βββ Dockerfile # Docker container definition
βββ docker-compose.yml # Docker compose configuration
βββ package.json # Node.js dependencies
βββ package-lock.json # Locked npm versions
βββ README.md # This file
βββ requirements.txt # Python dependencies
βββ run.py # Application entry point
-
Create a new folder in the
docs/directory:mkdir -p docs/my-component
-
Create a markdown file with frontmatter:
--- name: My Component description: A description of my component endpoint: /components/my-component icon: mdi:code-tags --- ## My Component Your documentation content here...
-
Add interactive examples (optional):
# docs/my-component/example.py import dash_mantine_components as dmc component = dmc.Button("Click Me!", id="my-button")
-
Use directives in your markdown:
.. toc:: .. exec::docs.my-component.example .. source::docs/my-component/example.py
Generates a table of contents from your markdown headings.
Renders an executable Python component from a module.
Displays source code with syntax highlighting.
Generates a props documentation table for a component.
Modify lib/constants.py to change the primary color:
PRIMARY_COLOR = "teal" # Change to any Mantine colorCustomize CSS in:
assets/main.css- General stylingassets/m2d.css- Markdown-specific styling
The boilerplate automatically saves user theme preference (light/dark) in localStorage:
- First visit: Detects browser preference or defaults to light
- Theme toggle: Saves preference automatically
- Return visits: Restores saved theme preference
docker build -t dash-docs-boilerplate .docker run -p 8550:8550 dash-docs-boilerplateVisit http://localhost:8550
docker-compose upThe app will be available at http://localhost:8550
The Docker container uses Gunicorn for production-ready serving:
- Multiple workers for better performance
- Automatic worker restart on failure
- Suitable for production environments
-
Create virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt npm install
-
Run in debug mode:
# Modify run.py app.run(debug=True, host='0.0.0.0', port='8553')
- Create your component in a separate module
- Add documentation in
docs/your-component/ - The app automatically discovers and registers pages from markdown files
- Restart the server to see your new documentation
Main layout components:
- Header:
components/header.py- Logo, search, theme toggle - Navbar:
components/navbar.py- Sidebar navigation - AppShell:
components/appshell.py- Overall layout structure
Create a .env file (optional):
DASH_DEBUG=False
DASH_HOST=0.0.0.0
DASH_PORT=8553| File | Purpose |
|---|---|
lib/constants.py |
App-wide constants (colors, titles) |
assets/main.css |
Custom CSS styles |
templates/index.html |
HTML template (for analytics, meta tags) |
components/appshell.py |
Theme configuration, MantineProvider settings |
- Getting Started: This README
- Changelog: See CHANGELOG.md
- Examples: Check the
/docs/example/folder
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Make your changes
- Test thoroughly: Ensure the app runs without errors
- Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow PEP 8 style guide for Python code
- Add docstrings to functions and classes
- Test your changes before submitting
- Update documentation if adding new features
- Keep commits atomic and well-described
Issue: ModuleNotFoundError: No module named 'dash_html_components'
- Solution: You're using an old version. Update to 0.2.0+ which uses Dash 3.x
Issue: Theme doesn't persist
- Solution: Check browser localStorage is enabled and not blocked
Issue: npm install fails
- Solution: Update Node.js to 14+ and npm to 6+
Issue: Port already in use
- Solution: Change port in
run.pyor stop the conflicting process
For more issues, check GitHub Issues
Current Version: 0.3.0
| Component | Version |
|---|---|
| Dash | 3.2.0 |
| Dash Mantine Components | 2.4.0 |
| Mantine | 8.3.6 |
| Python | 3.11.8+ |
| React | 18.2.0 |
| Flask | 3.1.2 |
| dash-improve-my-llms | 0.3.0 |
See CHANGELOG.md for version history.
- β¨ Comprehensive Documentation: 5 detailed guides with 15+ working examples
- π¨ Enhanced Theme System: DMC figure templates, theme-aware charts, code blocks
- π― Production Ready: SEO-optimized HTML template with extensive developer guidance
- π Better UX: Custom navigation order, improved typography, consistent spacing
- π§ All Plotly Charts Theme-Aware: Dynamic template switching in light/dark modes
- π PyPI Download Counter - Real-time aggregation of downloads across all 18 packages via pypistats.org API
- π Enhanced Component Documentation - Comprehensive rewrites for dash-emoji-mart, dash-insta-stories, and dash-dock
- π― Package Catalogue Home Page - Side-by-side comparison table for active vs. archived components with custom badges
- π "Other Apps" Navigation Menu - Quick access to Plotly.pro, ai-agent.buzz, and GeoMapIndex
- π Bug Fixes - Fixed type errors, typos, and improved component property documentation
This project is licensed under the MIT License - see the LICENSE file for details.
- Plotly Dash - The web framework
- Dash Mantine Components - Beautiful UI components
- Mantine - React component library
- dmc-docs - Documentation framework inspiration
- @AnnMarieW for suggested improvements
- The Dash community for continuous support
- Documentation: You're reading it!
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Dash Community: Plotly Community Forum
GitHub: @pip-install-python
YouTube: Pip Install Python
Check out open issues labeled good first issue
Made with β€οΈ by the Dash community
Pip Install Python LLC @ https://plotly.pro
Star this repo if you find it useful! β
