Linkr
Home Resources Tools Documentation Blog Demo
FR
  • What is Linkr?
  • Deployment modes
  • Quick start
  • Local install
  • With Docker
  • Manual install
  • Client-only
  • Your first project
  • Workspaces and projects
  • The data pipeline
  • Entities and sharing
  • Versioning and collaboration
  • Overview
  • Projects
  • Wiki
  • Plugins
  • Members and roles
  • Settings
  • Schemas
  • Databases
  • Derived sub-databases
  • Data quality
  • Data catalog
  • SQL script collections
  • ETL pipelines
  • Overview
  • Mapping projects
  • Global view
  • Target concepts
  • Mapping editor
  • Suggestions
  • Evaluation
  • Export
  • Overview
  • Concepts
  • Cohorts
  • Patient data
  • Pipeline
  • Datasets
  • IDE
  • Web apps
  • Versioning
  • Overview
  • Tabs and widgets
  • Built-in widgets
  • Analysis widgets
  • Control charts (SPC)
  • Surveys and eCRF
  • R and Python code
  • Filters, settings and export
  • Overview
  • Presentation mode
  • Exporting a report
  • Agents
  • Model providers
  • Skills
  • Authoring through MCP
  • Import and export
  • Git versioning
  • Community catalog
  • Publishing content
  • Production install
  • Configuration
  • Authentication and permissions
  • Files on the server
  • Backup and restore
  • Glossary
  • Keyboard shortcuts
  • Release notes
Documentation Getting started Deployment modes

Deployment modes

Client-only (browser only) or full-stack (with FastAPI backend): what each mode enables.

Summary

Linkr runs in two modes. The client-only mode (browser only) covers everything that can be done on local files or already-extracted data: dashboard design, statistical analyses, concept mapping, plugin authoring. The full-stack mode adds a Python backend that unlocks connection to a health data warehouse, authentication and permissions, Git versioning, and server-side code execution. A single variable, VITE_API_URL, decides the mode.

One app, two modes

The frontend code — the part of the application that runs in the browser, what you see and interact with — is identical in both modes. What changes is where storage and compute happen: in the browser, or on a backend, the server that processes requests and holds the data.

Client-only

To discover

Everything runs in the browser. No server install: you just open a web page. Ideal for exploring Linkr and working on local files on your own.

DuckDB-WASMPyodidewebRIndexedDB

Full-stack

For teams

A Python backend joins the browser: data warehouse connection, accounts and permissions, Git versioning, server-side code execution.

FastAPISQLite / PostgreSQLGit

A single variable decides the mode

The mode is not a setting in the interface: it is fixed when the app is built, by the VITE_API_URL variable. That is the only switch — see the local install.

VITE_API_URL=(empty)→ client-only
VITE_API_URL=http://localhost:8000→ full-stack

Client-only mode

Everything runs in the browser, thanks to tools compiled for the web:

SQL

DuckDB-WASM

Analytical SQL engine compiled to WebAssembly.

Python

Pyodide

Python distribution compiled for the browser.

R

webR

R compiled to WebAssembly.

Storage

IndexedDB + File System Access

In-browser database, and reading large local files without copying them.

Linkr can then be deployed as a static site on any hosting platform (GitLab Pages, GitHub Pages, Netlify, etc.). The public demo is one such deployment.

What you can do

  • Import local files: CSV, Excel, Parquet, DuckDB.
  • Design and test dashboards and widgets.
  • Do concept mapping (local vocabularies to SNOMED, LOINC, RxNorm…).
  • Run integrated statistical analyses.
  • Write and run Python or R in the IDE, against the loaded data.
  • Create and test analysis plugins.
  • Save your work via ZIP export.

What requires full-stack mode

  • Connecting directly to a hospital warehouse (PostgreSQL, SQL Server, Oracle…).
  • Authentication, user, role and permission management.
  • Git versioning on a remote repository: to share work, ZIP export remains the option.
  • Installing from the catalog: the browser has no git client, so the catalog can be browsed but not installed from.
  • Managed environments (uv, renv) and server-side execution.

Full-stack mode

This mode adds a Python backend (FastAPI) that handles everything that, by nature, cannot live in the browser:

Warehouse connection

Query a DuckDB, PostgreSQL, SQL Server, Oracle… database directly, on-premise or in a private cloud.

Authentication and permissions

Users, organisations, roles, with rights at three levels: global, workspace, project.

Centralised storage

An application database (SQLite or PostgreSQL) for metadata, a data folder for large files.

Git versioning

Push, pull and branches against GitLab or GitHub repositories, built into the app.

Sharing

Projects, plugins and data shared between users in the same workspace.

Server-side execution

A terminal, Python and R notebooks on persistent processes, per-project package environments, dashboard widgets executed server-side.

Community catalog

Install and update published content (databases, projects, mappings) directly from the app.

The frontend architecture is the same: same React code, same pages. An internal abstraction routes operations either to DuckDB-WASM + IndexedDB (client-only) or to the FastAPI backend (full-stack).

A recent mode, still to be battle-tested

Full-stack mode is functional end to end: every Linkr entity (projects, databases, datasets, dashboards, mappings, pipelines…) is backed by the server, and a complete Docker deployment ships with the repo. It remains young, though: it has seen less real-world use than client-only mode. For an institutional deployment, plan a testing phase and back up the data folder.

Which features in which mode?

Feature Client-only Full-stack
Data
Local file import (CSV, Excel, Parquet, DuckDB)
Warehouse connection (PostgreSQL, SQL Server, Oracle…) —
Data quality, ETL pipelines
Export / import ZIP
Analysis
Dashboards and widgets
Built-in analyses (Tableau descriptif, Constructeur de graphiques, Indicateur clé…)
Concept mapping
Cohort builder on loaded files directly on the warehouse
Patient-level view (individual trajectories) on loaded files
Code
IDE Python / R Pyodide / webR, in the browser persistent server processes
Terminal (Bash, Python, R) —
Managed package environments (uv, renv) —
Plugin authoring and testing
Collaboration
Git versioning (push / pull / branches on a remote repository) —
Community catalog Browse only browse and install
Authentication, users, organisations, roles —
Sharing projects, plugins and data between users —

Every documentation page states its scope through a Client and Backend badge placed under the summary.

Where does the data live?

This is the most concrete difference between the two modes, and the one with the most practical consequences.

Client-only

In your browser

Everything is stored in IndexedDB, specific to this browser and this profile. Nothing leaves for a server. Clearing site data wipes your Linkr content — ZIP export is your only backup.

Full-stack

On the server

Metadata goes to the application database (SQLite or PostgreSQL), large files to a dedicated folder (LINKR_DATA_DIR). That folder is what you back up, and what you find again from any browser once logged in.

In server mode the browser loads neither DuckDB-WASM nor IndexedDB: SQL queries, statistics and code all go to the backend. That is what makes it possible to work on volumes a browser could never hold.

How to choose

You want to try Linkr with nothing to install — right on the online demo.

Client-only

You design dashboards, run analyses or do concept mapping, on your own, on extracts.

Client-only

You must query your hospital warehouse directly (PostgreSQL, SQL Server, Oracle…).

Full-stack

You work as a team, with authentication, permissions and shared storage.

Full-stack

You need to version to GitLab or GitHub from within the app.

Full-stack

Next steps

  • Quickstart — try Linkr online in two minutes, with nothing to install.
  • Local install — run Linkr on your machine, in either mode.
  • Your first project — a guided end-to-end walkthrough.
PreviousWhat is Linkr?NextQuick start

Product

  • Home
  • Demo

Resources

  • Documentation
  • Resources
  • Tools
  • Blog

Community

  • Framagit source code
  • Github source code

About

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · GPLv3 (software)