Koyo
The Next.js app directory experience, in pure Python.

- Role
- Creator
- Type
- Solo
- Year
- 2026
- Status
- Open source
- Category
- Languages and Libraries
- Main stack
- Koyo, Python +3
Overview
Koyo is a Python web framework that mirrors the developer experience of Next.js. You write pages as Python files inside an app directory, and the folder structure becomes your routes. Bracketed folders create dynamic segments, a layout file wraps everything below it, and components are plain functions.
It runs as a normal Python server, so any package from pip is available right away. Styling uses Tailwind, interactivity uses htmx 2.0, and a production build prerenders your routes to static HTML. The runtime is small: Starlette, Uvicorn, watchfiles, Typer and tomlkit.
It is on PyPI as koyoapp, with documentation, a scaffolding command and a dev server with live reload.
Highlights
- •File based routing with dynamic segments.
- •Nested layouts and Python components through a tag factory.
- •Tailwind styling, htmx interactivity and session state.
- •koyoapp build prerenders static routes with minified CSS.
- •pip install koyoapp, then koyoapp create and koyoapp dev.
Try it
Routes
- /app/page.py
- /aboutapp/about/page.py
- /blogapp/blog/page.py
- /blog/:slugapp/blog/[slug]/page.py
- /docs/:section/:pageapp/docs/[section]/[page]/page.py
Matched app/blog/[slug]/page.py
params: {"slug":"hello-world"}
Wrapped by app/layout.py
Built with
KoyoPython
htmx
Tailwind CSS
PyPI