The Python Framework
for the
Reactive Web.
Caspian combines FastAPI, native RPC actions, and Python-first full-stack workflows. The current authoring surface is explicit: render UI in HTML, use Jinja on the server, PulsePoint in the browser, and keep route and component behavior in native Python.
Start with create-caspian-app@latest to generate the current Python authoring model, FastAPI runtime, PulsePoint client, and route-local RPC workflow.
Core And Authoring Model
Async Server Actions
Define async Python actions and call them from the browser through Caspian's RPC layer. FastAPI dependency injection, request access, auth checks, and server-side orchestration stay part of the core framework.
PulsePoint In The Browser
Keep client state and events close to the markup with pp.state(...), inline on* handlers, refs, effects, and pp.rpc(...).
HTML + Jinja Templates
Route and component markup lives in readable Python html(...) templates, with Jinja handling server-known values before PulsePoint activates browser state.
File-System Routing
Intuitive routing based on folders. Supports
layout.py
nesting and dynamic
[id]
parameters.
Python Components
Encapsulate reusable UI in Python functions decorated with
@component, then render them in authored HTML as
x-* tags.
Python Route Companions
Each route's index.py owns its readable inline markup, first-render data, metadata, auth, caching, redirects, and RPC actions. Substantial sections move into focused Python components.
Batteries Included
The reactive core is only the start. Each of these ships with the framework or as an app-owned convention on top of it — explore the full platform below.
Backend & Data
API Routes
Typed HTTP endpoints with automatic parameter coercion.
RPC Actions
Call async Python functions straight from the browser.
Data Fetching
Choose first-render Python, RPC, streams, uploads, or WebSockets by interaction.
File Uploads
Streamed multipart uploads with managed storage.
WebSockets
Live two-way channels secured by one shared guard.
MCP Server
Expose type-safe tools to AI agents at /mcp.
State Management
Server state that persists across requests.
Caching
Page caching with fine-grained invalidation.
Database (Prisma)
Type-safe Python ORM — zero SQL boilerplate.
Validation
Declarative payload validation in Python.
Authentication
Sessions, RBAC, and Google / GitHub OAuth.