Roadmap

What's being built for pywire, in order. pywire is pre-1.0, so expect breaking changes between minor versions until then.

Now: in progress Next: planned Later: 1.0 and after

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 $for get their own instance, props work 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() or producer() reaches every connected client, across workers. It works in one process by default and through Redis when REDIS_URL is 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.

    In a pull request#282
  • Performance

    Cheaper session saves, compressed stateless snapshots, gzip and Brotli responses, and published benchmarks.

  • Production add-ons

    pywire-secure for CSRF, security headers and rate limits. pywire.testing for testing pages. pywire-observability for request IDs, JSON logs, OpenTelemetry and Sentry.

    In pull requests#261#262#263
  • 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 check rules

    Checks 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-db

    A 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.md in 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 saas template becomes a reference app with auth, teams, settings, billing hooks and email.

  • Deploy from CI

    pywire deploy reads config from the environment, prints --json and 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 .wire files.

  • 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 build either 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 .wire code, 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.