Skip to content
Cabuya

An open interoperability protocol

A common way to coordinate help.

So aid can flow across systems.

An open format for the places aid runs on — shelters, collection centres and service points — published at a public URL any app can read. Conformance is measured by a public validator, never declared; the registry shows what it found.

The thesis

We grow together: we don’t compete, we feed each other.

«Crecemos juntos: no competimos, nos alimentamos.»

Cabuya is the fibre you tie things with. A single thread holds nothing; twisted together, they carry what no one of them could. That is not a metaphor about collaboration in general — it is a description of what happens when two applications can read each other’s data.

Every app that joins keeps its own product, its own users and its own decisions. What it gains is that its records stop being trapped inside it, and that it can read everyone else’s without asking.

That is what the protocol is for. Whether it happens depends on the teams who adopt it, and none of it is achieved yet.

How it works

Four steps, and none of them need us

Nothing here requires an account, an approval, or a conversation with anyone. The protocol is a document; the validator is a program you can run yourself.

  1. 01

    Publish a manifest

    One JSON file at a known path that says who you are, what you publish, and under which licence.

  2. 02

    Export a feed

    Your places, in the shared schema. A static file at a stable URL is enough — no API required.

  3. 03

    Run the validator

    It fetches what you published and reports what it found. Every finding locates the problem and states the correction.

  4. 04

    Open a registry entry

    A pull request. The measurement happens on our side and is visible to anyone who looks.

What joining means

Your data stays yours. A copy travels.

The protocol rests on two facts, and everything else follows from them.

Many apps will exist — and that is fine

In every emergency, teams build their own boards, maps and directories, often for the same city. The protocol does not replace any of them; it connects them, and each keeps its own product, its own users and its own database.

The data is sensitive

So the shared layer carries places and facts, never people: no names, no phone numbers, no personal contact. That is excluded by design, not by good intentions.

  1. You publish a copy

    Your app keeps its own database exactly as it is. What you add is a public copy of your records in the shared format, at a web address you choose — a plain file or an endpoint, both count as the same feed.

  2. Other apps show your records

    Any app can read that address and display what you published, always saying which app it came from and where it is — each record travels with its own town and neighborhood.

  3. Every button leads back to you

    When someone wants to act on a record, the button takes them to the app that published it. Contact details never travel in the feed, so the origin is where help gets resolved.

What you end up publishing

example.org/.well-known/cabuya.json ← the manifest — who you are and where your feed lives

example.org/cabuya/places.json ← the feed — your records, in the shared format

One record, trimmed:

{
  "name": "Coliseo Municipal",
  "place_kind": "shelter",
  "municipality_text": "Pereira",
  "neighborhood_text": "Centro",
  "lifecycle_status": "active",
  "public_url": "https://example.org/places/coliseo"
}

A public validator measures whether what you publish conforms, and the registry shows the result. None of it needs an account or our permission.

The network

Who is in the registry

The registry lists applications, records what was measured, and does nothing else. It is not a directory of partners and it does not rank anyone.

ApplicationPublishesEntry state
ayuda.corag.appplaceProposed
emergenciacolombia.orgplaceProposed
pereiraayuda.complaceProposed
pereiraresponde.coplaceProposed
co.crafter.runplaceProposed

Most of these entries were opened on each team’s behalf from the public analysis, and are waiting for that team to confirm them; the rest were filed by the teams themselves. Nobody here has claimed conformance, and none of these are endorsements.

Measured conformance states appear here when the validator starts running against live feeds on a schedule.

The long horizon

Ambition, not roadmap

Where this could go

  1. 1

    An emergency network

    Apps built during one emergency can read each other, so the next one starts with infrastructure instead of a spreadsheet.

  2. 2

    An interoperability standard

    The schema outlives the emergency that produced it, and becomes the ordinary way aid data is published.

  3. 3

    A regional ecosystem

    Another city, another country, adopts the same document without asking anyone — because it is CC0 and there is nobody to ask.

The specification is public. So is everything behind it.

The normative text, the schemas, the validator and the decisions that produced them are all in the repository, under an open licence, today.