FastoGram
A Laravel-style web framework for Python: FastAPI on the backend, Inertia.js v3 + React
on the frontend, and an artisan-like CLI (fastogram make:controller, fastogram migrate, ...).
Status: early (0.1.0). It works end to end, but expect rough edges and breaking changes. The previous Telegram bot template (0.0.x, FastAPI + aiogram) is kept under the tag
legacy-telegram-templateand on therelease/public-readybranch.
Try it
You need uv, Node 22+ and npm.
uvx fastogram new myapp # like `laravel new myapp`
cd myapp
uv run fastogram 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: fastogram list, fastogram route:list, fastogram make:model Post -mcr,
fastogram 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/fastogram/ the framework library and CLI (published to PyPI as `fastogram`)
skeleton/ the app that `fastogram 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 fastogram 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastogram-0.1.0.tar.gz | 584.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastogram-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.0 MB
Release files / fastogram-0.1.0.tar.gz
| Download URL | fastogram-0.1.0.tar.gz |
|---|---|
| Size | 584.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
820b25e284674f949e0f83891760fc4704ce5d2b48435c8019ab65ba3fcc1823
|
|
BLAKE2b-256 checksum How to use checksums |
ff6b468def0b53ba347c3b55c7598b11c16dba575b98b32c44bfceda7fb07678
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|
Release files / fastogram-0.1.0-py3-none-any.whl
| Download URL | fastogram-0.1.0-py3-none-any.whl |
|---|---|
| Size | 427.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
e9280225ad8c0f2a2bd58f1706db65c8ef1189cd58b082b0d2c1d45faad0217e
|
|
BLAKE2b-256 checksum How to use checksums |
fc45ab9c8ce8cab915c9a5e2099e226da8c826fb1424b1262e30822fd4f9e222
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.12
|