This new release is a great mix between old and new, with significant improvements to both our newer features, as well as our core analytics stack.
Once again, we were heavily driven by feedback, having done a bunch of calls with our users and actively engaging with the PostHog community on Slack and GitHub. Keep the feedback coming!
Release Notes
If you're self-hosting and want to upgrade for a better experience with nicer features, remember to update your PostHog instance.
Scheduled Apps and Editor
We now support scheduled apps that run periodically on a specified time cycle (e.g. minute, hour, day), as well as have a built-in code editor for apps right into the PostHog UI.
With the ability to run tasks in specified time intervals, you can now setup apps that, for example, keep track of external metrics and add this data to PostHog via new events. This is possible because we now support posthog.capture
calls inside apps as well.
Some metrics you might want to keep track of are, for example, server performance, GitHub activities (e.g. stars ⭐ ), engagement with your project's social media profiles, and anything else you can think of!
Here's an example to give you an idea:
async function runEveryMinute({ config }) {const url = `https://api.github.com/repos/PostHog/posthog`const response = await fetch(url)const metrics = await response.json()posthog.capture('github metrics', {stars: metrics.stargazers_count,open_issues: metrics.open_issues_count,forks: metrics.forks_count,subscribers: metrics.subscribers_count})}
You can learn more about scheduled apps on the PR that created them, as well as our docs for building your own app.
Note: Apps are a Beta feature currently and only available on self-hosted instances. We are working to make it available on PostHog Cloud soon.
Lifecycle Analysis
Our 'Trends' tab just got an awesome new feature: lifecycle graphs!
Lifecycle analysis digs deeper into your events and shows you a breakdown of the users who performed the event into new, returning, and resurrecting users. In addition, it also shows you the churn on for the specified time period.
To use it, select 'Shown As' -> 'Lifecycle' when in the 'Trends' tab.
New Session Recording Compression Scheme
See the image above? That's our event processing time before and after the new compression scheme!
By using gzip-based compression, we have now significantly improved performance both on the client and server, making event processing faster, as well as decreasing the number of session recordings that are lost. Be on the lookout for more green play buttons on your 'Sessions' page now.
Also, while on the topic of session recording, have you been keeping up with the updates to our player?
If you installed
posthog-js
vianpm
, you should update to version 1.8.0 to get access to this update. Snippet users have access to the latest version by default.
New Actions UX
This might not be news to all of you, since we have been experimenting with our actions UX using feature flags. However, we're now rolling out a new UX for creating actions to all PostHog users, so try it out let us know what you think!
New operations for numerical properties
In addition to the average, sum, maximum, and minimum operations available to numerical properties in trends, we now also support median, and 90th, 95th, and 99th percentiles.
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
Session recording player ux improvements
Our session recording feature is getting better by the day! The latest improvements to our player have made the UX much smoother, and you can keep up-to-date and supply feedback about the player on the issue above.
PostHog News
Eltje has joined us to lead our efforts on the People & Talent front, bringing some much-needed experience as we grow our team. Like James, she was a professional cyclist before venturing into talent, and she is (unfortunately) a lover of pineapple on pizza.
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!
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, Marketing Lead, or Growth Engineer?
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:
- Hide bar from retention #2770 (yakkomajuri)
- Optimize breaking down by event property value #2767 (macobo)
- Fix Identified persons pagination #2756 (yakkomajuri)
- Showcase Feature Flag in HogFlix #2750 (yakkomajuri)
- Update to posthog-js@1.8.0 #2749 (macobo)
- Insights link on event list #2748 (paolodamico)
- Monitor clickhouse parts counts by table #2747 (fuziontech)
- Revert "Add autocapture to selection properties" #2746 (yakkomajuri)
- Plugin editor #2743 (mariusandra)
- Make active feature flags more obvious #2742 (timgl)
- Bump ini from 1.3.5 to 1.3.7 #2741 (dependabot[bot])
- Update to posthog-js@1.8.0.beta-1 #2740 (macobo)
- New Person Page (V2) #2738 (paolodamico)
- Fixes to Persons page 201210 #2737 (paolodamico)
- Plugin server ingestion base #2732 (Twixes)
- Fix persons page V2 edge case #2731 (paolodamico)
- Don't calculate broken cohorts #2730 (timgl)
- Capture plugin installation events #2729 (mariusandra)
- Sessions filtering postgres support #2728 (macobo)
- Sessions filtering: improve UX #2726 (macobo)
- Allow filtering sessions by recording duration #2721 (macobo)
- Restart plugins on error #2719 (mariusandra)
- Report billing usage cron job #2716 (paolodamico)
- Deprecate dashboard item type and move to display #2715 (timgl)
- Kill /api/event/sessions #2714 (macobo)
- Update posthog-js to 1.7.3-beta.11 #2713 (macobo)
- Fix prop filtering when action has props #2711 (EDsCODE)
- Removes legacy stuff from #2709 #2710 (paolodamico)
- Refactor /api/signup to Organization #2709 (paolodamico)
- Revert "Update posthog-js to 1.7.3-beta.10" #2707 (macobo)
- Update posthog-js to 1.7.3-beta.10 #2704 (macobo)
- Set right concurrency for plugin server on Heroku #2703 (mariusandra)
- Add caching support for recorder.js #2702 (macobo)
- Support gzip encoding from posthog-js #2701 (macobo)
- Remove legacy funnel code #2700 (timgl)
- Fix webpack-dev-server inside Docker #2699 (Twixes)
- Purge Porter #2698 (Twixes)
- Add autocapture to selection properties #2696 (EDsCODE)
- Quick fix to migrations #2695 (fuziontech)
- 1842 link to edit cohort #2694 (girlProg)
- Add all time support for lifecycle #2693 (EDsCODE)
- Actually set env var for DISABLE_SERVER_SIDE_CURSORS to True #2692 (fuziontech)
- Add trailing slash to record endpoint #2689 (timgl)
- Zapier updates #2686 (Twixes)
- Cleaned up system status page #2682 (Twixes)
- Add command palette badge to new TopNavigation #2678 (Twixes)
- DISABLE_SERVER_SIDE_CURSORS to false for pgbouncer friendship #2677 (fuziontech)
- Fix cypress projectSettings #2674 (paolodamico)
- Fix #2632 (save dashboards modal) #2673 (paolodamico)
- Fix 404 #2671 (yakkomajuri)
- Actions Table filtering, search and sorting #2670 (timgl)
- Add clickhouse query for people breakdown #2669 (EDsCODE)
- New Persons Page #2667 (paolodamico)
- Debug CH queries #2666 (timgl)
- Fix nan values #2665 (timgl)
- Fix ee webhook #2664 (timgl)
- Fix search set when clicking person #2663 (timgl)
- update url env var for ECS containers #2660 (fuziontech)
- Fix sessions player scrolling issue #2659 (paolodamico)
- Fix: fixes command palette scrolling issue #2658 (suresh1999)
- Fix lifecycle date rounding #2657 (EDsCODE)
- Update posthog-js to 1.7.3-beta.9 #2655 (macobo)
- Update posthog-js to 1.7.3-beta.8 #2653 (macobo)
- Update posthog-js to 1.7.3-beta.7 #2652 (macobo)
- Separate tooltips for lifecycle #2649 (timgl)
- Support capturing json event data with content-type text/plain #2648 (macobo)
- Merge person modal #2644 (timgl)
- Spy on feature flags 🕵️ #2643 (mariusandra)
- Command palette missing routes & fix #2641 (paolodamico)
- Sessions table improvements 1202 #2639 (paolodamico)
- Stickiness improvement and filter refactor #2638 (EDsCODE)
- Proposal: When clicking 'add action/event', populate the generated event with last event data #2635 (macobo)
- Lifecycle prop filtering #2634 (EDsCODE)
- Add support for median, p90, p95 and p99 math functions #2630 (macobo)
- Use select for numerical properties #2628 (timgl)
- Access config to unlock after 15 mins and template #2624 (timgl)
- Update posthog-js to 1.7.3-beta.6 #2623 (macobo)
- Update HogFlix style #2622 (yakkomajuri)
- Add flags to
bin/docker-worker-celery
#2621 (mariusandra) - Update posthog-js to next beta #2618 (macobo)
- Make personal API key capture and decide work with multiple projects #2617 (Twixes)
- Add /api/projects/:project_id/actions/ #2616 (Twixes)
- Release actions-ux-201012 #2615 (paolodamico)
- Fixes Link component default behavior #2612 (paolodamico)
- Improved session player navigation #2611 (paolodamico)
- Don't run preview docker build with debug flags #2610 (fuziontech)
- Update session recording settings #2609 (paolodamico)
- Link back to insights from actions #2608 (timgl)
- Added pre tag to stop the over lay #2606 (samcaspus)
- Update to posthog-js@1.7.3-beta.3 #2601 (macobo)
- Show all items at date when hovering a LineGraph #2600 (macobo)
- Log exceptions in production #2593 (timgl)
- Use last selected dashboard when clicking 'save to dashboard' #2591 (macobo)
- Add
event \(sum of event\_property\)
to event labels on graphs #2583 (macobo) - Issue #2573, Add django-axes #2582 (nrickles3)
- Remove flake filter by event cypress test #2580 (EDsCODE)
- 1936 retention graph #2578 (EDsCODE)
- Revert "Retention graph and multiple event fix" #2577 (EDsCODE)
- Cohort table improvements #2576 (timgl)
- DAU breakdown and filter bug #2575 (EDsCODE)
- Update changelog with events box #2574 (yakkomajuri)
- Fix unclickable prop filter #2572 (EDsCODE)
- Bump version 1.18.0 #2570 (yakkomajuri)
- Webhook warning adjustment #2568 (paolodamico)
- Modified drop down #2567 (samcaspus)
- Update posthog-js to 1.7.3-beta.2 #2566 (macobo)
- Add device type icons to session player page #2565 (paolodamico)
- Hover on new navigation menu items #2563 (paolodamico)
- Update posthog-js to latest, use (undocumented) option _capture_metrics #2561 (macobo)
- Show resolution + duration/date on session player #2550 (macobo)
- Retention graph and multiple event fix #2534 (EDsCODE)
- Rolling retention widget #2522 (timgl)
- Make Google login an Enterprise/Cloud feature #2501 (Twixes)
- Lifecycle Graph #2460 (EDsCODE)
- Setup ecs configs for worker process #2458 (fuziontech)
- Remove signup process from cypress #2264 (timgl)
Ready to find out more?