by doawoo on 5/10/2025, 6:26:59 PM
by account-5 on 5/11/2025, 12:17:58 AM
I replied to this 3 days ago even though it looks like hours ago now. Either way I've another question, that's similar.
If this is a local first app, why not use the sqlite database itself for state management? Powersync themselves talk about it here:
https://www.powersync.com/blog/how-local-first-simplifies-fl...
Flutter state management always seemed clunky and complicated to me. With the caveat I'm developing small projects in it that tend not to need complicated state management functionality.
by zerr on 5/10/2025, 8:16:23 PM
I wonder why Flutter didn't gain traction in US. It seems to be more or less popular in poor countries and even less in Europe. But in US it seems to be quite a no name. Why US is so JavaScript-centric?
by hosh on 5/10/2025, 10:31:47 PM
Let's be clear. This post describes an architecture that is offline-first, not local-first.
One of the main goals of local-first is so that the user of a local-first application owns their own data. (See Martin Kleppmann's paper on this).
As such, local-first applications don't necessarily have a concept of a central server. `git` is local-first, though most teams synchronize to a hub such as Github or Gitlab. This is a design principle to get away from having to sync to the cloud, making it more difficult to monetize as a SAAS. There seems to be a growing trend of people promoting offline-first applications as local-first, but structuring it to still lock people's data into their SAAS. (If you want to lock them in, then say so -- call it offline-first).
A true local-first mobile app would allow me to collaborate with someone in the same room using Bluetooth, even out somewhere where I don't have wifi, cell service or Starlink
See:
- https://martin.kleppmann.com/papers/local-first.pdf
- https://www.inkandswitch.com/essay/local-first/ (Same, but in html)
by sgt on 5/10/2025, 7:21:55 PM
Would this work with Flutter Web as well?
by account-5 on 5/7/2025, 5:20:22 PM
Why not just use sqlite instead of drift?
As a newer user of Flutter I found Riverpod to be extremely heavy and have a lot more mental overhead than using stateless widgets with Hooks.
Any particular reason you personally prefer Riverpod?