We're back! 2020 was a hectic year for us and our team put in a whole lot of effort to get PostHog to where it is now. As such, we shut down PostHog for 2 weeks to give everyone a chance to recharge (with a rotation in place to make sure nothing burned down).
2021 is now here and we're kicking off with some awesome new features. Behold...
Release Notes
If you're self-hosting and want to upgrade for a better experience with nicer features, remember to update your PostHog instance.
Apps, Apps, and more Apps
A lot has been happening on our Apps front.
Besides a whole bunch work to deliver performance improvements and mature the PostHog Apps ecosystem, we have two major changes being introduced with this new PostHog version:
A shiny new apps library
We have released a apps library where you can browse through all the apps built by our core team and community, and made sure the library is populated with apps! Thus, we now have integrations that support getting data from GitHub and GitLab, or sending data over to BigQuery and Hubspot, for example.
We're working to make apps available on Cloud, but, in the meanwhile, if you're self-hosting, do check out our apps and let us know what you think!
Apps can now access persistent storage
Up until now, app builders would have noticed that the cache
could have been used to store data in-memory using Redis, but we now also support storage
, which allows apps to store data in a persistent form, opening up a lot of new use cases for you to explore.
Static Cohorts
In addition to our standard dynamic cohorts (periodically updated based on the definition), PostHog now support static cohorts - groups of users that don't update.
To create a static cohort, head over to 'People' -> 'Cohorts' and, when creating a new cohort, select 'Upload CSV'. This CSV file should have a single column with either the user's distinct_id
or email
.
This way, you can import data from outside sources into a PostHog cohort more easily, as well as turn your dynamic cohorts into static ones by first exporting them. You could, for example, add your Mailchimp subscribers list as a static cohort.
Sortable Funnel Steps
As of this new release, when you head over to Funnels in PostHog, you will see 3 dots next to each funnel step. By dragging these 3 dots up and down you can now re-order your funnel's steps, for example if you made a mistake, or want to explore different funnel structures.
This was a feature that was consistently requested by the PostHog community, and we'd like to also shoutout @glmaljkovich for helping us build it!
PostHog Bookmarklet
To try out the PostHog snippet without having to update anything on your codebase, you can make use of our bookmarklet, which you can find over in 'Project Settings'.
This lets you capture events in your website without any code, and we've been using it actively during our demos!
Sessions List now loads 10x faster
Since joining us, Karl has been submitting performance improvement after performance improvement.
This time, as session recordings are being used more and more by our users, it was time to speed up the loading of the sessions list, which now loads 10x faster!
Share your feedback
We'd love to hear anything you have to say about PostHog, good or bad. As a thank you, we'll share some awesome PostHog merch.
Want to get involved? Email us to schedule a 30 minute call with one of our teams to help us make PostHog even better!
Share your feedback
We'd love to hear anything you have to say about PostHog, good or bad. As a thank you, we'll share some awesome PostHog merch.
Want to get involved? Email us to schedule a 30 minute call with one of our teams to help us make PostHog even better!
Favorite Issue
PostHog Development on Apple Silicon
Are you a person that likes to operate at the bleeding edge of technology? Follow Marius' adventures working with PostHog on an Apple M1 laptop.
PostHog News
Cory has joined us as a Lead Designer and has already started working on some jaw-dropping designs! Cory lives in an RV with his wife and child, boasting greater home square footage than many apartments in New York or San Francisco.
He believes pineapple belongs on pizza, and we're now questioning whether we indeed know how to hire.
Community Shoutouts
Big thanks to the following members of our community who have contributed to PostHog over this release cycle:
Open Roles
Are you a Fullstack Engineer, Senior Engineer, Marketing Lead, Growth Engineer, or Customer Success Lead?
Or perhaps you're not either but think you'd still be a good fit for PostHog?
Bug Fixes and Performance Improvements
In addition to the highlights listed above, we also merged a bunch of PRs improving PostHog's performance and fixing bugs:
- Sessions filters design #2987 (macobo)
- Add Community tag to plugins #2982 (yakkomajuri)
- Fix prop operator not changing #2981 (EDsCODE)
- Fix options not loaded #2973 (timgl)
- Set Once #2972 (mariusandra)
- Support plugins installed from GitLab #2970 (mariusandra)
- Fix muted text color #2969 (paolodamico)
- Lessen the language in the plugin opt-in warning #2968 (mariusandra)
- Enable SSL PostgreSQL configuration through env variables #2967 (tmilicic)
- Order tooltip by volume #2960 (c3ho)
- Add "AND" indicator to feature flag filters & update visuals #2959 (paolodamico)
- Capture rageclicks (via posthog-js) #2957 (macobo)
- Trends: small fixes #2956 (macobo)
- Only cache new items for 1 day #2949 (EDsCODE)
- Make flag explicit #2947 (EDsCODE)
- Support multiple action filters in sessions #2946 (macobo)
- Add missing feature flags #2944 (timgl)
- Add sharded tables to health checks for app #2938 (fuziontech)
- Refactor & extend backend user identify #2937 (paolodamico)
- Add link to plugin troubleshooting if server offline #2936 (mariusandra)
- Simplify plugin server service definitions #2929 (Twixes)
- Remove unnecessary action properties iterating on sessionsparams #2926 (EDsCODE)
- Switch user prompt location #2924 (EDsCODE)
- restore path custom events #2923 (EDsCODE)
- Change datepicker to rangepicker #2922 (EDsCODE)
- Change color variable for bar color #2921 (EDsCODE)
- Event must be a string #2920 (mariusandra)
- Fix clearRetention #2919 (mariusandra)
- Update plugin repository URL #2918 (mariusandra)
- Update to renamed @posthog/plugin-server package #2917 (mariusandra)
- Support nodejs 15 #2915 (mariusandra)
- Posthog-js 1.8.3 #2913 (mariusandra)
- Sessions filtering system #2912 (macobo)
- Fix dashboard colors with non-white backgrounds #2911 (mariusandra)
- Fix errors on demo #2909 (mariusandra)
- Hotfix - Papercups chat collision #2908 (paolodamico)
- Add pinned dashboards to new navigation #2906 (paolodamico)
- Proper interval rounding on normal trends #2901 (EDsCODE)
- Remove shownas filter and move stickiness/lifecycle into separate insight tabs #2899 (EDsCODE)
- Upgrade to plugin server 0.6.4 #2897 (mariusandra)
- Update simmer to version without installation warnings #2896 (mariusandra)
- Fix REST hook firing #2894 (Twixes)
- Fix REST hook deletion #2893 (Twixes)
- Refactor properties_to_Q to not be tied to Filter objects #2890 (macobo)
- Adds backend instrumentation to actions & cohorts #2887 (paolodamico)
- Bump lxml from 4.6.1 to 4.6.2 #2886 (dependabot[bot])
- Separate math aggregates #2885 (EDsCODE)
- Fix missing action when returning from dashboard #2884 (EDsCODE)
- Fix sessions length distribution dataindex #2883 (EDsCODE)
- Fix path loading var name #2882 (EDsCODE)
- Updated where our enterprise terms are found #2881 (piemets)
- Re-enable source maps in production.Dockerfile #2879 (mariusandra)
- Update posthog-plugin-server #2878 (Twixes)
- Remove ancient ".map" redirect #2875 (mariusandra)
- Add deployment environment variables #2874 (mariusandra)
- Try to fix bgbouncer error in django admin in production #2873 (mariusandra)
- Don't show events in future #2871 (timgl)
- Really fix event limit #2870 (timgl)
- Fixes email from address #2869 (paolodamico)
- Limit events correctly #2867 (timgl)
- Improve action select box - fix css #2865 (macobo)
- Only grab recent events in Events list #2864 (timgl)
- Add session recording stats to instance status page #2861 (mariusandra)
- Add missing event name to demo data #2860 (EDsCODE)
- Instrument toolbar #2859 (paolodamico)
- Add missing paths viz condition #2858 (EDsCODE)
- Fix bug from query-selector-shadow-dom update #2856 (mariusandra)
- ClickHouse caching #2855 (EDsCODE)
- Custom NPM packages under @posthog #2854 (mariusandra)
- Index session recording events by team_id, timestamp #2853 (macobo)
- Plugin storage model #2852 (mariusandra)
- Tests, fix for createActionFromEvent, clean up sessions query #2851 (macobo)
- Kill N+1 in sessions_list #2850 (macobo)
- Support different Reply-To header for most emails #2846 (paolodamico)
- Quick fix to limit time range on event prop query #2844 (EDsCODE)
- Fix relative dates filters #2843 (timgl)
- Refactor useEventListener to TypeScript #2841 (Twixes)
- Bump node-notifier from 8.0.0 to 8.0.1 #2837 (dependabot[bot])
- Fix retention entity selection #2825 (timgl)
- Allow * in action selector #2820 (macobo)
- Upgrade Plugin Server #2816 (mariusandra)
- Fix retention filter dashboard items #2815 (macobo)
- Fix disabling server-side cursors #2814 (macobo)
- More key feature instrumentation #2811 (paolodamico)
- Make filtering by actions/events in sessions possible #2808 (macobo)
- Do not use SessionsFilter for insights sessions #2807 (macobo)
- Clean up prod dockerfile, remove dupe calls #2806 (fuziontech)
- Verbose Yarn build on plugin server build #2805 (fuziontech)
- Make building with yarn more verbose for debugging #2804 (fuziontech)
- plugins debug #2803 (fuziontech)
- Ignore plugins optional deps #2801 (mariusandra)
- Make testing using docker a bit easier with docker-compose for ee #2800 (fuziontech)
- Feature flag Papercups #2799 (paolodamico)
- Fix Docker Build #2797 (mariusandra)
- Generate event_uuid slightly earlier for plugin server idempotency #2796 (Twixes)
- WIP: Try to fix error with DAU breakdown of user properties #2793 (macobo)
- Whitelist plugins per organization on Cloud #2791 (Twixes)
- Allow going from insights -> sessions (on cloud) #2790 (macobo)
- CHANGELOG fixes #2788 (yakkomajuri)
- Insights data instrumentation #2787 (paolodamico)
- Fixes for differences between terraform and GA task-definition #2786 (fuziontech)
- Fix breakdown aggregated value #2785 (EDsCODE)
- Remove event properties from session filters #2784 (paolodamico)
- Allow Plugins on Cloud #2783 (Twixes)
- Fix pie aggregate value #2781 (EDsCODE)
- Release 1.19.0 #2780 (yakkomajuri)
- Hide bar from retention #2770 (yakkomajuri)
- Optimize breaking down by event property value #2767 (macobo)
- MV -> View for events_with_array_props_view and remove EVENT_PROP_TABLE_SQL #2766 (fuziontech)
- Move lifecycle tests to separate file #2765 (EDsCODE)
- Navigation 1775 improvements & fixes #2763 (paolodamico)
- Honor next URL when logged out #2757 (yakkomajuri)
- Deploy Plugins to AWS #2755 (mariusandra)
- Add abstract test classes #2754 (EDsCODE)
- Improved insights history #2745 (timgl)
- Not-so-big play button #2744 (paolodamico)
- Major filter refactor #2736 (EDsCODE)
- Fix total aggregate values #2723 (EDsCODE)
- Zapier updates #2686 (Twixes)
- Issue templates plus #2681 (Twixes)
- Make Jest tests work better with TypeScript #2558 (Twixes)
Ready to find out more?