Skip to main content

Flet Studio

Flet Studio is a browser-based editor for writing, running, saving and sharing Flet apps. Your Python code runs entirely in the browser via Pyodide — there is no Flet account required to try it, and no local install required to run something someone else built and shared with you.

Why it exists​

Flet Studio started as a tool we wanted for ourselves and kept being useful for things we hadn't planned. In rough order:

  • A playground that saves your work. Unlike a transient REPL or a paste-and-run sandbox, projects in Studio persist across sessions and across devices once you sign in.
  • A way to share small apps via a link. Send a colleague or someone on the Flet team a URL and they can open, run, and read the code without setting anything up. Handy for bug reports, design sketches, and "look at this control".
  • A gallery of Flet examples that you can actually edit. Browse examples, open one, tweak it, fork it into your own project — same editor, same runtime.
  • A zero-commitment way to try Flet. Before pip install flet, before reading the getting-started docs, you can write a few lines and see them run.
  • A dogfooding project. Studio's UI is itself a Flet app. Building it surfaces gaps in Flet and ideas for improvements, which feed back into the framework.
  • The base UI for future Flet services. Cloud packaging and publishing are on the roadmap — Studio is the surface those will plug into. (Today: editor only.)

How it works​

  • Your code runs in the browser. Flet Studio uses Pyodide — CPython compiled to WebAssembly — to execute your Python directly in the browser tab. Nothing you write is sent to a server to be run.
  • There is a Flet Studio backend, but it's only for the IDE itself — file storage, authentication, accounts, project metadata. Your app's Python code never executes on our servers; it executes client-side, in your browser, in Pyodide.
  • The rendering engine is the same one flet publish and flet build web produce. What you see in Studio is what you'd get from a published Flet static site — same controls, same layout, same web runtime.

Limitations​

Studio inherits the constraints of running Python in the browser. Most of these are covered in more detail in the static website publishing docs:

  • Pure-Python packages and Pyodide-built wheels only. Most of the Python ecosystem works, but packages with C/Rust extensions need a Pyodide build. See the Pyodide built-in packages list. Source-only sdists (no wheel) cannot be installed.
  • Single browser thread. No real threads. Long blocking work freezes the UI — prefer async I/O.
  • Browser sandbox. No access to your local filesystem, no shell, no access to local hardware that isn't exposed by the browser.
  • Performance. Pyodide is roughly 3×–5× slower than CPython for CPU-bound code.
  • Cold start. The first load fetches the Python runtime and any wheels you import, so initial load is slower than a native install. Subsequent loads are cached.

Does it replace local Flet development?​

No.

Studio is for trying Flet, prototyping small apps, sharing snippets, learning, and showing off ideas. For everything else — desktop and mobile builds, native packages, real multi-file projects, your favorite IDE and debugger, the full Python ecosystem without the Pyodide constraints above — install Flet locally and use flet run and flet build. See installation when you're ready to make the jump.