Roadmap
What's being built for pywire, in order. pywire is pre-1.0, so expect breaking changes between minor versions until then.
Principles
- Written for coding agents
- Docs, tests and tooling your agent can use.
- Full products in Python
- No separate JavaScript frontend.
- Small core
- Auth, security and testing ship as official add-ons.
- Servers and the edge
- The same code on a long-running server or serverless.
- Scales out
- Sessions move between workers and survive reconnects.
- Real-time in 1.0
- Shared state, presence and rooms.
- WebTransport
- Built in, and on by default once Python's HTTP/3 servers support it.
- Apache 2.0
- Free to use, funded by sponsors.
Now
In progress, in priority order.
Component fixes
Components inside
$forget their own instance,propswork in functions defined in a component's frontmatter, child-to-parent callbacks get documented, and two bugs from the benchmark run get fixed.Shared state across clients
A change to a shared
wire()orproducer()reaches every connected client, across workers. It works in one process by default and through Redis whenREDIS_URLis set. Until then, the docs will say what is shared.Edge stateless mode
Run on Cloudflare Workers, AWS Lambda, Azure Functions and Google Cloud, with page state kept in signed snapshots instead of a server session. It also adds keyed
{$for}regions, which send only the changed row (304 B instead of 913 KB on a 5,000-row list), optimistic UI and@poll.Performance
Cheaper session saves, compressed stateless snapshots, gzip and Brotli responses, and published benchmarks.
Production add-ons
pywire-securefor CSRF, security headers and rate limits.pywire.testingfor testing pages.pywire-observabilityfor request IDs, JSON logs, OpenTelemetry and Sentry.Dev server
Reload on any change under
src/, pick up new pages without a restart, and show the full traceback when a page fails on first render.FastAPI integration
Mounting pywire in FastAPI already works (guide). Next: share dependency injection and auth with your FastAPI routes.
More
pywire checkrulesChecks for common template and handler mistakes, reported in the terminal and in your editor.
Next
Planned next. Not started yet.
Rooms and presence
Rooms and channels for chat, presence and collaborative views, plus server-sent events for streaming on the stateless tier.
Live queries with
pywire-dbA query re-renders every page that shows it when its data changes, across workers. SQLAlchemy and SQLModel first, the Django ORM later, and
invalidate()for raw SQL.Forms
Forms bound to a Pydantic model, one set of validation rules for the browser and the server, debounce defaults, and file uploads.
Docs for coding agents
An
AGENTS.mdin every new app, an agent skill for building with pywire, guides on structuring complex apps, and reference apps that show the patterns.SaaS starter app
The
saastemplate becomes a reference app with auth, teams, settings, billing hooks and email.Deploy from CI
pywire deployreads config from the environment, prints--jsonand returns meaningful exit codes.Testing
A test client over a real WebSocket,
client.login(), events fired from CSS selectors, HTML snapshots, and fixtures loaded from.wirefiles.Observability
An OpenTelemetry span per event, a metrics endpoint, and traces that survive reconnects.
Editor support for components
Prop completion, go-to-definition on component tags, and quick fixes from
pywire check --fix.WebTransport by default
The WebTransport transport is built and falls back to WebSocket. It becomes the default once Hypercorn and Starlette support HTTP/3 and hosts pass WebTransport through, with the same middleware as WebSocket.
Flask and Django
Guides for mounting pywire inside an existing Flask or Django app.
Community
A contributor guide, good first issues, a Discord, and RFCs in GitHub Discussions.
Later
The last steps to 1.0, and ideas for after it.
Stability policy
Semantic versioning, a deprecation window and a documented public API.
- After 1.0
Polyglot islands
Drop a React, Svelte or Vue component, or a web component, into a page.
pywire buildeither runs the whole build or plugs into the one you have. - After 1.0
Agent UI add-on
An official add-on for AI features: a chat panel whose agent can read the page, fill forms and click through flows with the user's permission, and rearrange the layout when asked.
A plugin API
Custom directives and hooks, replacing today's
connect_*helpers with a supported API.Build-time rendering
Pages with nothing interactive prerendered at build time, image optimization, and constant folding in the compiler.
A profiler
Time and memory for every lifecycle phase of a page, in the dev tools.
More editors
JetBrains, Neovim and Zed setups on top of the language server and tree-sitter grammar.
- After 1.0
Desktop and mobile apps
Native desktop and mobile apps from the same
.wirecode, based on the pywire-shell prototype.
What 1.0 means
1.0 ships when all of these are true.
- No open correctness bugs in components, reactivity or forms
- Every core feature works on server and edge, with a published capability table
- Auth, security, testing and observability add-ons at 1.0 alongside the core
- Real-time between users: shared state, presence and rooms
- Live data queries and a settled FastAPI integration
- A published stability policy, with docs and tutorial that match the API exactly
- A reference SaaS app built on pywire
- A handful of regular contributors beyond the maintainer
How it's built
pywire has one maintainer, and AI coding agents write most of the code. Every change is reviewed by the maintainer and has to pass CI, including unit, client and browser end-to-end tests, before it merges. Agents are taking over routine fixes and speeding up feature work.
Get involved
Priorities follow what people ask for. Start a discussion on GitHub, or support the maintainer if pywire saves you time.