Compare · The spec sheet

Real React. Pure Python. No seam.

three stacks, compared in their own vocabulary · every cell checkable against that framework’s docs · losses printed in section 05

Same job as Next.js. One language fewer.

the default split stack — a TypeScript frontend calling a Python API

Aspect
next + fastapi
pyxle
services to run
next + fastapitwo — a Next server and a FastAPI service
pyxleone — the page and its backend are the same process
languages
next + fastapiTypeScript + Python
pyxlePython + JSX, in one file
one field, DB → component
next + fastapiNote → response_model → openapi.json → types.gen.ts → fetch → props
pyxleloader return → props
representations in sync
next + fastapi6 · 3 places to drift
pyxle1 · 0 places to drift
server logic
next + fastapiFastAPI routes, a hand-kept contract away
pyxle@server loaders · @action mutations — same file as the JSX
streaming SSR
next + fastapiyes — RSC
pyxleyes — <Suspense>, React 18/19
SSR throughput, per core
next + fastapi1.0 — the reference
pyxle~2.2× — measured July 2026 on Pyxle 0.7.1 · /benchmarks
HTML for the same DOM
next + fastapicarries the RSC hydration payload
pyxle2–3× fewer bytes — same run
deploy
next + fastapitwo deploys · CORS between them
pyxleone process · any ASGI host

pick the split when frontend and backend are different teams — the contract is then a feature, not a tax

Also pure Python. Not real React.

the closest cousin — and the clearest fork in the road

Aspect
reflex
pyxle
components
reflexa wrapped set — the framework's own component system
pyxlereal React — npm-install anything
writing JSX
reflexnever — that's the promise
pyxleyes — real JSX, same file as the Python
one field, DB → component
reflexrx.State → diff over WebSocket → wrapped var
pyxleloader return → props
where UI events run
reflexon the server, over a WebSocket
pyxlein the browser — plain React state
streaming SSR on React 19
reflexpartial
pyxleyes — <Suspense>, shell first
breakpoints, both halves
reflex—
pyxleone .pyxl file — Python and JSX in the same debug session

pick Reflex when nobody on the team will ever write JSX — that constraint is its whole design

The batteries reference. Templates, not components.

twenty years of admin, ORM and auth — with a template language at the end

Aspect
django
pyxle
UI layer
djangoserver templates — types end at the template
pyxleReact components, server-rendered then hydrated
one field, DB → component
djangoQuerySet → context → template
pyxleloader return → props
admin panel
djangothe reference — still unmatched
pyxlenot built in
React SSR
djangonot built in
pyxlestreaming, React 18/19
one file per feature
djangomodels + views + urls + templates
pyxleloader, @action, component — one .pyxl

pick Django when the admin is the product — Pyxle does not have one

One representation. Measured.

real bytes off a real production build — not a diagram

terminaldist/ · production build
$ grep -c 'find_notes\|remember\|SavedSearch' \
      dist/assets/search-*.js
0

# the loader’s server code, absent from the
# client bundle by construction — not minifier luck

the search page’s own loader, grepped for in its shipped JS

GET /search?q=in2,020 B — the whole HTML document

the page’s client chunk2.6 KB · 1.3 KB gzipped

invalid @action bodya real Pydantic 422 — the action never runs

dynamic SSR, per core~2.2× Next.js — July 2026, Pyxle 0.7.1 · /benchmarks

database-query pages1.31× FastAPI’s throughput — same run

under load0 errors · 2,500+ tests · 95% coverage gate

What Pyxle doesn’t do.

a spec sheet that only lists wins is an ad — when the others are the right call

no admin panelDjango’s is still the reference. If the admin is the product, use Django.

no Python-only promiseJSX here is real JSX. A team that will never write it is better served by Reflex.

no raw-JSON crownNode ultralights like Hono own that workload — printed in our own losses. /benchmarks

no 1.0 stability line yetpre-1.0 — minor versions may still break you. The line lands when the plugin API has proven itself. /roadmap

no managed cloud todayself-host on any ASGI box. Pyxle Cloud is in development — the newsletter below hears it first.

run it in the browser →

MIT · v0.9.4 · Python 3.10+ · the long-form guide → /docs/guides/comparison