<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="Wred is a tiny Python/ASGI backend for HTML and JavaScript apps.">
<title>Wred — a composable Python/ASGI backend</title>
<style>
:root { color-scheme: light; font-family: Arial, Helvetica, sans-serif; color: #702a36; background: #fff8f8; }
* { box-sizing: border-box; }
body { margin: 0; }
main { width: 100%; }
.intro { text-align: left; padding: 12px 24px 16px; }
h1 { margin: 0; }
h1 img { display: block; max-width:50%; height: auto; margin: auto; }
.intro p { margin: 8px auto 0; max-width: 760px; font-size: 24px; line-height: 1.4; }
a { color: inherit; text-underline-offset: 4px; }
a:hover { color: #c92432; }
a:focus-visible { outline: 2px solid #c92432; outline-offset: 5px; }
footer { display: flex; justify-content: center; flex-wrap: wrap; gap: 16px 32px; padding: 16px 24px; font-size: 15px; }
.examples { max-width: 800px; margin: 0 auto; padding: 0 24px; }
.examples pre { margin-bottom: 12px; background: #fff0f0; border: 1px solid #dc8994; border-radius: 6px; }
pre { margin: 0; padding: 12px 16px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere; color: #702a36; font: 16px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; tab-size: 2; }
.install-command { white-space: pre; overflow-wrap: normal; overflow-x: auto; }
code { font: inherit; }
@media (max-width: 700px) {
.intro { padding-left: 12px; padding-right: 12px; }
.intro p { font-size: 17px; }
h1 img { max-width: 350px; }
}
</style>
</head>
<body>
<main>
<header class="intro">
<h1><a href="https://harrisonerd.com/wred"><img src="https://patx.gitman.io/wred/wred-logo.png" alt="Wred-embedded"></a></h1>
<p>A tiny, composable Python backend for JavaScript web apps. View the documentation and source <a target="_blank" href="https://gitman.io/patx/wred">here</a>.</p>
</header>
<section class="examples" aria-label="Installation and example">
<pre class="install-command" aria-label="Install"><code>pip install wred</code></pre>
<pre aria-label="app.py"><code>from wred import App
app = App()
@app.route("/")
async def index(request):
return {"hello": "world"}
# run with `weft app:app`
</code></pre>
</section>
</main>
<footer>
<a href="https://harrisonerd.com">© 2026 Harrison Erd</a>
</footer>
</body>
</html>