Skip to Content
EVERJUST · PORTFOLIO

The stack.

Three layers a company runs on. We design, build and operate all of them, and all three are live.

What each layer means

Three layers a company runs on — the system it works inside, the labour that runs it, and how it gets found. We design, build and operate the whole stack, and all three are live.

THE STACK

Three layers a company runs on.

Three live products we build, run and pay for the mistakes of.

  1. 01INFRASTRUCTUREEVERJUST.APP

    The system of record your company runs inside — 34 apps on your own database.

    LIVE
  2. 02LABOURCustomAgents

    The workers inside it — an agent with its own email address, phone number and Slack profile.

    LIVE
  3. 03REACHCustom Domain

    How it gets found and branded — managed domains, DNS, HTTPS and edge routing.

    LIVE
Read bottom-up: infrastructure first, then the labour that runs it, and the reach that gets it found. We design, build and operate all three.

Portfolio companies

Built by other teams
Portfolio company

Building something?

We back and showcase a small number of products built by other teams.

Talk to us →
IN DEPTH

Why each one is built the way it is.

For every layer: the problem it solves, the decision that separates it from the obvious version, and who it is for.

01 · INFRASTRUCTURE

EVERJUST.APP: a business operating system that is yours, not a seat in ours

LAYER
Infrastructure
STATUS
Live
ISOLATION
One database per customerNot a tenant column in a shared table.
The problem

The problem. Most companies do not run on one system. They run on a stack of them, joined by exports, spreadsheets and one person whose real job has quietly become reconciliation. Each tool is defensible on its own. The seams between them are where the work disappears.

EVERJUST.APP is a branded business operating system: 34 integrated apps, so the work that normally crosses tool boundaries stays inside one system instead of becoming five copies that drift apart by Thursday.

The design decision

The design decision. The obvious way to build a platform like this is multi-tenant. One application, one large database, a tenant column on every row. It is cheaper to run, simpler to upgrade, and what almost everyone does. We did the other thing. Each customer runs on their own database rather than a shared tenant. The isolation boundary is a database, not a filter in a query.

That choice costs us. Upgrades become a fleet exercise instead of one deploy, and operations are heavier by design. What it buys is a system that is genuinely the customer's: it can be extended without first asking whether the change is safe for every other company on the machine, and there is no shared table their data has to be disentangled from later. The branding follows the same logic. The software carries their name, not ours.

Who it is for

Who it is for. Companies that have outgrown a drawer of point tools and want one system of record with the connective work already done. Not for a team that needs one narrow application. If the answer is a single tool, buy the single tool.

Open the EVERJUST.APP page

02 · LABOUR

CustomAgents: an agent with a real working identity

LAYER
Labour
STATUS
Live
IDENTITY
Email · phone · SlackReal endpoints on channels people already use.
The problem

The problem. An AI agent that lives inside a chat window cannot be addressed. Nobody can copy it on a thread. Nobody can call it. It has no presence where work actually arrives, so every useful task turns into a bespoke bridge someone has to build and then maintain.

CustomAgents gives an agent its own email address, its own US phone number and its own Slack profile.

The design decision

The design decision. The obvious approach is a bot user in one workspace, or an API other systems are expected to call. Both make the agent a destination: something you go to, in a tool you adopted first. We inverted it. The agent gets real endpoints on the channels people already use, so nobody changes how they work. They get a new address that happens to be answered by software.

The second decision matters as much. Every agent runs in draft mode or automated mode. An agent that composes and waits for a person to send is useful on the first day and safe on the first day, because the worst failure is a bad draft somebody deletes. Moving to automated is a decision you make after watching the drafts, when the work has become boring enough to trust. Full autonomy by default spends trust before it has been earned.

Who it is for

Who it is for. Teams that want an agent doing real work inside the inbox, the phone line and the channel they already have. Not for anyone shopping for a website chat widget.

Open the CustomAgents page

03 · REACH

Custom Domain: the worst onboarding step, handled

LAYER
Reach
STATUS
Live
SURFACE
Domains · DNS · HTTPSEdge routing users never have to think about.
The problem

The problem. Every platform that lets customers bring their own domain hits the same wall. The instructions are correct and the customer still fails: wrong record type, a proxy in front of it, a registrar interface that names everything differently, propagation that looks exactly like a bug. Then certificates, renewal and edge routing. It is a support queue with a product attached.

Custom Domain handles managed domains, DNS detection, verification, HTTPS and edge routing that users never have to touch.

The design decision

The design decision. The obvious version is a documentation page and a Verify button. That puts the burden of understanding DNS on the person least equipped to carry it, then blames them politely when it fails. We moved the correctness into the service instead. It detects what is already configured, verifies it, provisions HTTPS and wires the routing.

The less visible decision is the one about failure. The service is built to know where a domain actually stands, so that when something is wrong it can say what is wrong. That sounds like plumbing, but it is the difference between a support answer that names the problem and one that begins with "have you tried waiting". Diagnosis beats reassurance, and it is the only version of this that shrinks a support queue instead of feeding it.

Who it is for

Who it is for. Product teams shipping something customers put their own brand in front of, and teams whose support queue is full of registrar screenshots.

The same standard on client work

Each layer had an easier version available, and in every case it made the promise slightly untrue. Own database instead of a tenant column. Real addresses instead of a bot user. Correctness in the service instead of in the documentation. The harder architecture is worth it exactly when it is the one that makes the claim honest.

Client work gets the same standard. Enterprise builds happen in your cloud and your repositories from the first commit, with the architecture settled before anyone writes feature code. Feasibility answers whether a product should exist at all, before an engineering budget is committed, and a do-not-build is a legitimate result with the reasoning shown. A storefront rather than a platform is what the Website Build is for: configured and bought in the browser, no meeting required. Growth runs as a flat monthly program with a written report every month.

Every engagement is fixed-scope and priced in public on the store. No rate card, no billable hours, no proposal cycle. If you would rather talk first, contact us or book a time.

Open the Custom Domain page