CrateWorks

A set of tools for RO-Crate data.

CrateWorks is a home for several projects that use the RO-Crate as an interchange format for research data and archival systems, including software tools and an API specification.

Why CrateWorks?

Historically there has been a disconnect between data archives that house data but don't know what's in it and what can be done with it and research teams who work with a variety of ad-hoc formats and software.

RO-Crategives us a way to describe research and archival objects that make them archive-ready and also usable and reusable for analytics, visualization using the *same* format for library-style metadata and for detailed description of data files and formats. CrateWorks brings together RO-Crate with a sharedAPIthat any repository can speak, and a growing kit of tools that all speak it.

Pick up a discovery portal, a bulk-export service, an offline viewer, a field-capture appliance, an audio annotator — and trust that they will work with the next archive you point them at, because they all speak the same protocol.

The foundation

Two specifications, two main architectural components tied together with an API and many tools

  1. 1

    It's RO-Crates all the way down

    The data format. A JSON-LD metadata file that describes a research dataset and everything inside it. Everything in CrateWorks is built around RO-Crates

  2. 2

    Component: Storage layer

    A project starts by choosing a storage layer - a place to put your RO-Crates; a simple set of directories (as used by RasboCrate) or "H51v2" an archival-quality, version controlled Oxford Common Filesystem Layout (OCFL), or roll your own

  3. 3

    AROCAPI: An RO-Crate API

    The storage layer speaks AROCAPI, a specification for how any repository serves its collections of RO-Crates over HTTP. Includes discovery, retrieval, deposit and sustainable access control.

  4. 4

    Data Portals

    From simple static websites to full-scale data marts, data can be made available on the web via AROCAPI or directly for a single RO-Crate. Oni is one top-level portal option.

  5. 5

    Tools

    Data preparation, adding metadata, transcribing, annotating through to analysing data - tools just need to understand RO-Crate and they can be slotted-in anywhere in the data-journey, using the API or directly on an RO-Crate

%%{init: {'theme':'base','themeVariables': {'background':'#ffffff','primaryColor':'#ffffff','primaryBorderColor':'#f97316','lineColor':'#f97316','tertiaryColor':'#ffffff','clusterBkg':'#ffffff','clusterBorder':'#f97316','defaultLinkColor':'#f97316'}}}%%
flowchart TB
  subgraph DP["Data Portals"]
    direction TB
    ONI["OnI: full-service data portal"]
    SV["Static Viewer"]
  end

  subgraph ST["Storage Layer"]
    direction TB
    API(["ARPOCAPI"])
    H51["H51v2"]
    RAS["Raspbo Crate"]
    API --> H51
    API --> RAS
  end

  DP --> ST

  linkStyle 0,1 stroke:transparent,fill:transparent,stroke-width:2px;
  linkStyle 2 stroke:#f97316,stroke-width:2.5px;

  classDef main fill:#ffffff,stroke:#f97316,stroke-width:2px,color:#111827;
  classDef option fill:#ffffff,stroke:#f97316,stroke-width:1.5px,color:#111827;
  classDef tool fill:#ffffff,stroke:#f97316,stroke-width:1.5px,color:#111827,stroke-dasharray: 4 3;

  class DP,API,ST main;
  class ONI,SV,H51,RAS option;

The workbench

Each tool is independent, open-source, and built to compose with the others through an RO-Crate API.

A standard HTTP API for serving RO-Crate archives.

The specification that ties the workbench together. Defines a portable, implementation-neutral way to discover, read, and deposit research data described with RO-Crate metadata — so the same client can talk to any conformant repository.

Reference implementation of an RO-Crate API.

A Fastify/Express library that mounts the RO-Crate API onto your own app, with pluggable storage (OCFL, object storage, plain directories) and access control wired through external authorities like REMS. Built to follow the PILARS protocols for long-term archival repositories.

Oni

Beta

A configuration-driven discovery portal for RO-Crate archives.

A Vue 3 frontend that browses research metadata served by any Arocapi-backed repository. Search fields, facets, branding, and navigation are all controlled by a single JSON configuration — point it at a different collection and it adapts.

Pick files across a collection, get a zip in your inbox.

A web app that browses RO-Crate collections hierarchically, lets users pick files with quality-tier filtering (archival vs compressed), then bundles the selection in the background and emails a download link when it is ready.

Cockatiel

Stable

Local-first audio annotation in your browser.

A waveform editor with automatic voice-activity segmentation, speaker assignment, looping playback, and multi-format export (EAF, SRT, TextGrid, CSV). Everything runs in the browser — your audio never leaves your device.

A field catalogue manager on a Raspberry Pi.

A self-contained Raspberry Pi appliance for capturing and managing RO-Crate catalogues in remote locations where mains power and connectivity cannot be assumed. Bundles a React admin interface, an RO-Crate API, and an image builder for the hardware.

Repository →

Browse an RO-Crate archive by double-clicking index.html.

A pure-static web app that walks a directory of RO-Crate collections — items, files, inline audio and image playback, full-text search — without a web server. Designed to run from a USB stick, a DVD, or any cold-storage medium.

Repository →

Governed openly

CrateWorks operates under a Minimum Viable Governance framework: a small, public set of charter, code of conduct, steering committee, and per-project governance documents that any project joining the workbench agrees to follow.

Read the governance docs →