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
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
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
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
$ 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 luckthe 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.
MIT · v0.9.4 · Python 3.10+ · the long-form guide → /docs/guides/comparison