Each feature at PostHog has an Engineering owner. This owner is responsible for maintaining the feature (keep the lights on) and championing any efforts to improve it (e.g. by bringing up improvements in sprint planning).
When a bug or feature request comes in, we tag it with the relevant label (see labels below). The owner is responsible for then prioritizing any bug/request that comes in for each feature. This does not mean working on every bug/request, an owner can make the deliberate decision that working on something is not the best thing to work on, but every request should be looked at.
💡 The Team Platform works a bit differently. Each subteam owns certain parts of PostHog. Among other things, this helps reduce any lead time when critical fixes are needed. Please review the Team Platform page for further details.
Feature list
You can also view the list directly in GitHub and filter issues there.
| Feature | Owner | Label |
|---|---|---|
| Actions | @pauldambra | feature/actions |
| Actors Modal | @EDsCODE | feature/actors-modal |
| Annotations | @pauldambra | feature/annotations |
| API Structure | @Twixes | feature/api-structure |
| Application Performance Monitoring (APM) | @pauldambra | feature/apm |
| Async migrations | Ingestion (Team Platform) | feature/async-migrations |
| Billing | @timgl | feature/billing |
| Cohorts | @EDsCODE | feature/cohorts |
| Correlation Analysis | @neilkakkar | feature/correlation-analysis |
| Dashboards | @Twixes | feature/dashboards |
| Data Management | @alexkim205 | feature/data-management |
| Events | @alexkim205 | feature/events |
| Experimentation | @neilkakkar | feature/experimentation |
| Feature Flags | @neilkakkar | feature/feature-flags |
| Funnels | @neilkakkar | feature/funnels |
| Group Analytics | @macobo | feature/group-analytics |
| Onboarding | @kappa90 | feature/onboarding |
| Lifecycle | @EDsCODE | feature/lifecycle |
| Paths | @neilkakkar | feature/paths |
| Permissions | @Twixes | feature/permissions |
| Persons | @alexkim205 | feature/persons |
| Project Home Page | @rcmarron | feature/home |
| Property Filters | @mariusandra | feature/filters |
| Recordings | @rcmarron | feature/recordings |
| Retention | @EDsCODE | feature/retention |
| Saved Insights | @Twixes | feature/saved-insights |
| Session Analytics | @rcmarron | feature/sessions |
| Settings (personal & project) | @liyiy | feature/settings |
| SSO | @mariusandra | feature/sso |
| Stickiness | @EDsCODE | feature/stickiness |
| Toolbar | @pauldambra | feature/toolbar |
| Trends | @EDsCODE | feature/trends |
Why did we establish feature owners?
At our Engineering Offsite in February 2022 we realized the issue that some bugs and maintenance tasks may have been falling through the cracks because there were no clear owners.
Don't just copy other products
Some of the features we are building may exist in other products already. It is fine for us to be inspired by them - there's no need to reinvent the wheel when there is already a standard way our users expect things to work. However, it is not ok for us to say 'let's copy how X does it', or to ship something with the exact same look and feel as another product. This is bad for two reasons:
- We're highly unlikely to overtake everyone else if we just build the open source version of everything that is already out there.
- We may expose ourselves to legal risk/challenges from those companies, especially if they can point to a public issue where we have said 'let's copy X'.