Repolode
flet-dev

flet-dev/flet

Python framework for building web, desktop and mobile apps with a Flutter-based UI, no frontend experience needed.

Stars
17,392
Forks
732
Open issues
269
Last commit
13 hours ago

What is it?

Flet lets developers write both the interface and the application logic in Python. Apps built with it run on iOS, Android, Windows, macOS, Linux and the web, and the framework ships with more than 150 built-in controls covering layouts, forms, navigation and dialogs, styled with Material and Cupertino designs.

Flet supports two UI styles: declarative, where reusable components re-render when state changes, and imperative, where controls are updated directly. Python apps can run in the browser through Pyodide and WebAssembly, or keep their code on a server and push real-time UI updates to the browser. Libraries such as NumPy, pandas and Pillow can be used in mobile apps through prebuilt binary packages.

The project includes `flet build` for packaging apps for desktop, mobile and web distribution, and `flet test` for running pytest-based integration tests against packaged apps. Custom controls can be built by composing existing ones or by wrapping Flutter packages.

Key features

  • 01Single Python codebase targets six platforms: iOS, Android, Windows, macOS, Linux and web.
  • 02150+ built-in controls with Material and Cupertino styling.
  • 03Declarative and imperative UI styles are both supported.
  • 04Python apps can run in the browser via Pyodide or be served with real-time updates.
  • 05`flet build` packages apps for desktop, mobile and web distribution.
  • 06`flet test` runs pytest integration tests against packaged apps.

Use cases

  • Building internal tools or dashboards in Python without learning JavaScript or Dart.
  • Shipping a single Python app to desktop, mobile and web.
  • Creating mobile apps that use NumPy, pandas or Pillow.
  • Prototyping a GUI for a Python script or data workflow.

Quick start

  1. 1

    Install the flet package

    pip install 'flet[all]'
  2. 2

    Save the counter example as counter.py (copy the code from the README)

  3. 3

    Launch the app in a native desktop window

    flet run counter.py
  4. 4

    Optionally run the same app in your browser

    flet run --web counter.py

Things to know

  • Mobile packaging and some features need extra tooling such as flet build, which adds setup complexity.
  • Running Python on mobile with native libraries depends on Flet's prebuilt binary packages.

Topics

FAQ

What is flet?
Python framework for building web, desktop and mobile apps with a Flutter-based UI, no frontend experience needed. Flet lets developers write both the interface and the application logic in Python. Apps built with it run on iOS, Android, Windows, macOS, Linux and the web, and the framework ships with more than 150 built-in controls covering layouts, forms, navigation and dialogs, styled with Material and Cupertino designs.
Is flet free to use? What license does it have?
flet is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is flet still maintained?
Actively maintained. The last commit to flet was on Oct 19, 2026.
What can I use flet for?
Building internal tools or dashboards in Python without learning JavaScript or Dart. Shipping a single Python app to desktop, mobile and web. Creating mobile apps that use NumPy, pandas or Pillow. Prototyping a GUI for a Python script or data workflow.
How do I install flet?
Install the flet package: pip install 'flet[all]' Save the counter example as counter.py (copy the code from the README) Launch the app in a native desktop window: flet run counter.py Optionally run the same app in your browser: flet run --web counter.py
Where can I get flet?
The source code and installation instructions are on GitHub: https://github.com/flet-dev/flet

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects