Community channels
Contents
We run more than one community channel, and they are not interchangeable. Each one has a job. When a channel tries to do every job, it does none of them well.
Two channels, two jobs
The forum and Discord are our two homes. They work differently on purpose.
The forum is our primary channel. It's where people introduce themselves, show what they've built, start discussions, and ask questions. It's asynchronous and searchable, so a good thread keeps paying out to everyone who finds it afterwards.
We put the most into the forum because it's the channel we control. We can see what's happening, shape the experience, and connect it to the rest of the site, like blog posts and product features. When we changed what the forum invites, people changed how they used it, so we know iterating here works.
Discord is a group chat with PostHog people. It's quick, real-time, and gone by next week. People hang out, share what they're working on, and talk to the team directly. The value is in the conversation happening at all – not in it being findable six months later.
What works in Discord:
- Events, like book club and coworking sessions
- Polls and feedback requests – people are happy to tell us what they want
- Sharing and trying out each other's projects
- Showing off merch
What doesn't:
- Dedicated topic channels – they stay empty
- Bug and feature request channels – things got lost, so we removed them
- Forced prompts to share or shout out a product
Discord stays alive because the team is in it. If we stopped showing up, it would go quiet.
Two audiences, not one
The same conversations happen in both places, but mostly with different people. Very few members are active in both, and those who are still have one home.
So we treat them as two audiences. We don't try to move people from one to the other, or get everyone into every channel. We meet people where they are, and share things where they fit the format.
The behavior we see in each channel is channel-shaped, not user-shaped. The same person writes a careful question in the forum and banters in Discord, because that's what each space invites.
Channels we maintain but don't grow (for now)
GitHub. The public workbench. External contributors open real PRs and issues, and they deserve an answer. Whoever is covering the community routes external pull requests to the owning team. If one is routed to you, all we ask is a reply: "useful, here's why", "not a fit, here's why", or "leaving it open to see if others want it". Support heroes help here too. We don't try to turn GitHub into a discussion venue.
Reddit. A reputation surface, not a home. It's quiet, and most people who post there only post once. Whoever is covering the community watches it, replies, and flags threads to the right team when needed. We don't try to grow it or move our community there.
Pull support out
Neither the forum nor Discord is a support channel, and the single most valuable thing we can do for both is stop letting support define them.
Being blocked is a support problem. It deserves a support response, and it should be routed as one rather than absorbed into whichever channel it landed in:
This isn't about being unhelpful. It's that a space defined by blocked users never becomes a space where unblocked ones want to hang out. It's also the slowest way to get help because it's not set up for that.
Change the container, not the behavior
We don't get the community we want by asking people to behave differently. We get it by changing what the space invites. Pull, don't push.
If a page invites people to write in, they'll write in. If it invites them to search first, most of them will.
If the only thing a channel is good at is troubleshooting, troubleshooting is what it fills up with.
Prompts beat rules. A weekly "what are you working on?" thread does more than a posting guideline ever will.
Bans and grievances
Send anything community-side – a Discord ban, a moderation decision, or a complaint about how we ran a space – to community@posthog.com. It's a Gmail alias that goes to the Builder Relations and Developer Marketing teams. Anyone else who wants in can add themselves.
Don't route these to support. Support handles product and account problems, and mail to support@posthog.com gets an automated reply that tells the sender to open an in-app ticket, which a banned Discord user may not be able to do.
The standard we're enforcing is the code of conduct. Say which part of it was broken when you act on something – it makes the decision reviewable, and it's much easier to defend an appeal when the reason was written down at the time.
When you ban someone, always tell them why and how to appeal. Posting the reason in the channel before you swing the hammer is not enough – they can miss it, and then they file a support ticket or sign up again. Both of our ban flows have a place to say it:
- Discord: use the reason field in the ban dialog. Choose "Other" to write a freeform reason, and include
community@posthog.comfor appeals. The person sees it if they try to rejoin. - A PostHog organization: the suspension reason and an appeal address show on login.
When to ban, and when to warn
Ban on sight when a person acts in bad faith:
- Hateful content of any kind. Remove it and ban. Do not warn, and do not argue with it in the channel. This is not the same as a person who is rude or angry – a rude person gets the ladder below, hateful content does not.
- Abuse aimed at a person, in the channel or by direct message.
- Spam and unsolicited promotion.
- A person who says they abused a PostHog endpoint, account, or credit allowance. Tell
Support Team
Support Team too, because the account side may need action.
For everything else, use the four steps in the code of conduct: correction, warning, temporary ban, permanent ban. A first mistake that looks careless starts at correction. A first mistake that looks hostile does not.
You do not have to absorb it
No one is expected to read abuse, argue with it, or make the call alone. Remove the content first, then send it to community@posthog.com and move on. Support has the same rule for tickets – see dealing with difficult or abusive users.
When assigned, follow the guide on covering the community.
For PostHog team members
Joining Discord
- Join at discord.gg/posthog with your usual Discord account.
- Post in #team-builder-relations so we can give you the teammate role.
- Once you have the role, you'll show up as a PostHog teammate in the server.
Subscribing to the events calendar
The PostHog Events calendar has our IRL and online events, so you can see what's coming up and join in.
- Sign in to your
@posthog.comGoogle account. - Open the PostHog Events calendar.
- Click Add when Google Calendar asks if you want to add it.
For public events, see the events page. For how we plan and run events, see marketing events.
How to show up
In the forum, follow the guidelines for answering community questions. Use the moderation tools to escalate to support, delete posts, or flag feedback to the right team.
In Discord, be a person, not a support desk. React to things so people know they've been seen. Share what you're working on, and ask what other people are working on. Join the events, too – you can see what's coming up in Discord and on the events page.
Route, don't absorb. If something belongs in support or on the roadmap, send it there rather than answering it in-channel.
What we're working on
Community channels are owned by
Brittany Joiner
Brittany Joiner on the Builder Relations Team
Builder Relations Team. See the team's goals for what's in flight, including how we're repositioning the forum and building out triage.





