Plane
Plane is a self-hosted, open-source (Apache 2.0) issue tracker. Same project-key + issue-number model as Jira and Linear (e.g. WORK-123). The big difference from the hosted alternatives: it runs in your own infrastructure — no third-party sub-processor for commit metadata.
This is the recommended pairing for fremforge customers on the EU-sovereignty path.
Forgejo side: external issue tracker
Repo Settings → “Advanced Settings” → External issue tracker.
| Field | Value |
|---|---|
| External issue tracker URL | https://plane.example.com/<workspace>/projects/<project-id>/issues?peekIssue={user}-{index} |
| External issue tracker URL format | https://plane.example.com/<workspace>/projects/<project-id>/issues?peekIssue={user}-{index} |
| External issue tracker number format | Regexp |
| External issue tracker number format regexp | ([A-Z][A-Z0-9]+)-([0-9]+) |
Replace plane.example.com, <workspace>, <project-id> with your Plane deployment’s values. Plane’s URL shape uses peekIssue to surface the issue in a side-panel without navigating away from the workspace view — pleasant from a fremforge link.
If you run multiple Plane projects against one fremforge repo, configure the issue style at repo level rather than baking a project ID into the URL. Plane’s peekIssue=<KEY>-<INDEX> resolves cross-project as long as the key is unique workspace-wide.
Recommended commit-message format
fix(billing): periodisering reversal on day-30 cancel
WORK-892Plane’s REST API natively supports magic-words in linked-commit comments (configurable on workspace level — see Plane’s docs at Configuring linked-PR automation). Setting fixes WORK-892 triggers Plane’s automation to move the issue to “Done” when the inbound webhook arrives with the PR-merged event.
Tracker side: inbound webhook (recommended)
Plane ships native Forgejo webhook support as of Plane 0.18 (May 2026 release):
- Plane workspace → Settings → Integrations → Forgejo / Gitea → Connect new repository.
- Paste your fremforge repo URL (e.g.
https://frem.sh/<your-org>/<your-repo>). - Plane returns a webhook URL + signing secret. In fremforge: Repo Settings → Webhooks → Add Webhook → Forgejo → paste both.
The integration handles:
- Linked commits + PRs surface on each Plane issue.
- PR merge with magic words (
closes WORK-892) auto-transitions the issue to “Done”. - Branch creation from Plane’s issue-detail view (“Create branch in fremforge”) POSTs to fremforge’s Forgejo API and creates a branch named
<key>-<index>/<issue-slug>.
This is the only tracker in this section that has near-bidirectional integration without operator-side relay code — because Plane is upstream-friendly to Forgejo (the maintainer team explicitly tests against it).
Sub-processor implications
Self-hosted = zero sub-processor footprint. Plane runs in your infra; commit metadata never leaves your perimeter:
- No DPA addendum needed beyond your own Plane deployment’s posture.
- Sovereignty story stays intact — both fremforge and Plane stay EU-hosted (or wherever you’ve deployed them).
- Plane’s commercial cloud variant (Plane Cloud) is AWS US-east — if you choose that, the sub-processor implications mirror Linear. The self-hosted edition is the right fit for sovereignty-sensitive workloads.
What this doesn’t do
- Plane’s modules / cycles / pages / views surface only inside Plane; fremforge stays at the issue-link level. You won’t see “this PR is on the Sprint 14 cycle” in fremforge’s PR view.
- Cross-workspace links aren’t supported — every linked issue must live in the workspace the integration was configured against.
- The branch-create-from-issue path requires the Plane → fremforge OAuth grant to carry
write:repositoryscope (the integration wizard prompts for this; if you decline, the linked-commit surface still works one-way).
Why we recommend Plane
For EU-sovereignty customers, Plane is the on-brand pairing — same governance model as fremforge (self-hosted, Apache 2.0, EU-deployable), same security posture, no third-party data flow. The integration is the smoothest of any tracker in this section because Plane’s team builds against Forgejo’s webhook shape directly.
For customers already on Jira / Azure Boards / Linear: keep what you have; the external-tracker primitive in fremforge works fine with all of them. Plane is the better fit for greenfield projects.