As we mentioned Flet here - it's been able to build web apps running completely in the web browser (Flutter + Pyodide). Here are a few examples: https://flet.dev/gallery - most of those apps there are client-side except "Controls gallery" and "Chat" which are server-side.
For web you can package Flet app to client-side (with pyodide, all Python logic runs in the browser, see an example here: https://gallery.flet.dev/todo/) and run as a server-side app (or server-driven) with Python logic running on the server (example: https://flet-controls-gallery.fly.dev/layout - notice faster loading compared to client-side one).
> If I'm writing Python that runs on the mobile device, it must talk to a server to read & write data. Doesn't this still require an API backend, database, cache, etc?
That's correct. Any backend service which provides Python API can be used when running Flet app on a mobile: FastAPI, Firebase, Supabase, Pocketbase, etc, but you use Python to call that which is awesome especially for beginner and non-web developers.
SEO - maybe, but IFAIK accessibility in Flutter web app shouldn't be an issue (I just saw this comment from someone on Flutter team: https://news.ycombinator.com/item?id=24922849). They've been recently doing a great job in terms of performance (compiling app to WebAssembly) and size. I agree that Flutter web is not good for building websites, but for web apps, especially those "internal" apps used by a small group of users, it's a pretty decent solution.
Flet (https://flet.dev) might be easier for backend devs as it doesn't assume any web experience at all. You use controls (aka widgets) with events (not request/response) and can build not only web, but desktop and mobile apps - all with a single codebase. Disclaimer: I'm Flet developer.
Flet (https://flet.dev) is a new GUI library for Python to write apps like that. It uses Flutter to render UI with a modern-looking Material design. Your app can be run as a desktop app and published as a web app (standalone with Pyodide or server-driven with built-in web server).
Hey, this is exactly how https://flet.dev works! :) There's a UI server written in Go, you write your program in Python which manipulates a virtual DOM with commands via WebSockets, and there's a Flutter client that renders UI from that DOM: https://flet.dev/blog#current-flet-architecture
I'd love to add other languages, but currently so busy with a top-notch Python support!
Congrats on the launch! Great project and nice execution!
Very similar to what we do on Flet: https://flet.dev
The major difference is that Flet uses Flutter to build UI and can target desktop, web and mobile. Also, we use WebSockets for communicating with the server which gives lower latency (the delay between a click on a button here https://pynecone.io/docs/getting-started/introduction and UI update could be annoying).
In the beginning, for mobile it's going to be a websocket to a Python server - kind of server-driven UI (SDUI) approach. Then we'll look into packaging everything into a standalone mobile app: https://flet.dev/blog/flet-mobile-strategy
For desktop using WebSockets within localhost doesn't really add a noticable overhead.
Flet! :) Creator of Flet is here. Could you fix the title please? I've been told that there is a discussion about Flet on HN, tried searching by "Flet", found only an old thread and thought "oh, well, OK then - must be a mistake".
Here you are: https://flet.dev - Electron alternative with Flutter-powered UI. We decided to focus on Python first to polish the idea, but Go and C# support are coming!
Right? I know Google has a habbit of dropping great projects, but, somehow, I believe in the future of Flutter on web :) Using Canvas + Skia + WebAssembly for rendering UI in the browser could look like a "wrong" approach today, but, hey, Google created the most popular browser, so who knows. They talk about their vision in this video: https://youtu.be/kCnYRhkfWHY. Flutter is great for web apps, not for web sites where SEO is important. And Google is actively working on better accessibility support - Accessebility Object Model (starting at 10:00 in that video) which is eventually could to be a new standard.
Another LiveView-like UI framework for Python: https://github.com/flet-dev/flet - created specifically for highly interactive real-time experiences. You build your UI from controls made of Flutter widgets and partial UI updates are passed to a browser via WebSockets.