I’ve been trying to figure out how to self-host everything so that I can escape capitalism, and it has been hard.
Economies of scale and capitalism goes hand-in-hand. The bigger the company, the cheaper and better service they can offer. I have to make some sacrifices in order to say no to these monopolies.
I’ve spent my time learning and tinkering, I really hope it’s worth it.
For the past few weeks, I’ve tried a lot of stacks to achieve cross-platform, local-first synchronisation. That includes native platforms, RN Expo, LegendState, Flutter, RxDB, Powersync, Appwrite, MongoDB, Realm and Supabase. Looked into Brick, WatermelonDB, IndexDB, etc. Also, understanding the difference between all these solutions and how I can mix and match them. For example, Expo with LegendState with Supabase/Appwrite, Flutter with Supabase + Powersync/ElectricSQl, etc.
In the end, I figured, if I were to use any platform, say Flutter (by Google), RN (by Facebook) or SwiftUI, Kotlin, etc, you name it. It is still very much platform reliance. If they aren’t maintaining it or start charging or changing their policies, I will be held hostage. Especially, if I spent my time to build for Apple to enhance their App Store by releasing a great app using their SwiftUI, I feel like I’m just working for them.
I know some developers will just embrace it. They use what’s convenient to them in order to quickly launch an MVP. But I still don’t want to do that. I don’t want to use Flutter with Firebase just because it is convenient, scalable, and relative cost-effective. Ignoring how Google, the company, profiling and tracking users to make profit out of us, like we are dumb.
Therefore, I concluded, the only solution is the Web. Like it has always been. Web technology is stable, and I don’t need to read through pages of Terms of Service just to know that I might get randomly shut down for my project because I don’t follow their monopoly rules.
If, in the end, a cross-platform framework needs compilation anyway, building a web app first, then wrap it with Capacitor just to release it to App Store and Google Play Store makes perfect sense. As they should be treated as second class priority anyway.
It was never about device performance, device API, not multi-thread. It’s a matter of pride and the goal of achieving something big.
abcd.com is the same as google.com, and I should start from there.