Introducing dpkit Terminal and TypeScriptSee the announcement

Open source

Fairspec

A specification for describing tabular datasets, with reference implementations in TypeScript and Python.

captureapplication.fairspec.org
The Fairspec site, the data exchange format we author, with its Python and TypeScript implementations.
Fairspecdata framework in TypeScript and Python

What it is

A data exchange format for describing datasets — what a dataset contains, how its tables are shaped, who produced it, and under what licence it can be reused. A descriptor is a plain JSON document, so it can be written by hand, generated by a pipeline, validated in CI, and read by a tool that has never heard of Fairspec.

Why it exists

Datasets are published constantly and described inconsistently. The metadata that would make one reusable — column types, units, provenance, licence — usually lives in a README, a paper, or somebody's memory. The FAIR principles say data should be Findable, Accessible, Interoperable and Reusable, but principles are not a file format, and a machine cannot act on a principle. Fairspec is deliberately compatible with two things that already exist rather than competing with them: DataCite for citation metadata, and JSON Schema for validation.

Our part in it

We author the specification and maintain the reference implementations across TypeScript and Python, along with the tooling that consumes it. Authoring a standard means the design decisions and the compatibility guarantees are ours to get right.

What we can build for you

Data platforms & pipelines

Getting data in, checking it, and keeping it correct — from a handful of spreadsheets to millions of rows a day.

Data processing · Data standards & validation · Transactional databases · Web data acquisition

Web application development

Data layer through to interface: search, integrations, background jobs, and the infrastructure to keep it running.

Full-stack web applications · Typed APIs · Durable workflows · Container orchestration

What we build it on

  • Columnar dataframes instead of ad-hoc scripts, so a million rows costs what a thousand does.

  • Schemas that travel with the data, and one validation contract from database to browser.

  • Models behind an interface we control, with retrieval and evaluation around them.

  • Native apps sharing the web product's types and rules instead of forking them.

Get in touch

Tell us what you need built.

We are a small team in Portugal, working London hours. A site, an app, an internal tool, or the platform behind them — start with a sentence about the problem and we will take it from there.

All projects
Get a quote