The Python Framework
for the
Reactive Web.
Caspian core still centers 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.
New projects now start from create-caspian-app@rc. If you are reviewing older docs, treat the migration update as an authoring-model change, not a removal of FastAPI or RPC from Caspian core.
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
The migration shift is in how you author pages: visible UI lives in HTML templates, with Jinja handling server-known values, loops, and conditionals before the response is sent.
File-System Routing
Intuitive routing based on folders. Supports
layout.html
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
Keep visible page markup in index.html, and add index.py when the route needs metadata, auth, caching, redirects, or RPC actions. That is where to change server behavior during migrations.