Skip to main content

Astris

The modern full-stack web framework for Python.
Full-stack simplicity with modern Python performance, ready for production

Documentation PyPI version Python Versions Coverage License


What is Astris?

Astris bridges the gap between the rapid, joyful developer experience of classic full-stack frameworks (like Laravel and Rails) and the raw performance, modern typing, and async concurrency of FastAPI and Python 3.11+.

By combining FastAPI, Inertia.js, Vue 3, Tailwind CSS v4, and SQLModel, Astris lets you build rich, dynamic single-page applications without the overhead of maintaining separate API layers or complex state synchronization.

📖 Explore the full documentation, guides, and tutorials at astris.dev.


🌟 Key Features

  • 🛡️ Robust & Production-Ready: Enterprise-grade architecture with 100% test coverage across the framework.
  • ⚡ Lightning-Fast Core: ASGI performance powered by FastAPI and Uvicorn with auto-generated OpenAPI & Swagger documentation.
  • 🧩 Modern Monolith with Inertia.js: Render Vue 3 components directly from FastAPI controllers with full server-side state hydration and zero REST boilerplate.
  • 🛡️ Production-Ready Authentication: Cryptographically signed cookie sessions, OWASP-standard Argon2id password hashing (pwdlib), and full-stack auth starter kit.
  • 🗄️ SQLModel & Alembic Database Engine: Unified declarative models, DTOs, and automatic schema migrations out-of-the-box.
  • ⚙️ Type-Safe Centralized Configuration: Powered by pydantic-settings for .env management, type casting, and fail-fast startup validation.
  • 🪐 Orbit CLI: An artisan developer CLI for scaffolding modules, generating migrations, and serving full-stack applications with hot-reloading.
  • 🎨 Tailwind CSS v4 Pre-configured: Instant zero-config styling powered by @tailwindcss/vite.

🚀 Quickstart

Create a new full-stack Astris application in seconds using uvx (or pipx):

# 1. Create a new project
uvx --from astris-python astris new my_app

# Or install globally as a CLI tool:
# uv tool install astris-python
# astris new my_app

# 2. Enter directory and install frontend dependencies
cd my_app
npm install

# 3. Start full-stack development server (FastAPI + Vite HMR)
uv run orbit serve

Open http://localhost:8000 in your browser. Your full-stack app with authentication, Inertia.js, and SQLite is live!


💡 How It Feels

1. Controllers & Inertia Rendering

Write clean, expressive controllers that return frontend views or JSON seamlessly:

from astris.auth import AuthUser, auth_required
from astris.inertia import InertiaResponse
from astris.routing import Controller

controller = Controller(prefix="/dashboard", dependencies=[auth_required])


@controller.get("/")
async def dashboard_page(request: Request, user: AuthUser) -> InertiaResponse:
    # Props are passed directly to Vue 3 with $page.props
    return InertiaResponse(request, "Dashboard", props={"username": user["name"]})

2. Unified SQLModel Models

Define database tables and validation schemas in a single declarative model:

from astris.database import Field, SQLModel


class ArticleBase(SQLModel):
    title: str = Field(index=True)
    content: str
    is_published: bool = Field(default=False)


class Article(ArticleBase, table=True):
    id: int | None = Field(default=None, primary_key=True)


class ArticleCreate(ArticleBase):
    pass

3. Frontend Views (Vue 3 + Inertia)

Build dynamic reactive pages without configuring client-side routers:

<script setup lang="ts">
import { Head, Link } from '@inertiajs/vue3'

defineProps<{
  username: string
}>()
</script>

<template>
  <Head title="Dashboard" />
  <div class="min-h-screen bg-slate-950 text-slate-100 p-8">
    <h1 class="text-3xl font-bold">Welcome back, {{ username }}!</h1>
  </div>
</template>

🪐 The Orbit CLI

Astris comes equipped with Orbit, a developer toolkit for rapid development:

# Start FastAPI backend + Vite frontend concurrently
uv run orbit serve

# Scaffold a new domain module (controller, service, model)
uv run orbit make:module billing

# Create and apply database migrations
uv run orbit make:migration "create_billing_table"
uv run orbit migrate

# Generate encryption keys
uv run orbit key:generate

📂 Project Architecture

Astris structures projects with a modular, Domain-Driven Design that grows gracefully:

my_app/
├── app/
│   ├── core/
│   │   └── config.py        # Centralized Pydantic settings & .env loading
│   └── modules/
│       ├── auth/            # Authentication domain (controller, service, model)
│       └── welcome/         # Welcome domain
├── database/
│   └── migrations/          # Alembic database migration versions
├── resources/
│   ├── css/
│   │   └── app.css          # Tailwind CSS v4 styling
│   ├── js/
│   │   ├── Pages/           # Inertia Vue 3 views & components
│   │   └── app.ts           # Vue entrypoint
│   └── views/
│       └── root.html        # HTML shell template
├── .env                     # App configuration & APP_KEY
└── pyproject.toml           # Python dependencies

🚀 Deployment

Astris applications scaffold with production Dockerfiles and standard ASGI architecture.

1. Build & Migrate

# Compile frontend assets
npm run build

# Run database migrations
uv run orbit migrate

# Launch production ASGI server
uv run orbit serve --prod

2. Docker Deployment

docker build -t my-astris-app .
docker run -p 8000:8000 --env-file .env my-astris-app

📖 Read the full Production & Docker Deployment Guide on the documentation site.


🙏 Acknowledgments

Astris is built upon the work of giants. Huge gratitude to the incredible open-source projects and creators that make Astris possible:


📄 License

The Astris framework is open source and licensed under the terms of the MIT license.

Built with ❤️ by Felix Gomez.

Release files for astris-python 0.2.0

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

Source distribution (sdist)

Source distribution for astris-python 0.2.0
File Size Uploaded
astris_python-0.2.0.tar.gz 53.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for astris-python 0.2.0
File Interpreter ABI Platform
astris_python-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 115.9 kB

Release files / astris_python-0.2.0.tar.gz

Download URL astris_python-0.2.0.tar.gz
Size 53.4 kB
Tags Source
SHA-256 checksum
How to use checksums
ba1156c9cad10acb29ac7046934dd93107070123f1ff3498194d633a7e84c5b5
BLAKE2b-256 checksum
How to use checksums
334829a3b8f59dae4df42fc9c5e0ac989f9b03d08d96d2a839b7028318bb0702
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / astris_python-0.2.0-py3-none-any.whl

Download URL astris_python-0.2.0-py3-none-any.whl
Size 62.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ae45bced20f63b9c4d70256c89645063c7aaa8c8221e9b966508e9a880a32930
BLAKE2b-256 checksum
How to use checksums
2b0b1efebf184c30a577504fe4144b761966bf38a79cd6544a52425cd0b99211
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.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