Our primary goals for this release were to iron out bugs and improve the user experience of our Beta features.
As a result, we fixed a whole lot of stuff. We merged dozens of PRs with session recording fixes and improvements, and a dozen more with updates to our apps functionality. We also improved things like event ingestion, the UX for feature flags, and our settings for both organizations and projects. You can read through the entire list of fixes later in this post, but beware: it's quite long.
Finally, thank you to everyone who helped us out with feedback and contributions during this release cycle, you help us make PostHog better every day.
Release Notes
If you're self-hosting and want to upgrade for a better experience with nicer features, remember to update your PostHog instance.
New Event Selection Box
We upgraded our event selection box to include actions and events in one, as well as provide smarter recommendations of events and actions you might want to use of based frequently used in queries by you or your team.
Improvements to posthog-js
A new version of posthog-js
is available and we recommend you to update if you've installed it via npm
. Snippet users have access to the latest version by default.
The new version includes a lot of bugfixes that improve our session recording feature, as well as is significantly lighter, having had a lot of legacy code removed.
R.I.P. to the hundreds of lines of JavaScript that were removed - you will not be missed.
Apps are now available on Kubernetes deployments
Following feedback from a user, we have now added support for PostHog Apps to our Helm chart.
If you're using the chart to deploy PostHog, upgrading to the latest version will give you access to the new app server (Beta).
Session Recording Improvements
Out of the many improvements to session recording, there are some worth mentioning specifically:
- Keyboard shortcuts for the session recording player (
spacebar
to pause/play,f
to open player in full screen) - Ability to jump back/forward 8 seconds with the keyboard arrows (or player button)
- Full-screen support for the session recording player without losing the controls bar
- Pause/Play recording when clicking on the video
- Skipping inactivity made clearer with an overlay over the player
- The session recording player is now responsive to the client's screen size
- Incomplete session recordings (i.e. "blank screens") are now hidden from the list
Honorary Mention: Requiring Curly Brackets
Our codebase now disallows bracket-less control structures, enforcing curly brackets on if
statements for unbeatable readability.
As described by Michael, one of our engineers:
"They don't do anything, yet we thank them for their existence."
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
Release 1.18.0
If you didn't already know, in the interest of transparency, we plan our next releases openly on GitHub, so you can always keep up with what we're up to during a release cycle.
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 Lead Designer or Fullstack 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:
- Update posthog-js to latest, use (undocumented) option _capture_metrics #2561 (macobo)
- Cohort search bar fix #2557 (samcaspus)
- Bump posthog-js 1.7.2 #2555 (timgl)
- Fix posthog identify #2552 (timgl)
- Update posthog-js #2551 (macobo)
- Show resolution + duration/date on session player #2550 (macobo)
- Fix non-null assertion in SessionsPlayerDrawer.tsx #2549 (Twixes)
- Don't show session recording play button if no FullSnapshot rrweb events #2547 (macobo)
- Don't toggle rows when viewing player #2546 (macobo)
- Closes #2542 remove send event overlay and replace with warning #2544 (timgl)
- Closes #2508 Fix cohort days #2543 (timgl)
- Move away from ewap to speed up queries #2540 (timgl)
- Fix Not all users have names #2539 (timgl)
- UI improvements to sessions page #2538 (paolodamico)
- Removes legacy cloud billing from EE #2537 (paolodamico)
- Fix redirecting to /persons after deleting user #2533 (timgl)
- Fix flaky demo data test #2530 (macobo)
- Fix linting errors broken on master #2529 (macobo)
- Return person data together with session recording #2528 (macobo)
- Fix /bin/tests #2527 (macobo)
- Show which heroku processes are optional #2526 (timgl)
- Fix celery heartbeat bug, Add redis & apps to preflight #2520 (mariusandra)
- Move redis status closer to other fields #2519 (mariusandra)
- Update posthog-js and posthog-react-rrweb-player #2518 (macobo)
- Show session player icons as greyed out if visited #2517 (macobo)
- Disable celery heartbeat, gossip and mingle #2513 (mariusandra)
- Closes #2508 Fix cohorts sessions #2512 (timgl)
- Increase sentry max string length by a lot #2510 (macobo)
- Fix entity.py comment #2507 (jessethegame)
- Update posthog-js to 1.7.0 beta-1 #2506 (macobo)
- Require curly brackets around if statements #2505 (mariusandra)
- typo fix in changelog #2504 (jamesefhawkins)
- Hotfix: fix session recordings #2502 (macobo)
- Make Plugins page a bit nicer #2500 (Twixes)
- Health endpoint to reflect migration status #2498 (fuziontech)
- Fix various caching issues #2496 (timgl)
- Update PR template style and add Jest checklist item #2495 (Twixes)
- Disallow inviteless signup on initiated self-hosted instances #2489 (Twixes)
- Enhance webhook integration UX #2488 (Twixes)
- Refactor camelCase util with Jest tests #2487 (paolodamico)
- Add Table rowKey where missing and unify style #2486 (Twixes)
- Nest endpoints of project-based models under /api/project/ – LITE #2485 (Twixes)
- Fix organization/project creation when organization-/project-less #2484 (Twixes)
- Project Settings cleanup #2483 (Twixes)
- Reworked Teammates page #2482 (Twixes)
- Allow for duplicate invites #2481 (Twixes)
- 2094 too many distinct #2480 (GalDayan)
- Session player page #2479 (paolodamico)
- Refactor scene configuration logic #2478 (paolodamico)
- Make note that webhook integration is unavailable for Cloud now #2476 (Twixes)
- Fix Heroku worker, part 2 #2475 (mariusandra)
- env variable for parallel cohorts #2472 (timgl)
- Decrease parallel cohorts #2471 (timgl)
- Use our own session recording player #2470 (macobo)
- Fix Password Change #2467 (yakkomajuri)
- Fix My Settings #2465 (Twixes)
- Fix cohort calculation #2464 (timgl)
- Fix Feature Flags typo #2463 (yakkomajuri)
- Fix feature flag not getting created with same team and key after deleting it #2461 (satheesh1997)
- Fix invalid date format for labels on Windows #2456 (adamb70)
- Don't record session player #2455 (timgl)
- Create DATABASE_URL if none found #2454 (mariusandra)
- Show gradient on scrollable Select elements #2453 (adamb70)
- Docker nodejs support for plugins #2452 (mariusandra)
- Fix plugin server url #2451 (mariusandra)
- Remove
posthog.json
plugin support #2449 (mariusandra) - Feature flag table improvements #2448 (timgl)
- Fix small typo on Project Settings view #2443 (ngonik)
- Fix cohorts stuck on empty querysets #2441 (timgl)
- Use posthog-js 1.7.0-alpha.1 #2440 (macobo)
- Hide Billing Toolbar from PostHog team #2439 (yakkomajuri)
- Fix fetch single event clickhouse #2436 (timgl)
- Fix filtering is not bool #2435 (timgl)
- Redirect to manage billing view on app #2434 (timgl)
- Fix aggregates clickhouse #2432 (timgl)
- Fix StatsD errors on Windows #2430 (adamb70)
- Session recording: only check permitted domains if defined #2429 (macobo)
- Bump posthog-js #2427 (macobo)
- Create task definition for ECS #2424 (fuziontech)
- Persons list refactor II #2423 (paolodamico)
- Add ee to docker ignore #2422 (timgl)
- create docker build action #2419 (fuziontech)
- Persons list refactor #2418 (paolodamico)
- Release 1.17.0 #2417 (yakkomajuri)
- Remove unused dependencies #2416 (timgl)
- Fix cohorts #2415 (timgl)
- Refactor people & users to persons #2413 (paolodamico)
- Fix empty actions in cohorts #2411 (timgl)
- Last 7 days instead of last week, closes #2408 #2410 (timgl)
- Add alt_host for graceful failover to our secondary clickhouse node #2407 (fuziontech)
- Retention graph and multiple event fix #2405 (EDsCODE)
- Fix cohorts not being calculated #2404 (timgl)
- Fix emojis with lz64 encoding #2403 (timgl)
- Add actions to sidebar #2402 (timgl)
- Fix navigation with actions & events #2401 (paolodamico)
- Separate endpoint for session recording #2398 (macobo)
- Use isoformat() for dates in Kafka WAL #2396 (mariusandra)
- Combine events and actions into select box #2394 (timgl)
- Event usage split clickhouse queries #2388 (timgl)
- Add feature flag filters and roll out percentage to main table #2387 (GalDayan)
- Fix prop filter not formatting properly #2386 (EDsCODE)
- Organize logic #2358 (EDsCODE)
- Improve docker-compose-config experience #2266 (Twixes)
- Allow logged in users to join from invite #2244 (Twixes)
- Fix sessions on dashboard #2214 (timgl)
- Separate Plugins dyno for Heroku #2213 (mariusandra)
- Org/projects UX enhancements #2145 (Twixes)
Ready to find out more?