Tenho tentado descobrir como hospedar tudo por conta própria para poder escapar do capitalismo, e tem sido difícil.
Economias de escala e capitalismo andam de mãos dadas. Quanto maior a empresa, mais barato e melhor o serviço que ela pode oferecer. Tenho que fazer alguns sacrifícios para dizer não a esses monopólios.
Passei meu tempo aprendendo e mexendo, realmente espero que valha a pena.
Nas últimas semanas, testei muitas stacks para alcançar sincronização cross-platform e local-first. Isso inclui plataformas nativas, RN Expo, LegendState, Flutter, RxDB, Powersync, Appwrite, MongoDB, Realm e Supabase. Pesquisei sobre Brick, WatermelonDB, IndexDB, etc. Também entendi a diferença entre todas essas soluções e como posso combiná-las. Por exemplo, Expo com LegendState com Supabase/Appwrite, Flutter com Supabase + Powersync/ElectricSQl, etc.
No fim, percebi que, se eu usar qualquer plataforma, digamos Flutter (do Google), RN (do Facebook) ou SwiftUI, Kotlin, etc, você escolhe. Ainda é muita dependência de plataforma. Se eles não a mantiverem ou começarem a cobrar ou mudarem suas políticas, ficarei refém. Especialmente se eu passar meu tempo construindo para a Apple para melhorar a App Store deles lançando um ótimo app usando o SwiftUI deles, sinto que estou apenas trabalhando para eles.
Sei que alguns desenvolvedores simplesmente abraçam isso. Eles usam o que é conveniente para lançar rapidamente um MVP. Mas eu ainda não quero fazer isso. Não quero usar Flutter com Firebase só porque é conveniente, escalável e relativamente econômico. Ignorando como o Google, a empresa, faz perfilamento e rastreamento de usuários para lucrar com a gente, como se fôssemos idiotas.
Portanto, concluí que a única solução é a Web. Como sempre foi. A tecnologia Web é estável, e não preciso ler páginas de Termos de Serviço só para saber que posso ter meu projeto encerrado aleatoriamente porque não sigo as regras do monopólio deles.
Se, no fim, um framework cross-platform precisa de compilação de qualquer forma, construir um app web primeiro e depois envolvê-lo com Capacitor apenas para lançá-lo na App Store e na Google Play Store faz todo o sentido. Afinal, elas devem ser tratadas como prioridade secundária de qualquer maneira.
Nunca foi sobre desempenho do dispositivo, API do dispositivo, nem multi-thread. É uma questão de orgulho e do objetivo de alcançar algo grande.
abcd.com é o mesmo que google.com, e eu deveria começar por aí.