In order to build a Gmail client, I need access to the Gmail API. Well, it turns out Gmail API access is a little hard to get, understandably. It requires an independent, 3rd party security audit that may cost upwards of $15k. Ouch. Hit the first roadblock.
Google specifically mentions "the ability to access data from or through a third party server" necessitating the $15k-$75k security review. Prior to this point, the architecture I had in mind included a backend that helped classify emails into more categories than Gmail currently does (e.g. "requires action", "records/receipts", etc.) Improving the search in Gmail was another goal I had and it definitely requires a server to store and index the email data.
Constraints make us more creative. I realize I can actually build this classification engine on the client side. It will be a more interesting way to implement this feature anyhow. Improving search only on the client-side feels like a bigger challenge but there are ways I can improve the Gmail search without any backend changes.
Result: Scope reduction and new architecture that is only client-side.
Need to figure out how much I can store on the client (Android, IOS and web) and how to do that with Flutter.