IDOM is a Python framework for building interactive websites without needing a single line of JavaScript. Web elements you provide (ex. button
, div
, image
) are combined into reusable "components". Components can be nested together and utilize ReactJS-style hooks to create complex web pages. Ultimately, all IDOM components are communicated to the browser and then rendered by ReactJS.
When needed, you can import JavaScript from NPM into your Python components. If you want to develop a component entirely within JavaScript, you can utilize the JavaScript Components API for additional flexibility.
IDOM's ecosystem independent design allows it to be added to existing projects built on a variety of sync and async web frameworks. For example, you can take components originally developed in Jupyter and embed them into an existing Flask application.
Currently supported web frameworks include: FastAPI
, Flask
, Sanic
, Tornado
, Django
, Plotly-Dash
, and Jupyter
.
To get a rough idea of how to write apps in IDOM, take a look at this tiny Hello World application.
from idom import component, html, run
@component
def App():
return html.h1("Hello, World!")
run(App)
Follow the links below to find out more about this project.
- Try it Now - check out IDOM in a Jupyter Notebook.
- Documentation - learn how to install, run, and use IDOM.
- Community Forum - ask questions, share ideas, and show off projects.
- Contributor Guide - see how you can help develop this project.
- Code of Conduct - standards for interacting with this community.