Self-hosted CE: env flag to hide SaaS billing/upgrade UI
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
Is there an existing issue for this?
I searched open issues for 'billing self-hosted' and 'HIDE_BILLING' and didn't find a matching request.
Current behavior
Self-hosted Plane CE (chart plane-ce v1.5.0, app v1.2.3) deployed via the official Helm chart shows the SaaS Billing & Plans UI to instance admins:
Workspace Settings → Billing & Planssidebar entry- Page at
/<workspace>/settings/billingrendering Pro / Business / Enterprise tier cards with "Upgrade to Pro" and "Talk to Sales" buttons - Banner ads for Plane Cloud features
For self-hosted Community Edition deployments these are irrelevant — the upgrade buttons either link to plane.so (out of the deployment) or do nothing useful inside the self-hosted instance.
Expected behavior
A way to hide the billing/upgrade UI for self-hosters, e.g.:
- A new env var like
HIDE_BILLING_PAGE=1orIS_SELF_HOSTED=1that the frontend reads to suppress the Billing tab + page entirely - OR an instance-config flag toggleable from
/god-mode/general/
This is consistent with how other OSS projects with hosted offerings handle it (e.g. GitLab CE hides EE-only UI elements unless EE is unlocked, Gitea hides its hosted-only references).
Why
- Cleaner UX for self-hosters — the billing page surfaces options none of the team can act on
- Removes confusion when admins explore settings ("do we have to pay for X?")
- Self-hosted instances already pay for the infra; the SaaS upsell adds friction to internal team adoption
Workarounds we considered (and rejected)
- CSS injection via reverse-proxy response rewrite: brittle, breaks on every frontend release
- Patching the built JS in the prebuilt image: not maintainable
- Building a custom frontend image with the billing route stripped: real ongoing burden for every CE upgrade
A first-party env flag would fix this in one line of config for every self-hosted user.
Deployment
- Helm chart: makeplane/plane-ce 1.5.0
- App version: v1.2.3
- Self-hosted on a single-domain Kubernetes deployment (Tailscale-internal)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Trace the frontend settings navigation and the //settings/billing route, then inspect how configuration is passed through the plane-ce Helm deployment. Decide which proposed configuration mechanism fits the existing setup; done means self-hosted instances can suppress the Billing & Plans entry, page, and upgrade banners without custom frontend changes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, typescript
- Domain
- devops, frontend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 52/100