When choosing between the Firebase version or the GCP version of tools, we tend to pick the Firebase version, as it's often simpler and nicer to work with.
App engine fills in the gaps in the increasingly smaller case where it's necessary for us to run our own APIs.
All comments, votes, and other actions live here as a highly-scalable, reliable, multi-region storage solution.
This is our primary database, though most of our actual data is stored in static storage. This database houses the metadata necessary for indexing and finding static data.
Certain events need to both happen asynchronously and also be guaranteed execution even in the face of errors. Pub/Sub accomplishes this miraculous feat.
Running background triggers based on events provides a simple, scalable way to create complex interactions.
The simplicity, freedom, and power provided by React is unparalleled. All our front-end work is done in React.
We use Firebase Auth for all authentication, Firestore as a client-side database for saving metadata, and Firebase Hosting for all of our application hosting needs.
We use Gatsby.js to render our website server-side for SEO purposes, and blazing fast load times. It also hydrates into a react app, so having dynamic functionality is a breeze.