‹ Reports
The Dispatch

OSS Watchlist: posthog/posthog


Executive Summary

PostHog is an open-source platform designed to enhance product development through comprehensive analytics, user tracking, and feature management tools. It is maintained by PostHog, Inc., a company dedicated to providing developers and product teams with detailed insights and control over their data to build better products. The project's overall state is active, with continuous contributions aimed at expanding its capabilities, improving user experience, and maintaining the platform's stability and performance.

Notable elements of the project include:

Recent Activity

The development team, including Raquel Smith, James Greenhill (fuziontech), Robbie (robbie-c), Michael Matloka (Twixes), Marius Andra (mariusandra), and Paul D'Ambra (pauldambra), has been notably active across various aspects of the project. Their contributions range from front-end enhancements to back-end optimizations. Recent activities have focused on:

Patterns indicate a structured approach to development, with efforts distributed across improving existing features, introducing new integrations, and maintaining the platform's robustness.

Risks

Notable risks and issues identified include:

These issues reflect a mix of user experience concerns, technical debt management, and infrastructure reliability that need ongoing attention.

Plans

Work in progress or notable todos include:

These efforts align with the project's goals of improving user experience, expanding functionality, and ensuring platform stability.

Conclusion

The PostHog project is actively developed with a focus on enhancing user experience, expanding platform capabilities, and maintaining stability. The development team is addressing both immediate user-facing issues and long-term technical improvements. However, challenges related to UI transitions, technical debt, and infrastructure reliability require careful management to ensure continued success.

Quantified Commit Activity From 1 Reports

Developer Avatar Branches PRs Commits Files Changes
Marius Andra 1 8/8/1 8 47 3438
vs. last report = +8/+8/+1 -4 -23 -860
Paul D'Ambra 1 13/10/0 12 42 2940
vs. last report = +13/+10/= -24 -51 -1711
Thomas Obermüller 1 4/3/0 4 124 2544
vs. last report = +4/+3/= -5 -4 +476
Lior539 1 0/2/0 1 74 1563
vs. last report -2 =/+2/= -21 +15 -771
David Newell 1 9/7/1 8 284 1306
vs. last report = +9/+7/+1 -1 -10 -829
Eric Duong 1 8/9/0 9 42 1083
vs. last report = +8/+9/= -1 -3 -310
Tomás Farías Santana 1 0/1/0 1 22 908
vs. last report = =/+1/= -6 -11 -1990
Robbie 2 4/4/0 7 17 853
vs. last report = +4/+4/= -5 -21 -857
Xavier Vello 1 3/4/1 4 19 744
vs. last report = +3/+4/+1 -1 -1 +148
Juraj Majerik 1 5/3/0 3 14 715
vs. last report = +5/+3/= +1 -47 -1375
Neil Kakkar 1 4/3/0 3 6 627
vs. last report = +4/+3/= = -13 +339
Michael Matloka 1 11/8/1 8 87 586
vs. last report = +11/+8/+1 -2 -260 -595
James Greenhill 1 1/1/0 2 4 356
vs. last report = +1/+1/= = = =
Zach Waterfield 2 4/7/0 9 27 353
vs. last report +1 +4/+7/= -4 -50 -276
Tiina Turban 1 3/1/0 3 13 351
vs. last report = +3/+1/= +2 +12 +325
Bianca Yang 1 1/1/0 1 3 318
vs. last report = +1/+1/= -3 -32 -5113
ted kaemming 1 3/4/0 5 16 302
vs. last report = +3/+4/= -1 -4 -106
Raquel Smith 1 3/2/0 2 9 206
vs. last report = +3/+2/= -4 -9 -175
Brett Hoerner 1 5/3/2 3 8 115
vs. last report = +5/+3/+2 -4 -34 -629
Ben White 1 4/1/0 1 3 88
vs. last report = +4/+1/= -17 -135 -2732
Tom Owers 1 3/2/0 2 6 37
vs. last report = +3/+2/= -2 -26 -1682
Marcus Hof 1 2/1/0 1 3 34
PostHog Bot 1 2/2/0 2 2 20
vs. last report = +2/+2/= -5 = -89
timgl 1 2/0/0 1 2 3
vs. last report = +2/=/= = = =
Nikita Vorobev 1 3/1/0 1 1 3
0 0/0/1 0 0 0
vs. last report -1 =/=/+1 -5 -19 -351
0 2/0/0 0 0 0
vs. last report -1 +2/=/= -3 -3 -8

PRs: created by that dev and opened/merged/closed-unmerged during the period

Detailed Reports

Report On: Fetch commits



This analysis covers a wide range of activities within the PostHog/posthog repository, focusing on the project's recent development efforts. The project is an open-source platform for building better products, offering a comprehensive suite of tools for analytics, user tracking, and feature management. It's maintained by PostHog, an organization committed to enhancing product development through detailed insights and data control.

Recent Development Activities:

Project Overview:

The PostHog development team has been actively pushing updates and new features across several branches. Key areas of focus include:

  • Enhancing user experience with UI improvements and bug fixes.
  • Expanding the platform's capabilities with new integrations and functionalities such as session filters and framework support in onboarding.
  • Addressing technical debt and dependencies updates to ensure the platform's stability and performance.

Team Contributions:

  • Raquel Smith, James Greenhill (fuziontech), Robbie (robbie-c), Michael Matloka (Twixes), Marius Andra (mariusandra), and Paul D'Ambra (pauldambra) have been notably active, contributing across various aspects of the project from front-end enhancements to back-end optimizations.
  • The team has also worked on expanding the platform's capabilities by introducing new integrations and functionalities such as session filters and framework support in onboarding.

Branch Activity:

  • Activity has been observed in branches related to improving user experience in number fields, enriching the onboarding process with additional frameworks, and enhancing session filtering capabilities.

Conclusions:

The PostHog development team exhibits a strong commitment to constantly improving the platform's features and usability. With contributions spanning across various aspects of the project, the team is dedicated to providing a comprehensive analytics solution that meets users' evolving needs. The active development across multiple branches indicates a structured approach to introducing new features while maintaining the platform's robustness.

Quantified Commit Activity Over 7 Days

Developer Avatar Branches PRs Commits Files Changes
Marius Andra 1 8/8/1 8 47 3438
vs. last report = +8/+8/+1 -4 -23 -860
Paul D'Ambra 1 13/10/0 12 42 2940
vs. last report = +13/+10/= -24 -51 -1711
Thomas Obermüller 1 4/3/0 4 124 2544
vs. last report = +4/+3/= -5 -4 +476
Lior539 1 0/2/0 1 74 1563
vs. last report -2 =/+2/= -21 +15 -771
David Newell 1 9/7/1 8 284 1306
vs. last report = +9/+7/+1 -1 -10 -829
Eric Duong 1 8/9/0 9 42 1083
vs. last report = +8/+9/= -1 -3 -310
Tomás Farías Santana 1 0/1/0 1 22 908
vs. last report = =/+1/= -6 -11 -1990
Robbie 2 4/4/0 7 17 853
vs. last report = +4/+4/= -5 -21 -857
Xavier Vello 1 3/4/1 4 19 744
vs. last report = +3/+4/+1 -1 -1 +148
Juraj Majerik 1 5/3/0 3 14 715
vs. last report = +5/+3/= +1 -47 -1375
Neil Kakkar 1 4/3/0 3 6 627
vs. last report = +4/+3/= = -13 +339
Michael Matloka 1 11/8/1 8 87 586
vs. last report = +11/+8/+1 -2 -260 -595
James Greenhill 1 1/1/0 2 4 356
vs. last report = +1/+1/= = = =
Zach Waterfield 2 4/7/0 9 27 353
vs. last report +1 +4/+7/= -4 -50 -276
Tiina Turban 1 3/1/0 3 13 351
vs. last report = +3/+1/= +2 +12 +325
Bianca Yang 1 1/1/0 1 3 318
vs. last report = +1/+1/= -3 -32 -5113
ted kaemming 1 3/4/0 5 16 302
vs. last report = +3/+4/= -1 -4 -106
Raquel Smith 1 3/2/0 2 9 206
vs. last report = +3/+2/= -4 -9 -175
Brett Hoerner 1 5/3/2 3 8 115
vs. last report = +5/+3/+2 -4 -34 -629
Ben White 1 4/1/0 1 3 88
vs. last report = +4/+1/= -17 -135 -2732
Tom Owers 1 3/2/0 2 6 37
vs. last report = +3/+2/= -2 -26 -1682
Marcus Hof 1 2/1/0 1 3 34
PostHog Bot 1 2/2/0 2 2 20
vs. last report = +2/+2/= -5 = -89
timgl 1 2/0/0 1 2 3
vs. last report = +2/=/= = = =
Nikita Vorobev 1 3/1/0 1 1 3
0 0/0/1 0 0 0
vs. last report -1 =/=/+1 -5 -19 -351
0 2/0/0 0 0 0
vs. last report -1 +2/=/= -3 -3 -8

PRs: created by that dev and opened/merged/closed-unmerged during the period

Report On: Fetch issues



This analysis provides a comprehensive overview of the issues in a software project, highlighting notable problems, uncertainties, disputes, TODOs, and anomalies among open issues. The analysis also considers the context of recently closed issues for general trends and patterns.

Notable Open Issues:

  1. Issue #21287: Fix Severity Field: A critical fix for the support modal's severity field, indicating a quick response to user interface problems. This issue is especially notable due to its potential impact on user experience and support ticket categorization.

  2. Issue #21286: Remove Unused Code Path: Focuses on removing an unused code path related to sparkline generation, suggesting an effort to clean up and optimize the codebase.

  3. Issue #21285: Allow Choose Another Dashboard Template After Pressing Back: Addresses a user experience issue in dashboard template selection, reflecting attention to detail in UI/UX design.

  4. Issue #21284: Remove AntD Dropdown: Part of an ongoing effort to replace AntD components with Lemon UI components, indicating a significant UI library transition that could affect multiple areas of the application.

  5. Issue #21283: Hedgehog Mode Enhancements: Proposes enhancements to an easter egg feature, showing attention to even the less critical parts of the application for user delight.

  6. Issue #21282: Remove AntD Person Table: Another instance of replacing AntD components, further emphasizing the UI library transition's breadth.

  7. Issue #21280: Unable to Connect to EU PostHog.com: A critical connectivity issue affecting users in the EU region, highlighting potential infrastructure or regional service challenges.

  8. Issue #21278: Remove Replicator from Global Export Plugins List: Suggests adjustments in plugin configurations, possibly impacting data export functionalities.

  9. Issue #21277: Gate New Pipeline-UI Based on Pipeline Add-On: Indicates conditional feature availability based on add-on status, suggesting complexity in feature management and access control.

  10. Issue #21276: ETag Responses: Focuses on performance optimizations through ETag responses, highlighting efforts to improve web performance and resource caching strategies.

Recently Closed Issues:

  1. Issue #21274: Fix Sparkline Generation: Addressed a bug in sparkline generation for data visualization, indicating responsiveness to fixing data presentation issues.

  2. Issue #21273: Upgraded DLT Pip Package: An upgrade to a dependency package for improved features or security, reflecting ongoing maintenance and dependency management.

  3. Issue #21272: Filter PluginConfigs on Is_Global from Plugin: Enhancements in plugin configuration filtering based on global settings, showing attention to plugin management capabilities.

  4. Issue #21271: Uncomment Test Breakdown User Props with Filter: Reactivation of a previously commented-out test, suggesting efforts towards improving test coverage and reliability.

  5. Issue #21270: Interface Triangulator for Heatmap 3000: A humorous or placeholder title possibly related to improvements or fixes in heatmap functionalities, showing ongoing development efforts even in less clearly defined areas.

General Trends:

  • A significant number of issues are focused on replacing AntD components with Lemon UI components, indicating a major UI library transition that could have widespread implications across the application.
  • Several issues address user experience enhancements and bug fixes, reflecting a commitment to maintaining a high-quality user interface and smooth application functionality.
  • There are efforts towards performance optimization and better resource management (e.g., ETag responses), suggesting a focus on improving application efficiency and speed.
  • The presence of both critical fixes (e.g., connectivity issues) and enhancements to less critical features (e.g., hedgehog mode) indicates a balanced approach to prioritizing development tasks based on urgency and impact.
  • The reactivation of previously commented-out tests and attention to test coverage highlight an ongoing commitment to ensuring code reliability and application stability through comprehensive testing strategies.

Report On: Fetch pull requests



Problem

The elements stats API allows ?include=a&include=b as a way to pass multiple includes kea's URL fangling doesn't support that type of URL

~~let's lean into that and change the API so that it supports both ?include=a&include=b for older clients and include=["a", "b"] for newer clients~~

changes the default for the API to include rageclicks and autocapture since that's what toolbar wants and nothing else uses this API

much simpler that way since we don't need any query params

Report On: Fetch PR 21286 For Assessment



Pull Request Analysis for PostHog/posthog

General Overview

This analysis covers two pull requests (PRs) in the PostHog/posthog repository. Both PRs aim to simplify and clean up the codebase by removing outdated or unnecessary feature flags and related code.

PR #21287: Remove some rolled-out feature flags

  • Objective: This PR focuses on removing feature flags that are no longer needed because the features they guarded have been fully released. This cleanup reduces code complexity.
  • Files Affected: A total of 35 files were affected, with changes including the removal of feature flag checks and related conditional logic.
  • Code Quality Assessment:
    • Positive Aspects:
    • Simplifies the codebase by removing unnecessary checks and conditions.
    • Makes future maintenance easier by reducing the number of active feature flags.
    • Areas for Improvement:
    • The PR description could provide more context on how the removal of these flags was tested to ensure no unintended side effects occur.

PR #21286: Chore: Remove some rolled-out feature flags

  • Objective: Similar to PR #21287, this PR aims to clean up the codebase by removing feature flags that are no longer necessary. The focus is on flags related to Product Analytics features.
  • Files Affected: Changes were made in various files, including UI snapshots and logic files, to remove references to the removed feature flags.
  • Code Quality Assessment:
    • Positive Aspects:
    • Enhances code readability and maintainability by eliminating outdated feature flag checks.
    • The detailed list of removed flags and affected areas helps in understanding the scope of changes.
    • Areas for Improvement:
    • Like PR #21287, more details on testing and validation processes to ensure stability post-flag removal would be beneficial.

Summary

Both PRs contribute positively to the PostHog/posthog project by cleaning up the codebase and reducing complexity. They follow good practices in terms of simplifying the project structure and making it more maintainable. However, both could benefit from additional information on testing procedures to ensure that these changes do not negatively impact existing functionalities.

Report On: Fetch PR 21287 For Assessment



Analysis of the Pull Request

Overview

The pull request consists of two main changes aimed at improving the PostHog frontend, specifically within the Lemon UI component library:

  1. Fixing Tab Bar Animation (PR #21287): This change addresses a UI issue where the tab underline transition in the Lemon UI's tab component was not functioning smoothly. The fix ensures a smoother visual transition when switching between tabs, enhancing the user experience.

  2. Cleanup of Unused Feature Flags (PR #21286): This change involves removing unused feature flags from the codebase. Cleaning up these flags can reduce code complexity and potentially improve performance by eliminating unnecessary checks and logic associated with these flags.

Code Quality Assessment

  1. Clarity and Readability: The changes made in PR #21287 are clear and easy to understand. The modifications to the SCSS file for the LemonTabs component are well-documented with comments, making it easy to grasp the purpose of each style rule. The use of CSS custom properties (variables) like --lemon-tabs-slider-width and --lemon-tabs-slider-offset enhances readability and maintainability.

  2. Best Practices: The use of CSS transitions to achieve smooth animations is a standard practice in modern web development. Adjusting the duration and easing function of the transitions demonstrates attention to detail in creating a pleasant user interface.

  3. Performance Considerations: The cleanup of unused feature flags (PR #21286) is a positive step towards improving codebase health and potentially enhancing performance. Removing dead code reduces the overall size of the codebase, making it faster for developers to navigate and maintain. Although the direct impact on runtime performance might be minimal, simplifying feature flag logic can lead to more predictable code execution paths.

  4. Maintainability: Both changes contribute positively to the maintainability of the project. Fixing UI issues and cleaning up unused code are essential tasks in maintaining a healthy codebase. Regularly addressing such issues helps prevent technical debt from accumulating.

  5. Testing: While the provided information does not include details about testing, it's crucial for changes like these to be accompanied by appropriate testing efforts. For UI changes, visual regression tests can help ensure that modifications do not introduce unintended side effects. For cleanup tasks, ensuring that removed feature flags do not affect existing functionalities is essential.

Conclusion

The pull request demonstrates good software engineering practices by addressing a specific UI issue and cleaning up unused code. These changes are likely to have a positive impact on both user experience and codebase health. However, it's important to complement these changes with thorough testing to ensure they achieve their intended effects without introducing regressions.

Report On: Fetch Files For Assessment



The provided source code files cover a range of functionalities related to cohort management, querying, and testing within a larger analytics application. Here's an analysis of each file based on structure, quality, and potential areas for improvement:

Cohort Snapshot Tests (ee/clickhouse/models/test/__snapshots__/test_cohort.ambr)

  • Purpose: Contains snapshot tests for cohort-related queries, ensuring that changes to cohort calculations do not unintentionally alter the expected outputs.
  • Quality: High. Snapshot testing is a good practice for catching unintended changes, especially in complex query logic.
  • Improvement: Ensure snapshots are updated alongside intended changes to the cohort logic to prevent false negatives.

Cohort Query Tests (ee/clickhouse/queries/test/__snapshots__/test_cohort_query.ambr)

  • Purpose: Similar to the first, but focuses on the querying aspect of cohorts.
  • Quality: High. It provides a clear way to verify the integrity of cohort queries over time.
  • Improvement: Regular review and pruning of snapshots may be necessary to remove outdated tests and keep the test suite manageable.

Debug ClickHouse Queries (frontend/src/lib/components/CommandPalette/DebugCHQueries.tsx)

  • Purpose: Provides a UI component for debugging ClickHouse queries, likely used by developers or advanced users.
  • Quality: Good. The code is well-structured and uses modern React practices such as hooks and functional components.
  • Improvement: Consider adding error handling for API calls and user feedback mechanisms for loading states or errors.

Cohort API Handling (posthog/api/cohort.py)

  • Purpose: Manages the API endpoints for creating, updating, and deleting cohorts.
  • Quality: Without seeing the full implementation, it's hard to judge fully. Assuming standard Django REST Framework practices are followed, the quality is likely high.
  • Improvement: Ensure that there are adequate permissions checks and validation to prevent unauthorized access or manipulation of cohort data.

Cohort API Test Snapshots (posthog/api/test/__snapshots__/test_cohort.ambr)

  • Purpose: Contains snapshots for testing the cohort API endpoints.
  • Quality: High. Using snapshots for API response testing ensures consistency and helps catch regressions.
  • Improvement: As with the first snapshot file, ensure snapshots are kept up-to-date with intended API changes.

Testing HogQL Functions Related to Cohorts (posthog/hogql/functions/test/test_cohort.py)

  • Purpose: Tests specific functions within the HogQL layer that interact with cohorts.
  • Quality: Good. Testing at this level is crucial for ensuring the GraphQL layer behaves as expected.
  • Improvement: Expand test coverage to include more edge cases and error conditions.

Testing HogQL Transformations Related to Cohorts (posthog/hogql/transforms/test/test_in_cohort.py)

  • Purpose: Tests transformations within HogQL related to cohort processing.
  • Quality: Good. Focused tests on a specific transformation logic help ensure reliability in data processing.
  • Improvement: Similar to function tests, increasing coverage for edge cases would be beneficial.

Funnel Analysis Test Snapshots (posthog/hogql_queries/insights/funnels/test/__snapshots__/test_funnel.ambr)

  • Purpose: Contains snapshots for funnel analysis queries, an essential part of product analytics.
  • Quality: High. Ensuring that funnel analyses remain consistent over time is key to reliable insights.
  • Improvement: Regularly review these snapshots for relevance as business logic or analysis requirements evolve.

Overall Assessment: The codebase demonstrates good software engineering practices such as automated testing (including snapshot tests), clear separation of concerns (e.g., separating API logic from query logic), and modern development patterns (e.g., React hooks). Continuous improvement can focus on expanding test coverage, adding robust error handling and user feedback mechanisms in UI components, and ensuring documentation keeps pace with development to aid maintainability.