* Or inline via inject script (preferred for CF Pages static sites). * * Config placeholders replaced by scripts/build-snippet.py: * phc_yPjESTZrpWguzEWMhE26k3pSye7us47br6gU9QfMf9pH https://us.i.posthog.com https://us.posthog.com 2026-05-30 */ (function () { 'use strict'; var API_KEY = 'phc_yPjESTZrpWguzEWMhE26k3pSye7us47br6gU9QfMf9pH'; var API_HOST = 'https://us.i.posthog.com'; var UI_HOST = 'https://us.posthog.com'; var DEFAULTS = '2026-05-30'; if (!API_KEY || API_KEY.indexOf('REPLACE') !== -1 || API_KEY.indexOf('__POSTHOG') !== -1) { if (typeof console !== 'undefined') { console.warn('[PostHogBuddy] Missing POSTHOG_API_KEY — analytics disabled.'); } return; } // Skip local/dev hosts var host = (typeof location !== 'undefined' && location.hostname) || ''; if ( host === 'localhost' || host === '127.0.0.1' || host.indexOf('.local') !== -1 || host.indexOf('pages.dev') !== -1 ) { return; } // Resolve site label: data-site on this script, or hostname var current = document.currentScript; var site = (current && current.getAttribute('data-site')) || (window.__POSTHOG_SITE__) || host.split('.')[0] || 'unknown'; var domain = (current && current.getAttribute('data-domain')) || (window.__POSTHOG_DOMAIN__) || host || 'unknown'; // Official PostHog snippet bootstrap !(function (t, e) { var o, n, p, r; e.__SV || ((window.posthog = e), (e._i = []), (e.init = function (i, s, a) { function g(t, e) { var o = e.split('.'); 2 == o.length && ((t = t[o[0]]), (e = o[1])); t[e] = function () { t.push([e].concat(Array.prototype.slice.call(arguments, 0))); }; } ((p = t.createElement('script')).type = 'text/javascript'), (p.crossOrigin = 'anonymous'), (p.async = !0), (p.src = s.api_host.replace('.i.posthog.com', '-assets.i.posthog.com') + '/static/array.js'), (r = t.getElementsByTagName('script')[0]).parentNode.insertBefore(p, r); var u = e; for ( void 0 !== a ? (u = e[a] = []) : (a = 'posthog'), u.people = u.people || [], u.toString = function (t) { var e = 'posthog'; return ( 'posthog' !== a && (e += '.' + a), t || (e += ' (stub)'), e ); }, u.people.toString = function () { return u.toString(1) + '.people (stub)'; }, (o = 'init capture register register_once register_for_session unregister unregister_for_session getFeatureFlag getFeatureFlagResult isFeatureEnabled reloadFeatureFlags updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on onFeatureFlags onSessionId getSurveys getActiveMatchingSurveys renderSurvey canRenderSurvey getNextSurveyStep identify setPersonProperties group resetGroups setPersonPropertiesForFlags resetPersonPropertiesForFlags setGroupPropertiesForFlags resetGroupPropertiesForFlags reset get_distinct_id getGroups get_session_id get_session_replay_url alias set_config startSessionRecording stopSessionRecording sessionRecordingStarted captureException loadToolbar get_property getSessionProperty createPersonProfile opt_in_capturing opt_out_capturing has_opted_in_capturing has_opted_out_capturing clear_opt_in_out_capturing debug'.split( ' ', )), (n = 0); n < o.length; n++ ) g(u, o[n]); e._i.push([i, s, a]); }), (e.__SV = 1)); })(document, window.posthog || []); posthog.init(API_KEY, { api_host: API_HOST, ui_host: UI_HOST, defaults: DEFAULTS, person_profiles: 'identified_only', capture_pageview: true, capture_pageleave: true, persistence: 'localStorage+cookie', // Cross-domain cookies only help for subdomains of the same eTLD+1. // Portfolio uses many different domains → keep false; use identify() after login. cross_subdomain_cookie: false, }); // Super properties on every event — filter portfolio by site/domain in PostHog posthog.register({ site: site, domain: domain, portfolio: 'deondon', }); // Optional custom event helpers used by product landings window.phCapture = function (event, props) { try { posthog.capture(event, props || {}); } catch (e) {} }; // Autocapture-friendly data attributes convention: //

$497 / month

Best for operators running multiple Pipelines. Validate, iterate, validate again. Unlimited presale pages.

$497 lifetime

One-time. Free updates to the skill for life. Best for builders who want the tool in their permanent kit.

Wanna join me on the road to El Dorado?

Most won't make it. With Pipeline, you've got the best chance. Join the waitlist — first batch gets lifetime pricing locked.

One email when we open. No spam.