Tables
Typed fields for products, categories and every other list you keep.
Lists, codes and mappings every system agrees on. Model-driven, API-first, open source.
One model
Describe your data once. refiroo shows the same records as a table, a tree, a mapping grid, a matrix or an API response, so nothing is copied and nothing drifts apart. Then it is shown through dimensions: a list, a grid, a cube and time.
A model describes your applications and record types: categories, products, markets, languages, and how they relate. Every view on this page is drawn from it.
Open a record type as a table and edit it like one: a row per product, with its category and its ERP code. Typed fields keep the values clean.
Categories are a hierarchy, so they are shown as a tree. Move a product to another branch and it follows everywhere that tree is used.
Line up each product with the code every system uses for it: ERP, webshop and warehouse. Each system keeps its own spelling, and they all point at one product.
Which products are sold in which markets? Fill a cell and the relation is stored once. Nothing is copied into a spreadsheet on the side.
The same records come out of the API as plain JSON, with codes, markets and translations attached. Every view above is a client of it, and your scripts can be too.
One dimension is a list: values, one after another. Product names in a single row is the simplest thing refiroo holds, and often all a consumer needs.
Add a second dimension and the codes fall into columns: products down, systems across. Each cell is one fact, and each system finds its own.
A third dimension turns the grid into a cube: products by markets by languages. How is this product called in French, for Spain? One cell, stored once. Keep scrolling to turn it.
A fourth axis cannot be drawn, only projected. This shadow of a tesseract turns through it: the same cube, seen from a place where its inside and outside swap.
That fourth axis is time. The model is versioned and every change is kept, so there is a copy of the cube for each version. The API can read the data as of any date: ask for 2026-03-01 and you get the cube as it stood. Keep scrolling to move through the dates.
Record types and how they relate.
A row per product.
Categories with products under them.
One column per system.
Products against markets.
The same records as JSON.
{ "name": "Arabica 1 kg",
"erp": "100245",
"webshop": "cof-arabica-1kg" }Values in a row.
Products by systems, then by markets and languages.
Every version is kept; read the data as of any date.
Stop 1
Drop in the workbook you already keep: refiroo reads every row and makes it a workspace in one go. Rather say it in a few words? The assistant designs the model with you, and you edit what it proposes before anything goes live.
See import in detailStop 2
The model is a versioned description of your record types and how they relate. It is activated only after a compatibility check, so a change cannot break the data you already hold. The engine never hardcodes your domain.
See model in detailStop 3
The ERP calls it 100245, the webshop cof-arabica-1kg and the warehouse WH-CF-01. Link each system's code to the same product and every system still finds its own value. One product, one meaning, three spellings.
See mapping in detailHover a code to follow its line.
Stop 4
Rename a product, move it to another category and change its webshop code as one coordinated change set. Review what it touches, then publish everything in one step. Nobody ever sees half of it.
See change sets in detailStop 5
Each product keeps its name in every language you sell in. Complete the translations of the whole list instead of opening one record at a time, and see at a glance which translations are still missing.
See translations in detailStop 6
Everything the browser does is also in the API, so scripts and other systems read exactly what you see. A change feed and webhooks tell them when something moves, and business-date reads show what was valid on any day. AI agents get access too, through MCP.
See api in detail$ curl -G https://refiroo.example.com/api/consumer/catalogue/v1/xref \ -d workspace=shop -d query=100245 -d asOf=2026-11-01
{ "results": [ { "objectType": "Product", "code": "100245", "name": "Arabica 1 kg", "systemCodes": [ { "system": "ERP", "code": "100245" }, { "system": "Webshop", "code": "cof-arabica-1kg" }, { "system": "Warehouse", "code": "WH-CF-01" } ], "matchScore": 900 } ], "query": ["100245"], "workspace": "shop", "totalCount": 1 }Read the API reference
Agents welcome
Your assistant can read your lists and prepare changes for you to review, through MCP. Copy one line, sign in to the demo, and ask it about the stops and operators of Graubünden.
Paste this in your terminal
claude mcp add --transport http refiroo https://demo.refiroo.com/mcpWhich operators in Graubünden have no Italian name yet?
list_workspacesdescribe_model · graubuendenfind_records · operator · page 1 of 2find_records · page 2 of 2All 71 operators. Each of them has a German and a French name so far, and nothing in Italian, Romansh or English. Shall I list them, valley by valley?
You stay in charge
An assistant prepares a change the way a colleague would. You look it over, and nothing goes live until a person publishes it.
Opens a change set, adds and corrects, and checks its work.
Every row it touched is marked Prepared by an assistant.
Keep, correct or drop each change, as you would a colleague's.
Only now do the API, the change feed and the webhooks see it.
What is inside
Typed fields for products, categories and every other list you keep.
One row per product, one column per system.
See which products are sold where at a glance.
Parents and children for categories, regions and groups.
Every change is recorded and reviewed before it goes live.
Decide who may read, edit and publish. People sign in with their e-mail and hear from refiroo when their sign-in changes.
Five themes, each in light and dark, and each with its own way of arranging the screen. Your e-mails can wear your logo too.
Where it starts
Most refiroo stories start with one file nobody dares to sort. Pick yours, and see where it goes from there.
Who it is for / not for
Backups, upgrades, TLS and monitoring are ours. Your data stays exportable any time.
Built in the open
refiroo is delivered by AI coding agents, Claude Code and ChatGPT Codex, under human review. Every change is a small, checked step: the tests pass and the build holds before it lands. It is a one-person project, and every plan, decision and release is in the open.
Every release has a plan, a review and a changelog.
Released versions.