Analytics & Tracking
PostHog Setup Perth
I'm Brad Farleigh, a Perth developer who implements product analytics. GA4 tells you which campaign brought someone to the site. PostHog tells you what they did after they arrived, and where they gave up.
Email hello@bradfarleigh.com or use the live chat. I don't take phone calls, so everything is in writing from the start.
What PostHog gives you
PostHog is an open-source product analytics platform with events, funnels, retention, user paths, session replay, feature flags, experiments, surveys and error tracking in one place. It runs as a cloud service in the US or EU, or self-hosted if you need that.
The useful difference from GA4 is the unit of analysis. PostHog works with identified users and accounts rather than sessions and traffic sources, which is what you need when the question is "why do trial accounts not convert" instead of "which keyword brought them in".
What setup involves
- Cloud or self-hosted, and which region. Based on where your users are, where your data has to live, and how much event volume you expect. The wrong choice here is expensive to undo.
- Install the SDK.
posthog-jsfor the browser, the React or Next.js SDK for apps, Node or Python on the server, or the WordPress plugin. On Next.js, pageviews need to be wired to the router or client-side navigation disappears from the data. - An event taxonomy. A naming convention that survives new features, such as
checkout_startedandcheckout_completed, with a short list of properties per event. This is the part that decides whether the data is still usable in a year. - Identity.
identify()on login, anonymous-to-identified stitching, and group analytics if you sell to companies and need account-level reporting. - Session replay with masking. Inputs masked, sensitive elements blocked, retention set deliberately. Replay is valuable and it is also the fastest way to capture something you shouldn't.
- Reverse proxy. PostHog served from a subdomain of your own site, through a Cloudflare Worker, a Next.js rewrite or nginx. Without it, a meaningful share of events never arrives.
- Funnels, retention and dashboards. Built around decisions someone actually makes, not a wall of charts nobody opens.
- Cost and volume controls. Autocapture is noisy. Sampling, retention limits and billing caps keep the bill predictable, especially on a high-traffic marketing site.
- Privacy settings. Consent behaviour, IP handling, PII redaction and the paperwork that goes with it, documented so your next developer doesn't have to guess.
PostHog or GA4?
They are not competitors, and treating them as one usually produces a bad setup for both.
- GA4 answers attribution questions: which channel, campaign and landing page produced the session and the conversion.
- PostHog answers product questions: which step in onboarding loses people, which feature predicts retention, which accounts are close to churning.
- Running both is normal. GA4 stays the marketing record. PostHog becomes the product record.
- Neither replaces your backend data. Orders, subscriptions and revenue should still be checked against the source of truth.
Migrating from Mixpanel, Amplitude or a pile of custom events
Most migrations fail on naming, not tooling. The work is:
- Inventory the events you actually use, and delete the ones nobody has queried in a year
- Map old names and properties onto the new taxonomy
- Run both platforms in parallel long enough to sanity-check the numbers
- Rebuild the handful of dashboards people open, and skip the rest
- Keep a history export for reference rather than trying to import everything
What does it cost?
Every job starts with the diagnostic: a review of what you're trying to answer, what's currently tracked, and what the data can and can't support. Usually within 3 business days.
Then you get a fixed quote in dollars, not hours, and no GST is added. Work starts on a deposit. There's more on how a job runs on Working With Me.
Why work with me
- 17+ years building for the web, including the front-end work where analytics actually gets installed.
- I work in Next.js, React, TypeScript and WordPress, so tracking goes in properly rather than through a tag manager workaround.
- I already do this work. PostHog fits alongside the GA4 and GTM audits I run, and the same care about event design applies.
- I build tools. I've shipped my own audit and mapping tools, including the free GTM Auditor.
- Diagnostic first, then a fixed quote.
Ready to see what users actually do?
Email hello@bradfarleigh.com or use the live chat, and tell me the three questions you wish your analytics could answer. I'll book in the diagnostic.
FAQ
Do I have to replace GA4 with PostHog?
No, and I usually don't recommend it. GA4 is built around marketing attribution. PostHog is built around what users do inside the product. Most teams run both and keep each one for the questions it answers well.
Should we use PostHog Cloud or self-host it?
Cloud, unless data residency, procurement or volume makes self-hosting worthwhile. Self-hosting means running ClickHouse, Kafka and the rest of the stack yourself, and that is real ongoing operations work rather than a one-off install.
How long does PostHog setup take?
Basic tracking can be live in a day. A considered event taxonomy, session replay masking, reverse proxy, funnels and dashboards take longer, and the difference shows up six months later when someone tries to answer a question from the data.
Will ad blockers stop PostHog collecting data?
Often, yes. A reverse proxy that serves PostHog from your own domain recovers most of those events. It is one of the first things I set up rather than a later optimisation.
Can session replay record without capturing passwords or card details?
Yes. Inputs are masked by default and I add explicit block rules for anything sensitive. Replay is only useful if you can watch it without creating a privacy incident.
Is PostHog compliant with the Privacy Act and GDPR?
It can be configured that way: EU hosting for EU users, a data processing agreement, consent handling and IP settings. I set up the technical side and document it. I'm not your lawyer and I don't give legal advice.
Can you migrate our existing events from Mixpanel or Amplitude?
Yes. The work is mapping old event names and properties to a new taxonomy, running both in parallel for a while, and rebuilding the dashboards people actually use. History exports can be kept for reference.
Do you set up feature flags and experiments?
Yes. Flags, gradual rollouts, A/B tests and the guardrail metrics that stop an experiment from being read wrongly.
Does it work on WordPress as well as Next.js?
Yes. There is a WordPress plugin, or a manual snippet if you want tighter control. On Next.js and React I install the SDK and wire pageviews to the router so client-side navigation is tracked properly.