, last modified Jamie Lentin

FarFish is an EU-funded Horizon 2020 project, Providing knowledge, tools and methods to support responsible, sustainable and profitable EU fisheries outside European waters.

Shuttle Thread is responsible for development of web-based tools for FarFish, in particular:

Web-based data capture

FarFish FFDB is a general-purpose data capture application principally designed to capture data.frame table-like collections of data, as would be used in modelling applications written in R. The interface provides a simple table-based web interface using HODF (see later) to collect structured data. Data is then stored in a PostgreSQL database for access for analysis tools.

R Shiny applications

R studio's Shiny environment allows for rapid development of web applications based on R. It's a language that many researchers will be familiar with, and many existing tools will be written in R. Shiny allows these to be packaged up and combined with custom widgets to generate flexible UIs for anyone to use.

FarFish DLMtool:

FarFish DLMtool combines FFDB tools to create a data collection tool and graphical front end to the Data-Limited Methods Toolkit. This is an open-source modelling package is combined with with data collected previously through FFDB to present plots of DLMtool analysis, demonstrating potential outcomes of management procedures.

The source code is available on GitHub.

FarFish DLMGui:

FarFish DLMGui is a stand-alone equivalent to FarFish DLMtool, designed to be used outside immediate FarFish partners, either for training or use for other institutions. As a Shiny app with no dependencies, it's easy to install elsewhere.

A DLMGui instance is publicly available on the FarFish website at https://ffdb.farfish.eu/shiny/dlmgui/ and it's source code available on GitHub.

Open source development

Where possible generic pieces have been lifted out and turned into their own open-source projects. Currently this includes:


Handsontable is a well-known open-core JavaScript table plugin, providing a spreadsheet-like table. HODF (Hands On DataFrame) takes this and adds schema for columns and rows, so structured data can be collected but with a dynamic set of rows and columns.

Example HODF table

Example HODF table

HODFR is a wrapper around the HODF library allowing

The code is on GitHub for both HODF and HODFR.

An in-browser test runner for tape tests, released on NPM and GitHub. For more details, see the article on tape-server.


This work is part of FarFish, which has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement no. 727891.