Skip to main content

Roadmap

What we’re building.

Everything we are building for small and midsize businesses, in one place. 36 entries, each with the stage it is actually at and a fact you can go and check — 2 live today, 17 still ahead of us. You will never have to guess which is which.

We publish stages, not dates. A stage is something you can verify; a date on an unbuilt feature is a guess, and a percentage is a number without a definition. So each entry says where it genuinely stands — Exploring means we have made the case for it and are testing that case with customers before we commit.

Who this is for

Built for small and midsize businesses. All of them.

If you run a shop, a firm, a restaurant group, a service company or a contracting business, IRIS starts from the same place: describe a problem the way you would to a colleague, and it asks what it needs to know. Nothing about that assumes an industry.

What we then build on top is depth — the vocabulary, the documents and the sequence a particular kind of business actually uses.

Live

Available to use today. No invitation, no waiting list.

In development

Built and running internally. We open it to customers once it clears our own bar, not before.

Designed

Specified and signed off — what it does, what it deliberately will not do, and how to turn it off. Build not started.

Planned

Committed and tracked against a real issue. Design comes next.

Exploring

We have made the case for it and are testing that case with customers. Not committed yet.

Everything in flight

36 things, 5 stages, one fact each.

Filter by track, or read straight down a column. Every entry that is not yet built lists the work it takes to get there — including the parts that are a decision rather than code.

Live

2

Available to use today. No invitation, no waiting list.

What IRIS does

Try IRIS on this site

Answer a few questions about a problem in your business and IRIS produces a planning brief you can read and edit. Nothing to install, no account to make.

How we know: Open the IRIS page and use it. There is no sign-in in front of it.

Open it →
What IRIS does

Privacy, terms, and every sub-processor named

What we hold, how long we hold it, and a list of every third party that touches your data — named, not summarised as 'trusted partners'.

How we know: Three published pages. Each one states on its face that it was drafted against verified system behaviour and has not yet been read by a lawyer.

Open it →

In development

15

Built and running internally. We open it to customers once it clears our own bar, not before.

What IRIS does

IRIS Phase 1 — the planning workspace

The full workspace: describe a problem in conversation, IRIS asks what it needs, and you get an editable plan that separates what you confirmed from what it assumed.

How we know: Built and deployed. Not open to customers — our own readiness review records the status as 'not ready for customer invitation or production use', and scoping is how the queue is formed.

Open it →
What IRIS does

A plan you can edit, not a report you read once

Change any line, and see which parts you confirmed against which parts IRIS assumed on your behalf. The assumptions are marked, so you always know what is load-bearing.

How we know: The editable specification and the confirmed-versus-assumed marking are built and running in the workspace, behind the same invitation gate as the rest of Phase 1.

What IRIS does

Ask a question without starting a plan

Sometimes you want an answer, not a planning session. General questions stay separate from planning conversations, so a quick question does not turn into a document.

How we know: Built and merged: a general question is a distinct kind of conversation from a plan, so the two cannot be confused in the workspace or in what gets sent for review.

What IRIS does

Hand the plan to a real engineer

Send the finished plan to a Magnolia engineer who reads the whole conversation and comes back to you. The plan is the handoff, not the deliverable.

How we know: The review path is built, and its destinations are explicit in code: asking for a human engineer is one destination, and contributing knowledge is a separate one you have to choose deliberately.

What IRIS does

Attach your own quotes, contracts and drawings

Put a document in front of IRIS and have it read what is in there, instead of asking you to retype it.

What it takes

  1. Build the panel that reaches the service. The service, its limits and its tests are already on main; nothing calls them.
  2. Put the attachment control in the composer as well, because below 1280px the side panel is a closed overlay.
  3. Ship the two disclosures the record requires: what the scope is used for, and that an approved one cannot be withdrawn.
  4. Name the file in our own copy beside the error, never inside it -- a file called 'Sign in sheet.pdf' once matched a rule and came back as an authentication failure.

How we know: The document service and its tests are on the main branch. Nothing in the workspace reaches it yet — the panel that would is still a placeholder, so no customer can use this today.

Under the hood

Hard limits, published rather than discovered

Every boundary is a constant in the code, not a quota we tune quietly: 12 turns per planning conversation, 8,000 characters per message, 60,000 across a conversation, 10 documents each up to 10 MB, 40,000 characters extracted per document, 500 pages per PDF.

How we know: Read them off the source: MAX_USER_TURNS, MAX_MESSAGE_CHARS, MAX_TOTAL_CHARS, MAX_DOCUMENTS_PER_CONVERSATION, MAX_DOCUMENT_BYTES, MAX_DOCUMENT_CHARS and MAX_PDF_PAGES. Where a limit truncates rather than refuses, we say which — the character cap on extraction clips, and content past it is not read.

Under the hood

Two thinking budgets, and you pick

A standard turn answers quickly. A thorough turn is allowed to take substantially longer and is given a wider deadline to finish in, for the questions that deserve it.

How we know: Two effort levels exist in the service and each carries its own budget in milliseconds. They were widened after a real customer request timed out at 30 seconds while the model had already finished and been paid for — the answer was thrown away, which is the defect that produced the current numbers.

Under the hood

Answers stream as they are written

Text arrives token by token rather than in one block at the end, so a long answer is readable while it is still being produced.

How we know: The streaming path is built end to end, from the model adapter through the HTTP function to the workspace. One consequence we state rather than hide: a turn that uses tools is answered without streaming, because the streaming path discards the frames those tools produce.

Under the hood

Secrets are refused before they are stored

Passwords, keys and card numbers are rejected at the door rather than deleted afterwards. Deleting it straight away is not the same as never having held it, and the difference matters if you are ever asked.

How we know: Eight content rules run against every message, and the same check runs on extracted document text and on a transcript before it is written to storage. Validation happens before the write, not after — asserted by a test that fails if the order is swapped.

Under the hood

The model endpoint is not on the public internet

The production model endpoint refuses public network access. Traffic reaches it over a private path inside our own tenant.

How we know: Verified directly on the production resource: public network access is disabled, per ADR 0021. That is a property of the deployed estate you can ask us to re-demonstrate, not a diagram in a slide deck.

What IRIS does

See what you have used, before you hit a limit

What you have used and what is left, shown before you run out — and when you do hit a limit, a sentence that says which one and what to do, not a generic failure.

How we know: Per-customer entitlements and usage metering are built under MSAE-216, along with limit messages that name the limit. Nothing surfaces the running total to the customer yet, so today you learn where the edge is by reaching it.

How well it knows your business

Any business, on day one

The general starting point. Cross-industry operational planning that does not assume what you do for a living — it asks.

How we know: `general-business` is an active domain in the product's own domain catalog and the default every conversation falls back to. It is a template rather than a specialised pack, which is exactly what it claims to be.

How well it knows your business

Construction company management

Estimating, job costing, change orders, crews, subcontractors and procurement, in the words your crews already use — across fifteen specialties from concrete to glazing.

How we know: The one domain built out in depth: an active `construction` domain at playbook v2 with fifteen named specialties, plus a reference pack of vocabulary, roles, artifacts and workflow stages. Every other domain runs the general playbook.

How well it knows your business

Retail and food service

Inventory, counts, waste, scheduling, shift checklists and supplier invoices — the operations that eat a manager's week.

What it takes

  1. Promote it from a template to a tailored pack, the way construction was.
  2. Bring across what the Synergy operations console already learned about counts, waste and supplier invoices.
  3. Validate against an operator who is not the one we already work with.

How we know: `retail-qsr` is an active domain today, at template maturity rather than a tailored pack. The deepest work in this area is the Synergy operations console, running against one operator's live data.

How well it knows your business

Professional services

Utilisation, engagements, handoffs, and the reporting a partner asks for on a Friday afternoon.

What it takes

  1. Promote it from a template to a tailored pack.
  2. Model utilisation, engagements and handoffs -- the three things every firm of this shape argues about.
  3. Validate with a firm that bills time, not deliverables.

How we know: `professional-services` is an active domain today, at template maturity. It works on the general playbook; no tailored pack has been written for it yet.

Designed

2

Specified and signed off — what it does, what it deliberately will not do, and how to turn it off. Build not started.

What IRIS does

IRIS reads the public web

Let IRIS look something up while it plans — a code, a standard, a supplier's published spec — instead of relying only on what it was trained on.

What it takes

  1. Add a diagnostic setting to the model accounts first, so a request body is recoverable after the fact. A past incident could not be explained because nothing logged it.
  2. Build queries in code from the customer's own words. The model never composes the search string, so it cannot put the transcript into one.
  3. Off by default, chosen per turn, never remembered. Absence of the tool in the request, not a flag the service interprets.
  4. Strip live links and bare URLs before anything reaches a document a human opens.
  5. Three independent switches, including one at the subscription level that does not depend on our code being correct.

How we know: ADR 0049, currently proposed and awaiting acceptance. It records three independent ways to switch the capability off, and one risk we can detect afterwards but cannot prevent. Not implemented.

What IRIS does

Contribute a scope to Magnolia Synergy

Choose to send a redacted version of your plan into the knowledge Magnolia holds, so the next business like yours starts further along.

What it takes

  1. Show the customer the exact redacted text before it leaves, not a summary of it.
  2. Say plainly, on the screen where they approve, that an approved scope cannot be withdrawn.
  3. Keep the two destinations separate in code, so asking for an engineer can never contribute knowledge by accident.
  4. Accept the record. It is proposed and its author cannot accept it.

How we know: ADR 0047, currently proposed. Its rules require that you read and approve exactly what leaves, and that we tell you plainly that an approved scope cannot be withdrawn.

Planned

7

Committed and tracked against a real issue. Design comes next.

What IRIS does

Pay for IRIS by card

Buy it without a purchase order, a contract negotiation, or a call — the way a small business actually buys software.

What it takes

  1. Decide what a unit is: a plan, a seat, or a month. Nothing else can be designed before that.
  2. Take payment on a hosted checkout so card data never touches our infrastructure.
  3. Connect the entitlement checks that already exist to a paid state, rather than building a second concept of access.
  4. Write the cancellation, refund and failed-payment behaviour before the first charge, not after the first complaint.

How we know: Tracked as MSAE-217. Nothing is designed and no payment path exists; we take no card details anywhere on this site today.

What IRIS does

Sign in with the accounts you already have

Use your existing sign-in instead of another password, so someone who leaves your company loses access when they leave it.

What it takes

  1. Microsoft Entra first: most businesses we talk to already have it and are already paying for it.
  2. Map groups to roles, so access ends when someone leaves the company rather than when we remember.
  3. Automatic provisioning after sign-in works, not at the same time -- the two fail differently and debugging both at once is how you ship neither.
  4. Keep named invitation as a fallback for businesses with no identity provider at all.

How we know: Asked for often enough that it is a standing question in our own scoping form's security section. Tracked and not designed — today, access is by named invitation only.

Under the hood

Answers that cite the page they came from

Retrieval over your own uploaded documents, with each claim carrying a pointer back to the document and the passage it came from, so a plan can be checked rather than believed.

What it takes

  1. Split extracted text into passages that keep a stable pointer back to document, page and position.
  2. Provision an embedding model and an index inside the tenant that already holds the documents. No new place for customer data to live.
  3. Retrieve per turn and pass only the passages that matter, instead of the whole document -- which is also what makes it work past the extraction character cap.
  4. Render each claim against the passage it came from, so a number in a plan can be clicked back to the line it was read from.
  5. Score it on wrong citations, not just missing ones. A confident citation to the wrong paragraph is worse than none.

How we know: Text extraction is built and hardened — PDF geometry, page boundaries and a parse deadline. Retrieval itself is not: no embedding, no index, no passage-level citation exists. This is the next layer on a foundation that is already load-bearing.

Under the hood

The plan as data, not just prose

A schema-constrained specification — tasks, systems, owners, dependencies as typed fields — so the output can populate a project tool or a ticket queue instead of being copied by hand.

What it takes

  1. Define the specification as a schema -- tasks, systems, owners, dependencies, assumptions -- with fixtures that must fail.
  2. Constrain the model to emit that shape, rather than generating prose and parsing it afterwards.
  3. Keep the readable document as a rendering of the same object, so there is one source of truth and not two.
  4. Version the schema on day one, so a plan written today still opens in a year.

How we know: The specification is generated as prose today. Typed schemas already govern the runs and evidence around it, so the shape is not novel here; constraining the model's output to one is unbuilt.

What IRIS does

Told when a person replies, without checking

An email when your access is approved or a reviewer comes back, so the workspace is somewhere you go when there is news rather than somewhere you check.

What it takes

  1. Approval first: the email that says your workspace is open, with the link to it.
  2. Then reviewer replies, which is the one people are actually waiting on.
  3. Send from an address that accepts a reply, because people will reply to it.
  4. One switch to stop them, honoured everywhere, before the first send.

How we know: Tracked as MSAE-200. The review path that would trigger it is built; the notification is not, so today the only way to know is to open the workspace and look.

How well it knows your business

Construction project management

Planning at the level of a single project rather than the business around it — sequence, submittals, RFIs, and the decisions that hold a job up.

What it takes

  1. Name the artifacts a project actually runs on: submittals, RFIs, schedule of values, punch list.
  2. Write the vocabulary and the workflow stages as their own pack, separate from the company-level one.
  3. Validate with a builder running several jobs at once, before writing more of it.
  4. Keep the packs independent, so a firm can use company management, project management, or both.

How we know: The construction pack covers company-level operations today. Project-level planning is not a separate pack and has not been designed; it is named here because customers ask for it, not because it exists.

How well it knows your business

Field service and the trades

Dispatch, route density, parts on the van, and the gap between what was quoted and what the technician actually found.

What it takes

  1. Decide first whether this is its own domain or a specialty inside construction. Getting that wrong costs a rewrite.
  2. Dispatch, route and parts vocabulary, which is where it genuinely differs from contracting.
  3. Validate with a service company that dispatches daily.

How we know: No domain exists for this. The construction domain's own description mentions field-service operations, which is the closest we have; a tailored pack has not been written or designed.

Exploring

10

We have made the case for it and are testing that case with customers. Not committed yet.

Under the hood

Connect the systems you already run

Read from the accounting package, the project tool and the document store you already pay for, so IRIS plans against what is true today rather than what you can remember in a meeting. Both major AI vendors now ship this as a connector layer; we would follow the same open standard rather than invent a private one.

What it takes

  1. Adopt the open connector standard both major vendors now use. Inventing a private one is a cost with no upside.
  2. Unblock the SharePoint connector our own register already lists as declared and blocked.
  3. Read-only first. No connector writes to a customer's system until a separate decision says it may.
  4. Per-connector consent, and a record the customer can read of exactly which records were pulled into a conversation.
  5. Settle credential custody, rotation and revocation before accepting a single customer token.

How we know: Our capability register holds a SharePoint connector as declared and BLOCKED, and a Jira connector as live for internal use. So the pattern exists in the estate and nothing customer-facing is built. Nothing here is committed.

Under the hood

It remembers your business between conversations

Durable, per-customer memory of your systems, your vocabulary and your constraints, correctable by you in plain language, so the fourth conversation does not start where the first one did.

What it takes

  1. Decide what may be remembered -- systems, vocabulary, constraints -- and what never is. This is a decision, not code.
  2. Show it back as a list the customer can read. Memory nobody can inspect is a liability rather than a feature.
  3. Correction and deletion in plain language, where deleting actually removes it rather than hiding it.
  4. Scope memory to the business, not the individual, so it does not leave when an employee does.
  5. Only then use it in a conversation.

How we know: Every conversation is bounded and independent today; there is no memory across them. The hard part is not storage, it is correction and deletion — memory you cannot inspect or remove is a liability, so this stays exploratory until that part is designed.

Under the hood

Photograph it instead of describing it

A photo of a whiteboard, a paper form, a nameplate or a marked-up drawing, read directly, rather than typing out what is in the picture.

What it takes

  1. Accept images through the same guarded upload path documents already use, rather than a second one.
  2. Extend the content filter to text inside an image, or keep refusing images until it does. A photo of a password is a password.
  3. Send an image only on a turn the customer chose to send it on.
  4. Separate what was read from a photo from what was inferred about it, the same way the plan separates confirmed from assumed.

How we know: Uploads accept documents, not images — an image is refused today by name. No multimodal input path exists in the service.

Under the hood

Call IRIS from your own systems

A documented API so your own tools can start a planning conversation or read a finished plan, rather than a person copying between two windows.

What it takes

  1. Version the surface and publish the contract. Today it is shaped for our own workspace and unversioned.
  2. Authentication that is not a workspace session, with per-customer scope.
  3. Rate limits and quotas, so one caller cannot spend another's capacity.
  4. A written deprecation policy before the first outside caller depends on it. That commitment is the real cost, not the endpoint.

How we know: The service has an HTTP surface, but it is internal: shaped for our own workspace, unversioned, and undocumented for outside callers. Publishing one is a commitment to keeping it stable, which is why this is exploratory rather than planned.

Under the hood

Evidence that the plans are actually any good

A published evaluation set — real planning problems, scored, repeated as models change — so a claim about quality is a measurement you can read rather than a sentence we wrote.

What it takes

  1. Collect real planning problems with known outcomes, with the customer's consent, rather than inventing test cases that flatter us.
  2. Score whether assumptions were surfaced and whether the plan was actionable -- not whether the prose reads well.
  3. Re-run on every model change and publish the difference, including where it got worse.
  4. Publish the failures next to the passes, or the number means nothing.

How we know: Nothing like this exists. Our engineering is gate-tested and mutation-tested, which proves the code does what it says; it proves nothing about whether a plan is useful. We would rather name that gap than let test coverage imply an answer to a different question.

What IRIS does

Take the plan with you

Export a finished plan as a document you can email, print, or paste into whatever your business actually runs on. Your plan should not be trapped in our product.

What it takes

  1. One format done properly first, rather than three done badly.
  2. Carry the confirmed-versus-assumed marking into the export. A plan that loses it on the way out is a more dangerous document than the original.
  3. Static export means no server-side rendering, so the file is built in the browser.

How we know: Nothing exists. The specification is readable on screen and copyable by hand, which is not the same thing as an export.

What IRIS does

More than one person in the workspace

Bring your operations lead, your finance person and your IT provider into the same plan, with roles that reflect who actually decides what.

What it takes

  1. Decide what a workspace belongs to -- a business, not a person -- because everything else follows from that.
  2. Roles that match how these businesses run: someone who decides, someone who does the work, someone external who advises.
  3. Removal that actually removes, including from plans already in flight.
  4. This is the same decision as memory scope and sign-on scope. Deciding all three at once is cheaper than three times separately.

How we know: Access is per named invitation today, one person at a time. There is no concept of a team, a role, or a shared workspace.

What IRIS does

See what changed in a plan, and who changed it

Versions of a plan over time, so an edit can be found, compared and undone rather than discovered three weeks later.

What it takes

  1. Store versions before building any interface, because the interface can be added later and lost history cannot.
  2. Show a difference between two versions, not a list of timestamps nobody can read.
  3. Depends on more than one person being in the workspace to be worth much.

How we know: A plan is editable today and the current state is what you get. There is no history, so an accidental deletion is permanent.

Under the hood

Delete everything we hold, and prove it

Ask us to delete your conversations, documents and plans, and get back a record of what was removed and when.

What it takes

  1. Find every place a customer's content lands, including the ones that are not the obvious store.
  2. Decide what an approved contributed scope means here, since the record says it cannot be withdrawn. Those two commitments have to be reconciled in writing before either is promised again.
  3. Produce a record of the deletion that outlives the data.

How we know: Documents can be removed individually today. There is no whole-account deletion, and no artifact that proves a deletion happened -- which is the part an auditor actually asks for.

Under the hood

A log of who saw what

A readable record of who opened which plan, what left the workspace, and when — available to you, not just to us.

What it takes

  1. Decide what a customer-visible event is. Our internal ledger is far too granular to hand over and would be unreadable.
  2. Separate their events from ours rather than filtering one stream into the other.
  3. Export, because an audit log you cannot get out of the product is not evidence.

How we know: Our own engineering already writes a hash-chained, append-only action ledger, so the mechanism exists and is proven. None of it is exposed to a customer, and it records our actions rather than theirs.

Your industry is not on this list?

IRIS works from the general footing on day one, and the order of the list above is not fixed. Scoping is where your business shapes what we build next — which is why we do it before we build rather than after.