Flet 1.0 ships Python apps across six platforms after a ground-up rewrite

Feodor Fitsner's four-year project reaches a stable release with Flutter rendering, mobile Python packages and a planned services layer.

By · Published

Primary source: Flet

Why it matters

Flet is testing whether Python can serve as a practical full application stack across web, desktop and mobile. Its planned Studio and Fletbase services also give Fitsner a path to build a business around an Apache-licensed framework.

A laptop displaying Python code surrounded by multiple screens showing a consistent user interface, representing cross-platform development.

Flet founder Feodor Fitsner released Flet 1.0 on September 15th, marking the first stable version of his open-source framework for building web, desktop and mobile applications from one Python codebase.

The release caps a four-year bet by Fitsner, a longtime .NET developer who founded the continuous-integration provider AppVeyor in 2011. He started Flet in 2022 around a plain thesis: a Python developer should be able to build an application for iOS, Android, Windows, macOS, Linux and the web without learning a separate frontend stack for each destination.

That promise is broad enough to invite skepticism. Cross-platform frameworks routinely trade native control, package size or startup performance for developer convenience. Fitsner has spent the run-up to 1.0 rebuilding the machinery underneath Flet rather than treating a stable version number as a marketing exercise.

Fitsner rewrote Flet before calling it stable

Flet grew out of Pglet, an earlier web framework designed around multiple programming languages. As Flet became Python-centric and expanded into mobile and desktop development, those inherited decisions became a constraint.

In the June 2025 alpha announcement, Fitsner described mounting technical debt and architectural complexity, then explained why he chose a ground-up rewrite while the community was still small enough to absorb breaking changes. The rewrite moved controls to Python dataclasses, added a declarative interface alongside Flet's existing imperative style, introduced automatic UI updates and replaced JSON messages between Python and Dart with a binary MessagePack protocol.

Flet renders its interface through Flutter while developers write their interface and application logic in Python. Packaged applications can bundle Python 3.12, 3.13 or 3.14, and Flet maintains mobile builds for libraries including NumPy, pandas, Pillow, SciPy and cryptography. On the web, developers can run Python in the browser through Pyodide and WebAssembly or keep Python on a server and send interface updates to the client.

The Flet repository had about 16,800 GitHub stars and 692 forks at publication. Flet says the project has passed 9 million PyPI downloads, 100 contributors, 1,000 merged pull requests and 6,000 Discord members. Those figures describe open-source reach, rather than production adoption: Flet has not published revenue, paying-customer counts or the number of applications distributed through app stores.

The production claim comes with a migration bill

Fitsner says Flet 1.0 is ready for production applications, pointing to automated tests covering the Python SDK, Flutter controls, packaged applications and device interactions across desktop and mobile targets. Flet also says changes to its interface-diffing system produced gains of up to 6.7x in its own benchmarks, while an in-process bridge removed sockets from communication between Python and Dart in packaged native applications.

Existing users still face substantial porting work. The migration guide says 1.0 is not a drop-in replacement for Flet 0.28. The stable release collects changes developed across the 0.70 alpha, 0.80 beta and 0.86 packaging releases, including renamed APIs, a revised service model and the removal of older compatibility shims.

The most consequential change is a single-threaded event loop. Flet 0.28 sent synchronous event handlers to a thread pool. Version 1.0 runs them directly on the application's event loop, so blocking work can freeze interface updates until developers convert it to asynchronous code or move it to another thread.

Mobile performance will remain an important test of Fitsner's production claim. In a July 5th GitHub issue, one developer reported cold starts of roughly 10 to 13 seconds for an Android application built with Flet 0.85.3. That report covers one application and predates the final release, so it is not an independent benchmark of 1.0. It does show the class of problem Flet must consistently solve if Python developers are going to ship consumer-facing mobile software rather than prototypes and internal tools.

Flet competes inside Python with established projects such as Kivy, which also targets desktop and mobile platforms, and Qt for Python, the official Python bindings for Qt. Flet's pitch is a tighter route from Python code to Flutter-rendered applications, with packaging, testing and web deployment brought under the same project.

The open-source framework is becoming a product funnel

Fitsner has already built one durable developer-tools company without outside capital. AppVeyor describes itself as a profitable, self-funded Canadian company, though that does not establish how Flet itself is financed.

His intended business direction has been visible since Flet's first year. In a 2022 licensing discussion, Fitsner said Flet would remain free under the Apache 2.0 license and raised the possibility of offering services around the framework if developers wanted them.

The roadmap attached to 1.0 gives that idea a concrete shape. Flet Studio already lets developers edit, run, share and download Flet projects in a browser, with an AI agent available to help generate code. The Flet MCP server supplies coding assistants with version-specific documentation, examples, icons and command-line information.

Fitsner is also planning Fletbase, a collection of backend and deployment services that could include cloud packaging, app-store publishing, static hosting, databases, file storage and authentication. Flet has not announced pricing or a launch date for those services.

That planned layer explains the strategic value of reaching 1.0. A stable, permissively licensed framework can attract Python developers at the point where they begin an application. Studio, cloud builds and managed backend services can follow those projects as they move toward distribution, giving Fitsner a commercial path that does not require closing the underlying framework.

Flet 1.0 therefore places a heavier obligation on stability than the usual open-source milestone. Fitsner is asking developers to trust one project with interface code, native packaging, web deployment and mobile Python dependencies. The rewrite gave him a cleaner foundation for that promise. The next measure is whether Flet can make the difficult parts of shipping disappear often enough that Python developers stay for the services around it.

Reader comments

Conversation for this story loads after sign-in.