# PostHog solution docs

- [Ad blockers eat a third of your analytics: proxy ingestion through your own domain](https://agenticboilerplate.com/cookbook/posthog/ad-blocker-reverse-proxy): Blockers match on hostnames, not behaviour. A first-party /ingest route handler forwards events to PostHog server-side and recovers most of the missing traffic.
- [Event names that still make sense in twelve months](https://agenticboilerplate.com/cookbook/posthog/event-naming-that-survives): Why analytics projects rot into five spellings of "signup", and the object_verb convention plus a typed catalogue that stops it.
- [Feature flags without the flicker](https://agenticboilerplate.com/cookbook/posthog/feature-flags-without-flicker): Client-side flags render the control experience first and swap it a beat later. Evaluate on the server, pass the decision down, and keep a bootstrap for the client hooks.
- [The identify race that empties your signup funnel](https://agenticboilerplate.com/cookbook/posthog/identify-race-conditions): Events fired before identify() stay on the anonymous profile forever. Here is why the merge is not retroactive, and the ordering that fixes it.
- [Server events versus client events, and when each one lies](https://agenticboilerplate.com/cookbook/posthog/server-vs-client-events): A browser event is a claim, a server event is a record. Which side to fire from, why serverless drops events without after(), and how to keep the two from double-counting.

---

Agentic Boilerplate: A Next.js repo your agent already knows. Free during launch, then $99 once.

- Site map for agents: https://agenticboilerplate.com/llms.txt
- Public API: https://agenticboilerplate.com/openapi.json
- Contact: agenticstudio@gmail.com
