Lots of water.
You have centralised frontend architecture with S3 serving frontend resources.
Only messaging looks decentralized but it barely covered in the article.
the app is provided over S3 because as a webapp, it is a simple way to make it available to users. ultimately, making it easier to get started. like with most solutions of this nature, its most secure when selfhosted. selfhosting options: https://positive-intentions.com/blog/docker-ios-android-desk...
the chat app itself can be a whole separate discussion. here are some links with more information. messaging app: https://positive-intentions.com/docs/projects/chat github: https://github.com/positive-intentions/chat