Skip to main content

Aso

The Aso framework is a Laravel-style web framework for Python: FastAPI on the backend, Inertia.js v3 + React on the frontend, and an artisan-like CLI (aso make:controller, aso migrate, ...).

Status: early (0.2.1). It works end to end, but expect rough edges and breaking changes. Versions up to 0.1.1 were published as fastogram; that package is retired. The previous Telegram bot template (0.0.x, FastAPI + aiogram) is kept under the tag legacy-telegram-template and on the release/public-ready branch.

Try it

You need uv, Node 22+ and npm.

uvx aso new myapp     # like `laravel new myapp`
cd myapp
uv run aso dev        # server + Vite + route watcher

Open http://127.0.0.1:8000, register, and you're in the React starter kit (dashboard, settings, password reset, email verification). In local mode mail goes to storage/logs/.

Useful commands: aso list, aso route:list, aso make:model Post -mcr, aso migrate, uv run pytest.

What it looks like

# routes/web.py
with Route.middleware("auth").group():
    Route.get("/posts", [PostController, "index"]).name("posts.index")
    Route.post("/posts", [PostController, "store"]).name("posts.store")

# app/http/controllers/post_controller.py
class PostController(Controller):
    async def index(self):
        return inertia("posts/index", {"posts": await Post.with_("author").latest().paginate(15)})

    async def store(self, form: StorePostRequest):
        await Post.create(**form.validated(), user_id=auth().id())
        return redirect().route("posts.index").with_flash("success", "Post created.")

Repository layout

src/aso/   the framework library and CLI (published to PyPI as `aso`)
skeleton/        the app that `aso new` creates (like laravel/laravel)
tests/           the framework's own tests
spikes/          Phase 0 proof-of-concept spikes (throwaway)

License

MIT

Metadata

Release files for aso 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aso 0.2.1
File Size Uploaded
aso-0.2.1.tar.gz 585.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aso 0.2.1
File Interpreter ABI Platform
aso-0.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 1.0 MB

Release files / aso-0.2.1.tar.gz

Download URL aso-0.2.1.tar.gz
Size 585.4 kB
Tags Source
SHA-256 checksum
How to use checksums
062da76d0314fc728d186939911fa137b94db4dbd0901ad00e91659e2d0aea3d
BLAKE2b-256 checksum
How to use checksums
3d15519afde94a118b088b48a590d471b27600f74320a5b0c413dcddcd5e330f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release files / aso-0.2.1-py3-none-any.whl

Download URL aso-0.2.1-py3-none-any.whl
Size 424.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e0f3730f479c363fdd4d8e8420861924c94222da84cd1be180d71007553b609c
BLAKE2b-256 checksum
How to use checksums
a95ba469f1e0dd93c151e02f31410211e9e28d0cb9afb7e1a00d24b68f6f7c42
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page