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, study design, plugin authoring. The full-stack mode, under active development, adds a Python backend that unlocks connection to a health data warehouse, authentication, sharing and server-side Git versioning.
One app, two modes
Linkr can be deployed in two different ways depending on the use case. The frontend code (the part of the application that runs in the browser — what you see and interact with) is identical in both modes; only the storage and querying operations switch between the browser and the backend (the remote server that processes requests and holds the data, invisible to the user).
Client-only mode (browser only)
Recommended to get started and for many individual use cases
No server install, no infrastructure. You just open a web page. Ideal for exploring Linkr and working on local files.
Everything runs in the browser:
- 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 (in-browser database), plus the File System Access API to read 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 in client-only mode:
- Import local files: CSV, Excel, Parquet, DuckDB.
- Design and test dashboards and widgets.
- Do concept mapping (aligning local vocabularies with SNOMED, LOINC, RxNorm…).
- Run integrated statistical analyses (Table 1, Key Indicator, Plot Builder).
- Write and execute Python or R in the built-in IDE, against the loaded data.
- Create and test plugins.
- Save your work via ZIP export.
What client-only mode cannot do:
- Connect directly to a hospital data warehouse (PostgreSQL, SQL Server, Oracle…). That requires server mode.
- Authentication, user and permission management.
- Git versioning (push / pull / branches on a remote repository): to share work, ZIP export remains the option.
Full-stack mode (with FastAPI backend)
Under development
The FastAPI backend is under active development. This mode’s documentation will be completed as features land. For production use today, client-only is the recommended path.
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 user management, organisations, permissions.
- Centralised persistent storage (PostgreSQL for application metadata).
- Server-side Git versioning: push / pull / branches against GitLab or GitHub repositories, integrated into the app.
- Sharing projects, plugins and data between users in the same workspace.
- Server-side execution of heavy scripts and plugins (large volumes, long jobs, server resources, GPU).
The frontend architecture is the same: same React code, same pages. An internal abstraction (queryDataSource(), storage interfaces) routes operations either to DuckDB-WASM + IndexedDB (client-only) or to the FastAPI backend (full-stack).
Which features in which mode?
| Feature | Client-only | Full-stack |
|---|---|---|
| Local file import (CSV, Excel, Parquet, DuckDB) | ✅ | ✅ |
| Warehouse connection (DuckDB, PostgreSQL, SQL Server, Oracle…) | — | ✅ |
| Dashboards and widgets | ✅ | ✅ |
| Built-in analyses (Table 1, Plot Builder, Key Indicator) | ✅ | ✅ |
| Concept mapping | ✅ | ✅ |
| Cohort builder | ✅ (on loaded files) | ✅ (directly on the warehouse) |
| Patient-level view (individual trajectories) | ✅ (on loaded files) | ✅ |
| In-browser Python / R IDE (Pyodide / webR) | ✅ | ✅ |
| Server-side execution (large volumes, GPU…) | — | ✅ |
| Plugin authoring and testing | ✅ | ✅ |
| Plugins executed server-side | — | ✅ |
| Local project history | — | ✅ |
| Git versioning (push / pull / branches on a remote repository) | — | ✅ |
| ZIP export / import | ✅ | ✅ |
| Authentication, users, organisations | — | ✅ |
| Sharing projects, plugins and data between users | — | ✅ |
As the backend matures, more features will appear in full-stack mode. Each documentation page states its scope via a badge: Client-only, Both modes or Full-stack only.
How to choose
- You want to try Linkr with no install → client-only, on the online demo.
- You design dashboards, need to run statistical analyses, or want to do concept mapping → client-only is enough.
- You must query your hospital warehouse directly (DuckDB, PostgreSQL, SQL Server…) → full-stack mode (coming, incrementally).
- You’re deploying Linkr to a department or institution with multiple users, authentication and centralised storage → full-stack mode.
Next steps
- Quickstart — try Linkr online in 2 minutes.
- Local install — run Linkr on your machine.