Using Vercel rewrites as a reverse proxy
Contents
The following self-hosted proxy isn't provided by PostHog, so we can't take responsibility for it! If unsure, we recommend using our managed reverse proxy.
If you are using the EU cloud then use
euinstead ofusin all domains (e.g.us.i.posthog.com->eu.i.posthog.com).Avoid using generic or common path names like
/analytics,/tracking,/ingest, or/posthogfor your reverse proxy. They will most likely be blocked. Instead, use a non-obvious path name or something random and unique to your application that's unlikely to appear in a filter list.
Vercel supports rewrites which we can use as a reverse proxy. Create a vercel.json file and add a rewrites object from a custom route.
Note: Some frameworks, like T3 app, don't support Vercel rewrites well. In this scenario, we recommend trying another proxy method.
Once done, set the /<ph_proxy_path>/ route of your domain as the API host in your PostHog initialization like this:
Once updated, deploy your changes on Vercel and check that PostHog requests are going to /<ph_proxy_path>/ by checking the network tab on your domain.