Skip to content
AlmasixAlmasix

Almasix

Build beautiful web applications with a familiar structure, a powerful ORM, and the Smith CLI — in Python.

Almasix is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable, creative experience. Almasix eases common tasks used in many web projects — routing, validation, the database layer, views, queues, and more — with first-class async/await for ASGI.

You do not need prior framework experience. Create apps with almasix new. Drive them with python smith …. Write controllers, Articulate models, Prism views, and migrations in a layout that stays navigable as the app grows. New here? Start with How to read these docs. Almasix is inspired by Laravel — credit and link live there.

terminal
pipx install almasix
almasix new blog
cd blog
# activate the app .venv (or pass --install to almasix new), then:
python smith serve

Familiar structure

app/, routes/, config/, database/, and bootstrap/app.py — a layout you can navigate on day one.

Articulate ORM

Active Record models, a fluent query builder, relationships, migrations, and seeders — all async.

Prism views

A template engine with layouts, sections, components, and slots, compiled to Python and cached.

Smith CLI

Generate controllers, models, and migrations. Serve your app. Open Loupe. Migrate and seed your database.

Middleware & HTTP

Register middleware in bootstrap/app.py, define routes in routes/web.py and routes/api.py, and keep FastAPI out of your application code.

Async all the way

Controllers, queries, queue jobs, and scheduled tasks are coroutines — no thread pool bolted on afterwards.

Four files are enough for a page backed by the database.

examples/index.py
# routes/web.py
from app.http.controllers.flight_controller import FlightController
from almasix.routing import Route
with Route.group(middleware=["web"]):
Route.get("/flights", [FlightController, "index"])

Smith is the CLI that ships inside every application. It generates code, runs migrations, serves the app, and opens Loupe — a REPL with your application already booted.

terminal
python smith list # every command available to your app
python smith make:controller PostController
python smith make:model Post -m # model plus a migration
python smith migrate # run pending migrations
python smith db:seed # populate the database
python smith queue:work # process queued jobs
python smith loupe # a REPL inside your booted app