I do not trust a delivery stack I cannot open. Atlassian killed Jira Server. Linear will never give you the source. ClickUp is a product, not a codebase. If the tool that holds your clients, hours and documents can vanish behind a pricing PDF, it is not infrastructure. It is a lease.
| Topic | ||||
|---|---|---|---|---|
| What you get | Org, board, time, docs, agent | Issues. Beautifully. | Issues, plus a marketplace | Issues, cycles, roadmaps |
| Can you run it? | Yes. Docker Compose, the lot. | No. SaaS only. | Cloud. Data Center is sunsetting. | Yes, for the tracker. |
| Can you read it? | Yes. That is the deal. | No | No | Yes, AGPL tracker |
| Lock-in | Your database, your call | Habit, plus their cloud | Ecosystem. Famous for it. | Low, one product |
| Identity | One core.User, five JWTs | Linear account | Atlassian account | Plane account |
| Launch | Portal mints a short-lived app token | You are already in Linear | SSO into the cloud | Sign in to Plane |

Pick ShellStack if
You want the organisation, the board, the timer, the wiki and the agent on software you can run and inspect — not a PM clone with a GitHub badge.

Pick Linear if
You are an engineering team that wants the fastest closed issue tracker on earth, and you are fine that you will never host it.

Pick Jira Cloud if
Procurement already signed Atlassian, and leaving would cost more than staying unhappy.

Pick Plane if
You only need an open issue tracker with cycles. You do not need time, documents or an organisation plane.
People say they want open source and then they buy Linear, because Linear is nice. I get it. I have used it. The week you need the data out — or Atlassian announces another cloud-only chapter — “nice” is not a strategy.
Plane and OpenProject are the honest open alternatives in project management. Plane wants to be Linear. OpenProject wants to be Jira. Both are trackers. They do not invoice. They do not sit next to a wiki that knows the client. They do not launch four products from one membership. Fine, if a tracker is the whole job.
What “open” is doing here
ShellStack is the control plane. Tides, TurtleTime, Kraken and Shelly are the apps. You run them with Compose. You can read how a seat works, how a workspace is scoped, how a launch token is minted. That is boring on purpose. Boring is what you want under billing and permissions.
What you actually inspect
- Five Next.js SPAs and one Django API. The browsers never talk to Postgres, R2, Y-Sweet or Composio directly.
- Shared core.User, Organisation, Workspace and Client. Product flags (can_access_tides, can_access_turtletime, …) are membership facts, not five user tables.
- Separate JWT secrets per app. A Tides token cannot call TurtleTime. The portal exchanges its session for a short-lived launch token, then the product issues its own pair.
- Workspace context is the X-Active-Workspace-Id header. The portal is organisation-scoped. That split is in the code, not a wiki page.
- Composio connections are user-owned and workspace-linked. Automation rules fire server-side and still have to pass the target product’s permissions.
Closed suites win demos. Open suites win the 3am when the vendor’s status page is yellow and your timesheets are not.
If you cannot grep it, you do not own it.
When I would not pick us
If you need SOC theatre and a 400-app catalogue, Okta and Atlassian still have the binders. If you want zero ops, Linear Cloud is less furniture. Open source is extra work. We think the work is cheaper than the lease.
Buy ShellStack if open source is not a sticker. It is how you keep clients, hours and documents when a vendor changes their mind.



