Skip to content
🦔 PostHog is developer-friendly, open-source product analytics.
JavaScript Python HTML CSS Dockerfile Smarty Shell
Branch: master
Clone or download

Latest commit

Latest commit ca0bd20 Apr 1, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Create Mar 31, 2020
bin move package.json to the root folder Mar 18, 2020
chart add secret key Mar 29, 2020
frontend Merge pull request #392 from PostHog/300-trend-graph-users Mar 27, 2020
posthog Bump version 1.0.10 Apr 1, 2020
staticfiles Fix settings Jan 25, 2020
.babelrc move package.json to the root folder Mar 18, 2020
.deepsource.toml Fix some bug risks and code quality issues Feb 21, 2020
.dockerignore install in docker via root package.json and webpack Mar 18, 2020
.gitignore gitignore .idea folder to ignore jetbrains IDE settings Mar 20, 2020
.prettierrc set prettier line width to 120 for saner looking code Mar 20, 2020 Update Apr 1, 2020 Create Feb 20, 2020
LICENSE Update license Feb 17, 2020
Procfile Procfile move Jan 23, 2020 Update Mar 22, 2020
app.json Closes #111 Search through user properties Feb 18, 2020
docker-compose.yml Merge branch 'master' of into adhoc-contai… Feb 28, 2020 Fix deprecation warnings due to invalid escape sequences. Feb 21, 2020
jsconfig.json create aliases for ~, lib and scenes Mar 20, 2020 Initial commit Jan 23, 2020
mypy.ini Add posthog analytics module Feb 10, 2020
package.json add props to trendsLogic to split dashboard charts, reactor actions a… Mar 25, 2020
postcss.config.js move package.json to the root folder Mar 18, 2020
preview.Dockerfile add yarn to dockerfiles Mar 18, 2020
production.Dockerfile add yarn to dockerfiles Mar 18, 2020
requirements.txt Bump analytics to fix test failure Feb 22, 2020
webpack.config.js create aliases for ~, lib and scenes Mar 20, 2020
yarn.lock add props to trendsLogic to split dashboard charts, reactor actions a… Mar 25, 2020

PostHog header

PostHog (Community Edition)

PostHog is open source product analytics, built for developers. Automate the collection of every event on your website or app, with no need to send data to 3rd parties. It's a 1 click to deploy on your own infrastructure, with full API/SQL access to the underlying data.

Quick start

1-click Heroku deploy:

See PostHog docs for in-depth walk throughs on functionality.

PostHog dashboard screenshot

Join the PostHog Users Slack if you need help, want to chat, or are thinking of a new feature idea.


  • Event-based analytics at a user level - see which users are doing what in your application.
  • Complete control over your data - host it yourself.
  • Automatically capture clicks and page views to do analyze what your users are doing retroactively.
  • Libraries for JS, Python, Ruby, Node, Go + API for anything else.
  • Beautiful graphs, funnels, user cohorts, user paths and dashboards.
  • Super easy deploy using Docker or Heroku.

Event autocapture


Many engineers find it painful to work out how their products are being used. This makes design decisions tough. PostHog solves that.

We also strongly believe 3rd party analytics don't work anymore in a world of Cookie laws, GDPR, CCPA and lots of other 4 letter acronyms. There should be an alternative to sending all of your users' personal information and usage data to 3rd parties.

PostHog gives you full control over all your users' data, while letting anyone easily perform powerful analytics.

It means you can know who is using your app, how they're using, and where you lose users in the sign up process.

What's cool about this?

PostHog is the only product-focused open source analytics library, with an event and user-driven architecture. That means tracking identifiable (where applicable) user behavior, and creating user profiles. We are an open source alternative to Mixpanel, Amplitude or Heap, designed to be more developer friendly.

There are a couple of session-based open source libraries that are nice alternatives to Google Analytics. That's not what we are focused on.

One-line docker preview

docker run -t -i --rm --publish 8000:8000 -v postgres:/var/lib/postgresql posthog/posthog:preview

This image has everything you need to try out PostHog locally! It will set up a server on

Deploy to Heroku


Production installation

See wiki for production deployment


Running backend (Django)

  1. Make sure you have python 3 installed python3 --version
  2. Make sure you have postgres installed brew install postgres
  3. Start postgres, run brew services start postgresql
  4. Create Database createdb posthog
  5. Navigate into the correct folder cd posthog
  6. Run python3 -m venv env (creates virtual environment in current direction called 'env')
  7. Run source env/bin/activate (activates virtual environment)
  8. Run pip install -r requirements.txt. If you have problems with this step (TLS/SSL error), then run ~ brew update && brew upgrade followed by python3 -m pip install --upgrade pip, then retry the requirements.txt install.
  9. Run migrations DEBUG=1 python3 migrate
  10. Run DEBUG=1 python3 runserver
  11. Run the tests and frontend

Running backend tests


Running frontend (React)

If at any point, you get "command not found: nvm", you need to install nvm, then use that to install node.

  1. Make sure you are running Django above in a separate terminal
  2. Now run bin/start-frontend
  3. To see some data on the frontend, you should go to the http://localhost:8000/demo and play around with it, so you can see some data on dashboard

Open source / Paid

This repo is entirely MIT licensed. We charge for things like user permissioning and auditability, a/b testing and dedicated support. Please email and we will gladly help with your implementation.

Contributors 🦸

You can’t perform that action at this time.