Agencies outgrow ClickUp for a boring reason. You can configure anything. You still do not have a client, an invoice, or a wiki that knows the project — unless you build it out of custom fields and Zapier. Notion has the same trick with databases. Jira has the same trick with plugins. I got tired of tricks.
| Topic | ||||
|---|---|---|---|---|
| Shape | Five apps, one organisation | One product | Tracker gravity | A page tree |
| Timer | TurtleTime | A module | A plugin | A database, if you squint |
| Board | Tides | Tasks | Jira | Linked database |
| Wiki | Kraken | Docs | Confluence | Pages |
| Auth | Portal token → product JWT | One ClickUp session | Atlassian session | One Notion session |
| Clients | core.Client, flagged per product | A custom field, usually | A project, if you squint | A database you invent |
| Glue | Shared ledger, launch tokens, Composio | Inside the blob | Marketplace + Forge | API and hope |

Pick ShellStack if
You already know the jobs are different, and you have been punished either by four vendors or by one vendor that flattened them.

Pick ClickUp if
You need one tab this week and a checklist that covers whiteboards, chat and goals. Breadth is the product.

Pick Jira if
The company already orbits Atlassian. Time and docs will arrive as plugins. That is a valid life.

Pick Notion if
You want to invent internal tools out of databases. A wiki that can be a CRM is a superpower until it is a junk drawer.
A timer should not look like a wiki. An agent console should not look like a kanban column. ClickUp forbids that kind of drift by stuffing everything into one settings page. We allow the products to drift in craft. We forbid them to drift in organisation: one person, one seat, one client directory, one bill.
The seams that are not Zapier
- Invite once in ShellStack. Tick Tides, TurtleTime, Kraken, Shelly. Workspace restrictions if a contractor should not see every client.
- Home launches an app with a short-lived token. The product then uses its own JWT secret. Tokens are not interchangeable on purpose.
- core.TimeEntry is the hour. Tides writes it. TurtleTime invoices it. Nobody syncs two timesheet tables.
- core.Client is the customer. Product visibility flags (is_tides, is_turtletime) hide it where it should not appear.
- Shelly’s write path is agent-inbox plus a Gate. Destructive tools wait for a human. Mattermost can show the card.
- Kraken’s live editor talks to Y-Sweet. Permissions stay in Django. Attachments land on private Kraken R2, not the public CDN.
- Composio connections are workspace-linked. A GitHub assignment can become a Tides task. A calendar end can draft time. The rule still has to pass product permissions.
How the five apps actually talk
They do not sync copies. They share records, and they borrow each other through the API.
- Identity: one core.User. Five JWT secrets. Portal mints a launch token; the product issues its own pair. The app switcher jumps siblings without a fourth invite.
- Directory: one core.Client, one Workspace. Tides boards, TurtleTime projects, Kraken pages and Shelly crews all point at the same ids. Visibility flags hide a client from an app that should not see it.
- Time: one core.TimeEntry. Tides writes it with a tides_task. TurtleTime invoices it. Shelly can start/stop the timer with the same task id on the card.
- Knowledge: Kraken keeps ACL. Tides and TurtleTime search linked documents through the API. Shelly search_docs / read_doc go through visible_documents(). Chunks only mirror into snail knowledge after that filter.
- Agent: Shelly Hub is the runtime. The sidebar is the same teammate inside TurtleTime (page_context: app + path), with first-party tools for the board, the timer and the wiki. Writes land in Tides agent-inbox or wait on a Gate.
- Outside world: one Composio connection, three uses — workspace rules, Shelly search/execute tools, Kraken Deep Search citations. Secrets stay in the API process.
- Research: Kraken Ask and Shelly web search call CRW. SearXNG and Chrome are not on Django’s network.
The cost is real. Five URLs. A Home to launch from. ClickUp will win the demo where someone says “wait, docs are already here?” We will lose that demo. I am fine with it.
A suite is a decision about what is allowed to drift apart.
Use this shape when collapsing work into one surface is the actual risk.



