The Web Framework
for the Everyman.

Python web apps, without the ceremony. Co-locate your logic and your output. Ship a functional tool before the shift ends.

You write — app.stpl
@route('/orders/overdue')
{$
# Python logic lives right here, no controller file
orders = db['default'].query(
    "SELECT client, days_open, total "
    "FROM orders WHERE closed = 0 "
    "ORDER BY days_open DESC"
)
$}

<h1>Overdue Orders</h1>
{% for o in orders %}
<div class="row">
  <span>{{ o.client }}</span>
  <span class="days">{{ o.days_open }}d</span>
  <span>${{ "{:,.0f}".format(o.total) }}</span>
</div>
{% endfor %}
You get — localhost:5000/orders/overdue
Overdue Orders
ACME Manufacturing
62d $24,500
Stringer Industrial
31d $8,750
TechFlow Solutions
7d $3,200

Zero-Ceremony Routing

Write your logic exactly where it renders. A decorator, a Python block, and HTML. No jumping between controller files and view templates. If it's a .stpl file, it works.

Built for the Database

Parameterized queries out of the box. SQLite for development, one config change to switch to PostgreSQL, MySQL, or MSSQL. Stop fighting ORMs when raw SQL gets the job done.

HTMX-Ready

@no_layout returns bare HTML fragments for HTMX partials. @sse enables Server-Sent Events with yield. Reactive UIs without a JavaScript framework or build step.

01

Download

Get the latest release from GitHub.

Releases →
02

Install

tar -xzf scribe-*.tar.gz
./install.sh
03

Create & run

scribe new myapp
cd myapp
scribe dev
> scribe ide localhost:5001

A browser IDE. Built in.

Run scribe ide alongside your dev server to get a Monaco-powered editor, live app preview, and a database browser — all at localhost:5001. No extension, no separate tool.

Monaco editor (VS Code editor component)
Live app preview
Database browser + query runner
Migration manager
Route explorer

Prefabs

View all →

Drop-in feature packages and UI components. Copy the files listed, follow the README, and ship a working feature without starting from scratch.

Modules

Full-feature packages — Python helpers, route snippets, migrations, and CSS. No dependencies beyond what each README lists.

Admin Settings  ·  LDAP Auth

Browse Modules →

Templates

Copy-paste UI components with live demos and source viewers. Vanilla JS, no build step, no framework lock-in.

Modal Dialog  ·  Sortable Table  ·  Rich Form

Browse Templates →