webwrench

Python UI framework for interactive dashboards and self-contained HTML reports.

Get Started

Zero Dependencies

No runtime dependencies. Install and go — pure Python with bitwrench.js bundled in.

Script Mode

Build dashboards in a flat script. Call ww.title(), add widgets, ww.serve() and you’re live.

App Mode

Multi-page apps with @app.page('/') decorators, per-session state, and routing.

Static Export

Export any page to a self-contained HTML file — share reports without a running server.

Chart.js Built-in

Bar, line, pie, radar, doughnut — one call to ww.chart() with full customization.

Surgical Updates

Only changed elements re-render. No full-page reruns like Streamlit’s model.

Quick Start

pip install webwrench
import webwrench as ww

ww.title("Hello World")
ww.text("My first webwrench app")
ww.serve()

Interactive Example

import webwrench as ww

data = [12, 19, 3, 5, 2, 3]
ww.title("Sales Dashboard")
chart = ww.chart(data, type="bar", labels=["Jan", "Feb", "Mar", "Apr", "May", "Jun"])
slider = ww.slider("Multiplier", min=1, max=10, value=1)

@slider.on_change
def update(value):
    chart.update([d * value for d in data])

ww.serve()

Static Report

import webwrench as ww

ww.title("Q1 Report")
ww.chart([12, 19, 3], type="bar", labels=["A", "B", "C"])
ww.export("report.html")

webwrench is powered by bitwrench.js. Licensed under BSD-2-Clause. © Manjirnath Chatterjee.