One tag for every GA4 event: set it up once and forget it
Every new event means a new tag, a new trigger and a new container release. And so it goes, week after week, until the identical setups make you sick and the number of triggers grows in step with the number of tags. Here's a method where one tag handles every event at once, and an honest look at the trade-offs it brings. As a bonus I show something similar for setting up conversions, on the example of Google Ads.
My own consent system: $0 and two weekends
A do-it-yourself consent system: zero dollars and two weekends. Not because twenty bucks for a CMP hurts, but because I wanted the decision to come from the need and not the other way round. It also looked like a fun challenge - bolting consent onto a setup with no gtag and no web GTM. Here is what worked, what did not, and which of my own questions I closed along the way.
Pure server-side tracking: a tour of my setup
I skipped web GTM entirely, moved payload building into a Cloudflare Worker, and made GA4 a consumer of my data instead of its source.

