posthog
🦔 PostHog provides open-source web & product analytics, session recording, feature flagging and A/B testing that you can self-host. Get started - free.
Top Related Projects
Simple, open source, lightweight and privacy-friendly web analytics alternative to Google Analytics.
Empowering People Ethically 🚀 — Matomo is hiring! Join us → https://matomo.org/jobs Matomo is the leading open-source alternative to Google Analytics, giving you complete control and built-in privacy. Easily collect, visualise, and analyse data from websites & apps. Star us on GitHub ⭐️ – Pull Requests welcome!
Umami is a modern, privacy-focused alternative to Google Analytics.
Quick Overview
PostHog is an open-source product analytics platform that helps teams understand user behavior and improve their products. It offers features like event tracking, funnel analysis, session recording, and feature flags, all while allowing companies to maintain control over their data by self-hosting the platform.
Pros
- Self-hosted solution, providing full data ownership and privacy
- Comprehensive feature set including analytics, session recording, and feature flags
- Open-source with a strong community and regular updates
- Flexible integration options with various frameworks and platforms
Cons
- Requires more setup and maintenance compared to SaaS alternatives
- May have higher infrastructure costs for large-scale deployments
- Learning curve for teams new to product analytics
- Some advanced features may require paid plans
Code Examples
- Initializing PostHog in a React application:
import posthog from 'posthog-js'
posthog.init('<YOUR_PROJECT_API_KEY>', {
api_host: 'https://app.posthog.com'
})
- Tracking a custom event:
posthog.capture('button_clicked', {
button_color: 'blue',
button_text: 'Sign Up'
})
- Identifying a user:
posthog.identify('user_id_123', {
email: 'jane@example.com',
name: 'Jane Doe'
})
- Using feature flags:
posthog.isFeatureEnabled('new_feature', {
send_event: true
}).then((enabled) => {
if (enabled) {
// Show new feature
} else {
// Show old feature
}
})
Getting Started
To start using PostHog, follow these steps:
- Sign up for a PostHog account or set up a self-hosted instance.
- Install the PostHog library in your project:
npm install posthog-js
- Initialize PostHog in your application:
import posthog from 'posthog-js' posthog.init('<YOUR_PROJECT_API_KEY>', { api_host: 'https://app.posthog.com' // Use your self-hosted URL if applicable })
- Start tracking events and using PostHog features in your code.
For more detailed instructions and advanced usage, refer to the official PostHog documentation.
Competitor Comparisons
Simple, open source, lightweight and privacy-friendly web analytics alternative to Google Analytics.
Pros of Plausible
- Lightweight and privacy-focused, with no cookies and GDPR compliance
- Simple, clean interface with easy-to-understand metrics
- Open-source and self-hostable with minimal resource requirements
Cons of Plausible
- Limited feature set compared to PostHog's comprehensive toolkit
- Less customizable and extensible for complex analytics needs
- Fewer integrations with third-party tools and services
Code Comparison
PostHog (Python):
from posthog import Posthog
posthog = Posthog(project_api_key='your_api_key', host='https://app.posthog.com')
posthog.capture('user_id', 'event_name', {'property': 'value'})
Plausible (JavaScript):
plausible('event_name', {props: {property: 'value'}})
PostHog offers a more robust API with various client libraries, while Plausible focuses on simplicity with a straightforward JavaScript snippet. PostHog provides more granular control over event tracking and user properties, whereas Plausible emphasizes minimal code for basic event tracking.
Empowering People Ethically 🚀 — Matomo is hiring! Join us → https://matomo.org/jobs Matomo is the leading open-source alternative to Google Analytics, giving you complete control and built-in privacy. Easily collect, visualise, and analyse data from websites & apps. Star us on GitHub ⭐️ – Pull Requests welcome!
Pros of Matomo
- More established project with a longer history and larger user base
- Offers both self-hosted and cloud-hosted options
- Stronger focus on data privacy and GDPR compliance
Cons of Matomo
- Less modern tech stack compared to PostHog
- More limited event-based analytics capabilities
- Slower development pace and fewer frequent updates
Code Comparison
Matomo (PHP):
$tracker = new MatomoTracker($idSite = 1, 'http://example.org/matomo/');
$tracker->doTrackPageView('Page Title');
PostHog (JavaScript):
posthog.capture('page_view', { page_title: 'Page Title' });
Both Matomo and PostHog are open-source analytics platforms, but they differ in their approach and target audience. Matomo (formerly Piwik) is a more traditional web analytics tool, similar to Google Analytics, while PostHog focuses on product analytics and offers features like session recording and feature flags.
PostHog uses a more modern tech stack (React, Django, ClickHouse) and has a stronger emphasis on developer-friendly features. It also provides a more comprehensive suite of product analytics tools out of the box.
Matomo, on the other hand, has a stronger focus on data privacy and compliance, making it a popular choice for organizations with strict data protection requirements. It also offers a wider range of plugins and integrations due to its longer presence in the market.
Umami is a modern, privacy-focused alternative to Google Analytics.
Pros of umami
- Lightweight and simple to set up, ideal for basic website analytics
- Privacy-focused with no cookies and GDPR compliance
- Free and open-source with a clean, minimalist interface
Cons of umami
- Limited feature set compared to PostHog's comprehensive analytics suite
- Lacks advanced user behavior tracking and product analytics capabilities
- Smaller community and ecosystem for extensions and integrations
Code Comparison
umami (JavaScript):
export async function getWebsiteStats(...) {
return runQuery(
prisma.website.findUnique({
where: { id },
select: {
pageviews: true,
uniques: true,
bounces: true,
totaltime: true,
},
})
);
}
PostHog (Python):
def get_event_count_for_team(team_id: int, event_name: str, ...) -> int:
return EventDefinition.objects.filter(
team_id=team_id,
name=event_name,
deleted=False,
).aggregate(Count("id"))["id__count"]
Both repositories offer web analytics solutions, but they cater to different needs. umami is more focused on simplicity and privacy, while PostHog provides a more comprehensive suite of product analytics tools. The code snippets demonstrate the different approaches: umami uses JavaScript and focuses on basic website stats, while PostHog uses Python and offers more complex event tracking capabilities.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Docs - Community - Roadmap - Why PostHog? - Changelog - Bug reports
PostHog is an all-in-one, open source platform for building successful products
PostHog provides every tool you need to build a successful product including:
- Product analytics: Autocapture or manually instrument event-based analytics to understand user behavior and analyze data with visualization or SQL.
- Web analytics: Monitor web traffic and user sessions with a GA-like dashboard. Easily monitor conversion, web vitals, and revenue.
- Session replays: Watch real user sessions of interactions with your website or mobile app to diagnose issues and understand user behavior.
- Feature flags: Safely roll out features to select users or cohorts with feature flags.
- Experiments: Test changes and measure their statistical impact on goal metrics. Set up experiments with no-code too.
- Error tracking: Track errors, get alerts, and resolve issues to improve your product.
- Surveys: Ask anything with our collection of no-code survey templates, or build custom surveys with our survey builder.
- Data warehouse: Sync data from external tools like Stripe, Hubspot, your data warehouse, and more. Query it alongside your product data.
- Data pipelines: Run custom filters and transformations on your incoming data. Send it to 25+ tools or any webhook in real time or batch export large amounts to your warehouse.
- LLM observability: Capture traces, generations, latency, and cost for your LLM-powered app.
Best of all, all of this is free to use with a generous monthly free tier for each product. Get started by signing up for PostHog Cloud US or PostHog Cloud EU.
Table of Contents
- Getting started with PostHog Cloud
- Self-hosting the open-source hobby deploy
- Setting up PostHog
- Learning more about PostHog
- Contributing
- Open-source vs paid
Getting started with PostHog Cloud (Recommended)
The fastest and most reliable way to get started with PostHog is signing up for free to PostHog Cloud or PostHog Cloud EU. Your first 1 million events, 5k recordings, 1M flag requests, 100k exceptions, and 250 survey responses are free every month, after which you pay based on usage.
Self-hosting the open-source hobby deploy (Advanced)
If you want to self-host PostHog, you can deploy a hobby instance in one line on Linux with Docker (recommended 4GB memory):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/posthog/posthog/HEAD/bin/deploy-hobby)"
Open source deployments should scale to approximately 100k events per month, after which we recommend migrating to a PostHog Cloud.
We do not provide customer support or offer guarantees for open source deployments. See our self-hosting docs, troubleshooting guide, and disclaimer for more info.
Setting up PostHog
Once you've got a PostHog instance, you can set it up by installing our JavaScript web snippet, one of our SDKs, or by using our API.
We have SDKs and libraries for popular languages and frameworks like:
Frontend | Mobile | Backend |
---|---|---|
JavaScript | React Native | Python |
Next.js | Android | Node |
React | iOS | PHP |
Vue | Flutter | Ruby |
Beyond this, we have docs and guides for Go, .NET/C#, Django, Angular, WordPress, Webflow, and more.
Once you've installed PostHog, see our product docs for more information on how to set up product analytics, web analytics, session replays, feature flags, experiments, error tracking, surveys, data warehouse, and more.
Learning more about PostHog
Our code isn't the only thing that's open source ð³. We also open source our company handbook which details our strategy, ways of working, and processes.
Curious about how to make the most of PostHog? We wrote a guide to winning with PostHog which walks you through the basics of measuring activation, tracking retention, and capturing revenue.
Contributing
We <3 contributions big and small:
- Vote on features or get early access to beta functionality in our roadmap
- Open a PR (see our instructions on developing PostHog locally)
- Submit a feature request or bug report
Open-source vs. paid
This repo is available under the MIT expat license, except for the ee
directory (which has its license here) if applicable.
Need absolutely ð¯% FOSS? Check out our posthog-foss repository, which is purged of all proprietary code and features.
The pricing for our paid plan is completely transparent and available on our pricing page.
Weâre hiring!
Hey! If you're reading this, you've proven yourself as a dedicated README reader.
You might also make a great addition to our team. We're growing fast and would love for you to join us.
Contributors ð¦¸
And 200+ more... Thank you!
Top Related Projects
Simple, open source, lightweight and privacy-friendly web analytics alternative to Google Analytics.
Empowering People Ethically 🚀 — Matomo is hiring! Join us → https://matomo.org/jobs Matomo is the leading open-source alternative to Google Analytics, giving you complete control and built-in privacy. Easily collect, visualise, and analyse data from websites & apps. Star us on GitHub ⭐️ – Pull Requests welcome!
Umami is a modern, privacy-focused alternative to Google Analytics.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot