ViewDOM: Component-Driven Development for Python#

Coverage Status Documentation Status Code style: black PyPI Python Version PyPI - Downloads License Test Status pre-commit black

ViewDOM brings modern frontend templating patterns to Python:

  • tagged to have language-centered templating (like JS tagged templates)

  • htm to generate virtual DOM structures from a template run (like the htm JS package)

  • ViewDOM for components which render a VDOM to a markup string, along with other modern machinery

  • Optionally, Hopscotch for a component registry with dependency injection


  • Component-driven development.

  • Intermediate VDOM.

  • Pass in data either via props (simple) or DI (rich).

  • Emphasis on modern Python dev practices: explicit, type hinting, static analysis, testing, docs, linting, editors.


  • Python 3.9+.

  • viewdom

  • tagged


  • Markupsafe


You can install ViewDOM via pip from PyPI:

$ pip install viewdom

Quick Examples#


Contributions are very welcome. To learn more, see the contributor’s guide.


Distributed under the terms of the MIT license, ViewDOM is free and open source software.


If you encounter any problems, please file an issue along with a detailed description.


This project was generated from @cjolowicz’s Hypermodern Python Cookiecutter template.