Build software you understand and enjoy.

Stario is a small Python web framework. Yard builds the image and runs it on your host.

Routes are values, handlers write the response, HTML is Python, and a page can stay live over one open connection. There is no template language, no client build step, and no separate server to install.

The whole app

import asyncio
 
from stario import App, Context, Route, Span, Writer, h, serve
 
HOME = Route("GET /")
 
 
async def home(c: Context, w: Writer) -> None:
    page = h.HtmlDocument(
        h.Head(h.Title("Hello")),
        h.Body(h.H1("Hello, Stario")),
    )
    w.html(page)
 
 
async def bootstrap(app: App, span: Span):
    app.add(HOME, home)
    yield
 
 
if __name__ == "__main__":
    asyncio.run(serve(bootstrap))

Save it as main.py and run uv run python main.py.

Where to go

  • Read the docs

    The framework, from the first page to the reference.

  • Run it on Yard

    Yard builds the image and runs it on your host.

  • Blog

    Release notes and design notes.

Stario is made by Adam Bobowski. The story is on About. The rest of the work is at bobowski.dev.