Both of us are far more familiar with GitHub than Gitlab, and so for our first big project together decided to go with what we know here instead of figuring out something new (there are so many new things we need to figure out, might as well reduce the number of optionally new things, lol). We aren't currently taking advantage of GitHub Actions or very many other built-in features (besides Dependabot) but luckily it integrates very well with the other services we're using.
We feel the least confidence in choosing Google Analytics - neither of us have first-hand familiarity with tools like this and we mainly chose it because of it being so broadly used. Only being used to try and understand user behavior on the site better, I imagine in the future we'll need to use something that provides better visibility into this.
The new pricing model Algolia introduced really sealed the deal for us on this one - much closer to pay-as-you-go. And didn't want to spend time learning more about hosting/optimizing Elasticsearch when that isn't our core business problem - would much rather pay others to solve that problem for us.
The introduction of Orbs a few years ago has really streamlined CircleCI configuration files and made them really easy to work with. Haven't tried GitHub Actions and decided to go with what was familiar instead of trying something new. Tried to make AWS Codepipeline work a few years back on different projects and found it to be incredibly frustrating, lacking support for some of the most basic features and use cases.
Using on-demand read/write capacity while we scale our userbase - means that we're well within the free-tier on AWS while we scale the business and evaluate traffic patterns.
Using single-table design, which is dead simple using Jeremy Daly's dynamodb-toolbox library
Thundra's been great for helping us visualize data flow through our event-driven architecture, and has been key in helping us monitor overall application help and troubleshoot issues that have come up. I especially like the ease of configuring the Lambda instrumentation via their serverless plugin.
There is definitely a learning curve to working with Lambda vs a more traditional containerized solution, but my experience has been that the extra upfront work is worth it for all the built-in things you get. Makes operating our stack a breeze, and completely removes a whole swatch of concerns (OS security patches, etc.) that AWS handles for us.
Makes it so easy to reason about and manage the full lifecycle of serverless applications. The outstanding IaC you get from the Serverless Framework makes it very easy to wire everything up together in a fully-automated way - no manual steps needed to deploy a parallel instance of the entire stack from top to bottom.
We're using the following plugins and highly recommend each of them:
Have a few simple pub-sub needs in the application to separate out core pieces of logic and make the whole thing more event-driven. Will be looking into Event Bridge in the future to take advantage of the built-in replayability.
Another tool category none of us had a lot of familiarity with, right now we have a simple signup form for people who want to be notified of new features/changes to our site. Like our analytics tools, we'll be reevaluating once we have more advanced use cases.