Cached at:
09/18/26, 12:13 AM
# Build cross-platform apps in Python | Flet
Source: [https://flet.dev/](https://flet.dev/)
[Meet Flet 1\.0](https://flet.dev/blog/flet-1-0)
## Your next app\. Built inPython\.
Build beautiful web, desktop, and mobile apps from one Python codebase\.
No frontend experience required\. Just Python\.
One codebase\. **Make yourself at home\.**
- iOS
- Android
- Windows
- macOS
- Linux
- Web
A SIMPLE EXAMPLE
## Your first Flet app\.
Start with a simple counter to see how Flet turns Python code into an interactive app\.
1. ### Build the interface Use ready\-made controls for the text and button\. Arrange them with Python\.
2. ### Add the behavior Connect the button to a Python function that increases the count\.
TRY IT YOURSELF
[Try online](https://studio.flet.dev/gallery/getting-started/example/apps/templates/basic_counter)
Open Flet Studio\. No installation needed\.
[Try locally](https://flet.dev/docs/getting-started/installation)
Follow the installation guide for uv or pip\.
```
import flet as ftdef main(page: ft.Page): counter = ft.Text("0", size=50, data=0) def increment(e): counter.data += 1 counter.value = str(counter.data) page.floating_action_button = ft.FloatingActionButton( icon=ft.Icons.ADD, on_click=increment ) page.add( ft.Container( content=counter, alignment=ft.Alignment.CENTER, expand=True, ) )ft.run(main)
```
flet run counter\.py
BUILT FOR THE WHOLE JOURNEY
## More than a pretty interface\.
The controls, libraries, and tools to take your app from an experiment to something you ship\.
### Good\-looking Python GUIs
150\+ controls and services\. Layouts, navigation, forms, and dialogs, with customizable colors, typography, and themes\.
[Explore the controls](https://flet.dev/docs/controls)
### Your Python libraries\. On mobile\.
Bring NumPy, pandas, Pillow, and cryptography along\. Prebuilt packages for iOS and Android save you the work of compiling native dependencies\.
[Browse Python packages](https://flet.dev/docs/reference/binary-packages-android-ios)
### Ready to ship
Package your app for desktop, mobile, and web with flet build\. Prepare it for distribution, including the App Store and Google Play\.
[Build and publish](https://flet.dev/docs/publish)
### The web, your way
Run Python in the browser with Pyodide and WebAssembly, or keep your code on a server and send real\-time UI updates\.
[Explore web deployment](https://flet.dev/docs/publish/web)
### Test your app
Write pytest tests that tap buttons, enter text, and check user flows in your packaged app\. Catch visual changes with screenshots on iOS and Android\.
[Test your app](https://flet.dev/docs/getting-started/integration-testing)
### Give your AI the right context
Connect your coding assistant to Flet MCP for version\-specific API information and tools to find examples, icons, and CLI options\.
[Connect Flet MCP](https://flet.dev/docs/cookbook/flet-mcp)
### Make it your own
Compose custom controls in Python or wrap Flutter packages in extensions to add new UI components and platform integrations\.
[Build an extension](https://flet.dev/docs/extend/user-extensions)
### Build for more people
Support screen readers with labels and custom semantics\. Add keyboard shortcuts and inspect the accessibility information your UI exposes\.
[Explore accessibility](https://flet.dev/docs/cookbook/accessibility)
MEET FLET STUDIO
## An idea is a great place to start\.
Open your browser\. Pick an example, write some Python, or ask the AI agent for a hand\. Run your app and share what you make\.
[Create in Studio](https://studio.flet.dev/)No installation required\.
01
### Find your starting point
Explore the Gallery and make an example your own\.
02
### Make it work your way
Edit the code, get help from AI, and see your app run\.
03
### Share what you made
Send a link, or download your project and keep building locally\.
[Explore the Gallery](https://studio.flet.dev/gallery)