Skip to main content

dash-init

Project generator for Plotly Dash: one command to a running app.

pip install dash-init
dash-init create my-dashboard
cd my-dashboard
pip install -r requirements.txt     # or: uv sync
python app.py                       # or: uv run app.py

You get a working, current Dash app with a callback, a chart, an assets/ folder, a README, requirements.txt + pyproject.toml, and a .gitignore. Not a throwaway "hello world" example, but the structure you'd have written yourself.

my-dashboard/
├── app.py              # layout + callback, exposes server for deployment
├── assets/
│   └── custom.css      # custom styling
├── requirements.txt    # dependencies
├── pyproject.toml      # project metadata and dependencies
├── README.md           # how to run and deploy it
└── .gitignore

Every generated project includes a README with steps to deploy it (Plotly Cloud, any Python host, or Docker with --docker).

Generated projects target Python 3.11+ and pin current versions: dash>=4.4.1, pandas>=3.0.5, dash-bootstrap-components>=2.0.4 (bootstrap template). The dash-init tool itself runs on Python 3.9+ and has no dependencies.

Usage

dash-init create <name>                      create a project from the default (minimal) template
dash-init create <name> -t <template>        choose a built-in or hub template
dash-init create <name> -t gh:owner/repo/sub/dir[@ref]
                                            pull any directory on GitHub as a template
dash-init create <name> --docker             also generate a Dockerfile + .dockerignore (alias: --dockerfile)
dash-init templates                          list everything available
dash-init --version

create refuses to overwrite a non-empty directory and never installs anything. It writes files and prints the next steps.

Built-in templates

Name What you get
minimal Single-file app with one callback (default)
multipage Dash Pages app: app.py shell + auto-routed pages/ directory
bootstrap Sidebar + KPI cards layout with dash-bootstrap-components
csv Charts data/sample.csv; swap in your own file

These ship inside the package and need no network. Every one is generated and smoke-run in CI against current Dash.

Add --docker to any of them for a ready-to-build Dockerfile + .dockerignore (docker build -t my-dashboard . && docker run -p 8050:8050 my-dashboard).

Templates from dash-templates-hub

Full admin dashboards from budescode/dash-templates-hub are available by name and downloaded when you run create:

Name What you get
admin-dashboard General-purpose admin dashboard (light, modern)
kiaalap Education-management dashboard, 50+ pages (light, indigo)
nalika Analytics-focused dashboard (dark, professional)
purity-ui Purity UI admin dashboard port
dash-init create school -t kiaalap

What happens:

  • Only that template's files are fetched: no git clone, no full-repo tarball. Repo clutter (screenshots, notebooks, caches, lockfiles) is dropped.
  • The project name is set in pyproject.toml; a pyproject.toml (from requirements.txt) and a .gitignore are generated if the template lacks them.
  • The hub is pinned to a specific commit in src/dash_init/registry.json, and CI fetches and checks every entry, so a change in the hub cannot silently break create.
  • A failed download leaves nothing behind. Errors say whether you're offline, the path doesn't exist, or you hit GitHub's rate limit (set GITHUB_TOKEN to raise it).

Any GitHub directory works the same way, un-curated:

dash-init create demo -t gh:someone/repo/examples/my-app@v2.1

Why trust it

  • Tested against current Dash. Every template is generated and booted in CI, weekly, so if Dash breaks something you see a red build here, not in your terminal.
  • Never touches your environment. It writes files and tells you what to run. No pip install on your behalf.
  • Zero dependencies. Pure standard library, so installing it can't conflict with anything.

Roadmap

  • deploy subcommand
  • --dir option to create the project outside the current directory
  • Turn an existing app into a template (dash-init create --from-project)
  • More templates

Contributing

Contributions are welcome. See CONTRIBUTING.md for guidelines.

Connect

Prior art & credit

The template-directory approach follows the archived dash-tools by Andrew Hossack (MIT). No code was reused, but the idea that a template should be a plain folder anyone can contribute to comes from there.

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dash_init-0.1.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dash_init-0.1.0-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file dash_init-0.1.0.tar.gz.

File metadata

  • Download URL: dash_init-0.1.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.2

File hashes

Hashes for dash_init-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a524c7c547d431222a3e9e606f06ef640785c1eb6c5119bfde62b2aace5928ab
MD5 bf26051bdb8a82cc13590a1d9af9670e
BLAKE2b-256 2bf7938046ec4a6686375eb7f4628d95656eaa78c433ca097de5ea0842ff6593

See more details on using hashes here.

File details

Details for the file dash_init-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: dash_init-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 26.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.11.2

File hashes

Hashes for dash_init-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bf867e43979f93ffbdf6cda93362998eae8249ead4b48f7eacd3e7d05ed94dfd
MD5 8ea73fb9b20a7bac8d657122a051fabc
BLAKE2b-256 e315828865f24b5906d30f059cb9bd71efce221937d9be54da16a90ef6d90d29

See more details on using hashes here.

Release history Release notifications | RSS feed

0.3.1

2 files

0.3.0

2 files

0.2.0

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page