David Wicker

wicker-01

Contact

Products · 08/08

Bizzy

Deals, budgets, boards and people for teams at Maastricht University.

The institute’s system of record. Bizzy keeps BISS’s funding pipeline and forecast, finances, project boards, weekly planning, people and activities in one place, in place of its Monday.com boards and Excel forecast. Any team at the university can open a workspace of its own.

An assistant on Mistral, an EU provider, answers from the team’s own figures and suggests changes that a person approves. Every change, by a person, a suggestion or an import, is logged and can be undone. I designed and built it from the first commit on 3 November 2026; it runs on the institute’s Coolify.

Where
BISS, Maastricht University
Since
November 2026
Deployed
Docker image on the institute’s Coolify
Stack
Nuxt 4, Postgres 17, Mistral

Brightlands Institute for Smart Society · Maastricht University

Workspacebizzy.biss-institute.com

Deals and forecast, the financial overview, boards, planning, team and HR, goals and dashboards, in English and Dutch.

Bizzy, as it looks todayRecorded 9 Nov 2026 · this site can’t be embedded
  • Bizzy, the assistantMistral

    Answers on any data you may see with the app’s own queries, explains how things work, and makes changes after you confirm, with Undo.

  • Review and historyevery change

    One queue for the assistant’s and the data steward’s suggestions, and a change log in which any batch can be undone.

  • MCP and APIpersonal tokens

    An MCP endpoint for Claude and other clients, an API for scripts, and signed webhooks.

  • collabHocuspocus

    Live updates and presence over a WebSocket; two people can type in the same text.

  • Shared sign-inauth.caselawexplorer.tech

    The same Keycloak as Case Law Explorer, in a realm of its own.

01Why it exists

BISS kept its deals on Monday.com boards and its forecast in an Excel workbook. The boards were slow and the totals had to be rebuilt by hand. Bizzy puts deals, money, projects and people on one set of records, so a deal is the same deal in the pipeline, the forecast, a project board and a person’s planning.

02Figures you can open

The financial overview sets secured money against the year’s costs, the open pipeline and the forecast year by year. Every figure opens the deals behind it, so nobody has to trust a total they can’t check.

03An assistant that asks first

Bizzy, the assistant, runs on Mistral and answers with the app’s own queries, limited to the data the person asking may see. When it wants to change something it writes a suggestion. A person approves or dismisses it in the review queue, next to the data steward’s checks for duplicates, double counting and stale deals. Every change, by anyone, goes into a history where it can be undone.

04For other teams too

It is multi-workspace: BISS is one workspace, and any team at Maastricht University can start its own, with its own members, roles and settings. The data stays on servers BISS runs in the EU.

Under the hood

One write path for people and the assistant

Bizzy is one Nuxt application, one Postgres database, a small service for editing together, and Mistral for the assistant. Here is how an edit travels, whoever makes it, and why every one of them can be undone.

  1. 01 / 06

    Every edit takes the same road

    A cell edited by a person, a suggestion someone approved, a row from an import: all of it goes through one function, changes.ts. The function that writes the value writes a change_log row in the same transaction, one per changed field, grouped in a batch.

    History is that log, and Undo writes the old values back as a new batch that points at the one it reverts. Nothing is ever edited around the log.

    change_log
      entity, field     deal · year:2027
      old, new          the values
      actor             person, ai, import
      batch_id          undone together
      reverts_id        which batch it undoes
  2. 02 / 06

    The assistant sees what you see

    Bizzy is a tool-using agent on Mistral. It reads data only through the app’s own loaders, run as the person asking, so the numbers it states are the numbers their pages show. It explains how things work from help topics in English and Dutch.

    It acts only after you confirm a card in the chat, through the same write path as everyone else. Deletions and bulk changes become suggestions instead.

  3. 03 / 06

    Nothing changes until a person approves

    The data steward runs cheap rule checks, such as deals without a PI, yearly values that disagree with the total, stale pipeline, typos and possible duplicates, then a Mistral pass over the open deals. Each finding is a suggestion with a fingerprint, so running the checks again never repeats one, and a dismissed one stays dismissed.

    Review is one queue for the steward and the assistant. Approving applies the change as a batch signed by the approver, so it can be undone like any other.

  4. 04 / 06

    Workspaces that share nothing

    BISS is one workspace; any team at the university can start another. Isolation is enforced three times: each request carries exactly one workspace, a guard on the query logger flags any statement on a workspace table without the workspace condition, and the database’s own foreign keys tie every child row to its parent’s workspace.

    1  request context   one workspace per request
    2  SQL guard         unscoped query → error
    3  constraints       composite foreign keys
  5. 05 / 06

    Live, without a reload

    Every committed batch makes Postgres notify the app. The live hub reads the batch back from the log, works out what each open tab may see and tells it, and the page refetches only what changed, holding back while someone is typing there.

    Two people typing in the same text is a separate service on Hocuspocus. It reads and writes records only through the app’s signed internal routes, so permissions, the log and Undo still apply.

  6. 06 / 06

    Open to other tools

    Personal API tokens let scripts and MCP clients such as Claude use the same routes as the pages, under the same roles. A worker reads the change log and posts signed webhooks to Slack, Teams or n8n.

    Sign-in is the shared BISS Keycloak that Case Law Explorer also uses. The whole app ships as one Docker image, plus the collab service, on the institute’s Coolify.