Making Direct Messages Reliable and Fast
instagram-engineering.com
instagram-engineering.com
They have a client-side cache for the whole app that you can optimistically update, all network requests run through that, it handles rolling the updates back when responses come in, etc.
Examples in the JS ecosystem that I am familiar with include Apollo and Relay, and urql is working on this.
Well, the client is probably the easiest and the most boring piece of the puzzle. What you do in the backend matters.
https://cdn-images-1.medium.com/max/2400/1*ttu76ysGchnhH3CyT...
Edit: although now I think about it, if you go that route you effectively have to do the same timestamp ordering resolution on the server too.. so probably more complicated than just keeping a global ordering!
For instance, if you add photo upload to your app, people will complain if it doesn’t support multi-photo upload, varying sizes, and client side photo filters.
The bar is set very high. It’s taken me a whole year to build a website + app combo in my spare time that has all the expected bells and whistles on top of the app’s regular functionality (social login, site tours, optimistic states, skeleton loading, push notifications, global type agnostic search, etc). MVP took two months but every time I showed to people, the reaction was always “why isn’t it autosuggesting content? Where is the explore page? Why can’t I login with my Facebook, why aren’t you saving drafts while I create posts in case my computer crashes, etc).
It really is a ton of effort to turn a simple idea into reality
I recently “gave up” on building my own site and just pay for a Shopify site now (only an option if you’re in e-commerce) and I’ve been blown away by how easy and high quality it is, and $30/month is honestly way cheaper than the time it’d take me to create and maintain a similar site. There are plenty of alternatives to Shopify that are competitive too I understand.
Perhaps it is worth your while to explore outsourcing so that your own time is not the limiting factor!
In a way the fractured nature of the web serves the big organizations with the resources to build things that are 'clean' experiences across every platform.
While I doubt it was by design it certainly benefits them now.
Thank you!
I though Zuck announced they were merging everything into an unified system?