
Which is right for you?
Choose Formo if…
• You need wallet connects, signatures, and transactions autocaptured without custom tracking code.
• You want marketing and onchain attribution from a UTM or referral to wallet volume and revenue.
• You want wallet profiles with net worth, tokens, DeFi positions, labels, and lifecycle stage.
Use both if…
• You use PostHog error tracking to debug your app, and track wallets and revenue in Formo.
• You run PostHog in-app surveys, and use Formo for onchain attribution.
• You sync PostHog to a warehouse with batch exports and query Formo in SQL Explorer or the API.
Choose PostHog if…
• You need feature flags and A/B experiments in the same tool as your analytics.
• You want session replay and heatmaps to see how users move through your UI.
• You must self-host: PostHog offers an open-source self-hosted deployment.
• You build a product with no wallet connects or onchain transactions to track.
Last verified October 2, 2026. Formo publishes this comparison and checks PostHog details against public pricing pages and docs. Sources: PostHog pricing, PostHog batch exports, PostHog self-hosting, Formo pricing, Formo docs.
Formo vs PostHog, in depth
PostHog is a product suite; Formo is crypto analytics
PostHog is an all-in-one product platform. PostHog combines product analytics, web analytics, session replay, feature flags, experiments, surveys, error tracking, and a data warehouse with SQL, and offers an open-source self-hosted option. For an engineering-led team that wants many developer tools under one bill, PostHog covers a lot of ground with one SDK and one billing account.
Formo makes a different bet: in a crypto app, the user is a wallet. Formo autocaptures wallet connects, chain switches, signatures, and transactions next to pageviews, UTMs, and referrals, with no custom capture calls. Each wallet gets a wallet profile, and revenue tracking connects volume and revenue to the source that brought the wallet in.
PostHog can track wallet activity only as custom events that your engineers define. Formo makes wallets the core data model across all major EVM chains and Solana, with product analytics, dashboards and BI, a SQL Explorer, and MCP built on that model.
Distinct IDs and person profiles vs wallet profiles
PostHog identifies users with a distinct ID. The PostHog JavaScript SDK captures anonymous events by default and creates a person profile when your code calls identify(). PostHog documents that anonymous events can be up to 4x cheaper than identified events, so teams often choose which users get a profile. A wallet address in PostHog is a property or distinct ID that your team sets.
Formo starts with an anonymous visitor ID in a first-party cookie and stitches that visitor to each wallet address the visitor connects, with no identify() call. One journey covers the first visit, the wallet connect, and every transaction after it.
Formo wallet profiles add onchain context that PostHog person profiles do not hold: net worth, token holdings, DeFi positions, labels, onchain history, and a lifecycle stage (New, Returning, Power user, At Risk, Churned, or Resurrected). Teams can filter Formo funnels, retention, and segments by any of these properties.
Pricing model: per-event, per-product vs MAUs
PostHog bills each product separately by usage after a monthly free allowance. Product analytics includes 1 million free events, then $0.00005 per event up to 2 million and $0.0000343 per event up to 15 million. Identified events are a separate add-on, with 1 million free and $0.000198 per event up to 2 million and $0.0000697 up to 15 million.
Formo bills by MAUs, which are unique wallet addresses with an active session. Growth is $199/month billed yearly ($249/month billed monthly) for up to 5,000 MAUs, and Scale is $399/month billed yearly ($499/month billed monthly) for up to 10,000 MAUs. Every Formo plan includes unlimited events and visitors, so wallet connects, signatures, and transactions add nothing to the bill.
PostHog cost rises with every extra event, identified event, replay, or flag request, at lower rates as volume grows. Formo cost does not change with events; the price changes only as monthly active wallets grow.
Attribution: UTMs and ad spend vs onchain revenue
PostHog web analytics reports channels, referrers, and UTM parameters. PostHog marketing analytics, an opt-in beta, imports spend from Google Ads, Meta Ads, LinkedIn Ads, TikTok Ads, and other ad platforms and matches campaigns to conversion goals by utm_campaign and utm_source. Teams can then compare ad cost with conversions inside PostHog.
PostHog attribution stops at the events your app sends. A swap or deposit that settles onchain reaches PostHog only if your code captures it with a value. PostHog has no native view of volume per wallet, revenue per wallet, or retention by wallet tied to the campaign that acquired it.
Formo marketing attribution and onchain attribution use first-touch and last-touch models. Formo ties UTMs, referrers, referral codes, ad click IDs, and campaigns to the wallets they brought in, then to the volume, revenue, and retention of those wallets. A growth team can rank campaigns by onchain revenue without building a data pipeline.
When PostHog is the better choice
PostHog is the better choice when feature flags and A/B experiments must live in the same tool as your analytics, or when session replay and heatmaps are how your team debugs UX. Formo has no session replay, feature flags, experiments, or heatmaps.
Pick PostHog when you must self-host your analytics, when you run in-app surveys, or when you want a free tier before you pay. PostHog also fits products with no wallet connects or onchain actions, such as a SaaS dashboard, where custom events cover what you need.
PostHog also suits teams that want one vendor for analytics, replay, flags, error tracking, LLM analytics, and a data warehouse, and accept per-product usage billing for that breadth. Engineering teams that prefer to write SQL against raw events and to control every capture call will find PostHog a natural fit, as long as wallet and onchain data is not the main question.
Running PostHog and Formo together
This does not have to be an either-or decision. Keep PostHog for session replay, feature flags, experiments, or in-app surveys your team relies on, and use Formo for crypto product and marketing analytics, wallet intelligence, and revenue tracking. Run them side by side while you evaluate. Formo starts collecting new data as soon as you install the SDK; its different data model means historical PostHog data will not transfer.
For a longer look at PostHog and Formo across tracking, pricing, and attribution for crypto apps, read the full analysis. Read the detailed Formo vs. PostHog analysis.

Add Formo next to PostHog
Install the Formo SDK in the same app that loads the PostHog snippet or posthog-js. The two do not conflict, and PostHog flags and replay keep running.
Rebuild only custom events
Formo autocaptures pageviews, UTMs, referrals, wallet connects, chain switches, signatures, and transactions. Recreate only your custom posthog.capture() events and actions.























