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:
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.
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.
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.
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.
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
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.
The PostHog development team has been actively pushing updates and new features across several branches. Key areas of focus include:
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.
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
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.
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.
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.
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.
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.
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.
Issue #21282: Remove AntD Person Table: Another instance of replacing AntD components, further emphasizing the UI library transition's breadth.
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.
Issue #21278: Remove Replicator from Global Export Plugins List: Suggests adjustments in plugin configurations, possibly impacting data export functionalities.
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.
Issue #21276: ETag Responses: Focuses on performance optimizations through ETag responses, highlighting efforts to improve web performance and resource caching strategies.
Issue #21274: Fix Sparkline Generation: Addressed a bug in sparkline generation for data visualization, indicating responsiveness to fixing data presentation issues.
Issue #21273: Upgraded DLT Pip Package: An upgrade to a dependency package for improved features or security, reflecting ongoing maintenance and dependency management.
Issue #21272: Filter PluginConfigs on Is_Global from Plugin: Enhancements in plugin configuration filtering based on global settings, showing attention to plugin management capabilities.
Issue #21271: Uncomment Test Breakdown User Props with Filter: Reactivation of a previously commented-out test, suggesting efforts towards improving test coverage and reliability.
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.
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
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.
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.
The pull request consists of two main changes aimed at improving the PostHog frontend, specifically within the Lemon UI component library:
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.
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.
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.
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.
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.
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.
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.
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.
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:
ee/clickhouse/models/test/__snapshots__/test_cohort.ambr
)ee/clickhouse/queries/test/__snapshots__/test_cohort_query.ambr
)frontend/src/lib/components/CommandPalette/DebugCHQueries.tsx
)posthog/api/cohort.py
)posthog/api/test/__snapshots__/test_cohort.ambr
)posthog/hogql/functions/test/test_cohort.py
)posthog/hogql/transforms/test/test_in_cohort.py
)posthog/hogql_queries/insights/funnels/test/__snapshots__/test_funnel.ambr
)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.