Skip to content

Examples

Curated demo workflows running on blockr.cloud. Open any example to explore it interactively.

Getting Started

Pharma

Insurance

Finance

Statistics

Showcase

Cat Breeds

Cat Breeds

A full cat-breeds analysis end to end: trait radar, headline KPIs, correlations, a temperament word cloud and a chart-filter to drilldown pair, with AI wired both per-block and board-level (the useR! 2026 demo).

Open in Playground →
Full-Stack Assistant

Full-Stack Assistant

An empty blockr board with the board-level LLM assistant activated: nothing is on the canvas. You build the entire workflow by talking to the assistant, which can add any block from the full blockr stack. The assistant sits on the left, the Workflow (DAG) panel on the right.

Open in Playground →
DuckDB Lazy (100M rows)

DuckDB Lazy (100M rows)

A 100,000,000-row parquet opened as a lazy DuckDB table and transformed through a chain of blockr.dplyr blocks. Every verb pushes to SQL and the preview pages through 100M rows without ever materializing the full table; only the filtered ~1000-row result is collected into R.

Open in Playground →
DuckDB Remote dm (5M-row star schema)

DuckDB Remote dm (5M-row star schema)

A 5,000,000-row DuckDB star schema (one fact table, three dimensions) bound into a dm and explored with the Key-lines preview - the fact table pages in the database and is never collected. A second in-memory example dm renders through the same preview.

Open in Playground →
Data Collection Process

Data Collection Process

A quarterly data collection from eight reporting units, run as a process rather than a dashboard. The definition is one wide table; the state is an append-only event log; a headless worker runs the tasks that are scripts. The three front tasks repeat per unit inside a BPMN multi-instance sub-process, the QA check answers true/false on stdout so the branch and its rework loop live in the table, and "Simulate delivery" writes an inbox message the way an upload platform would - the worker turns it into an event.

Open in Playground →

Run an example locally

The demos above run on blockr.cloud. To run one in your own R session, follow the setup below.

Clinical Explorer

AI-enabled exploration of an ADaM trial: demographics, adverse events, lab values, vitals, and patient profile.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("BristolMyersSquibb/blockr.pharma")   # patient profile, swim-lane plot, the ADaM dm data block
install.packages("safetyData")                 # ADaM example tables adsl/adae/adlbc/advs

Launch the demo:

r
source(system.file("examples/clinical-explorer.R", package = "blockr.pharma"))

This loads the ADaM tables from safetyData and the same blocks as the live demo: cross-filter, drilldown chart and table, patient profile and swim-lane plot. Open inst/examples/clinical-explorer.R on GitHub to see exactly what the script does.

Admiral SDTM → ADSL

SDTM DM to ADSL derivation pipeline using admiral blocks: each block is one derivation step with visible intermediate results.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("BristolMyersSquibb/blockr.admiral")   # admiral derivation blocks (derive_vars_*, merge, seq)
install.packages("pharmaversesdtm")             # SDTM example domains (dm, ex)

Launch the demo:

r
source(system.file("examples/sdtm-to-adsl.R", package = "blockr.admiral"))

Open inst/examples/sdtm-to-adsl.R on GitHub to see exactly what the script does.

Life UWR Workbench

Life-insurance underwriting workbench: a per-coverage expected-claims pipeline plus a UWR price-driver dashboard over a census, claims history, and bundled actuarial tables.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.input")              # editable data grid (the UWR uw_factors worksheet)
pak::pak("BristolMyersSquibb/blockr.code")   # show / export the generated R code
pak::pak("cynkra/blockr.insurance")          # census + claims data, formula chain, this example

Launch the demo:

r
source(system.file("examples/life-underwriting.R", package = "blockr.insurance"))

Open inst/examples/life-underwriting.R on GitHub to see exactly what the script does.

Actuarial Workbench

Property-insurance actuarial workbench: Base vs Challenger portfolio simulations with editable base-rate grids, premium components, and a run-vs-run compare waterfall.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.input")              # editable base_rate parameter grids (Base / Challenger)
pak::pak("BristolMyersSquibb/blockr.code")   # show / export the generated R code
pak::pak("cynkra/blockr.insurance")          # pricing engines + portfolio data, this example

Launch the demo:

r
source(system.file("examples/property-workbench.R", package = "blockr.insurance"))

Open inst/examples/property-workbench.R on GitHub to see exactly what the script does.

Treaty Pricer

Layered excess-of-loss treaty pricer: an editable treaty tower drives a piecewise-Pareto severity fit, loss simulation, and a per-layer premium build-up. Edit a layer and the KPIs, quote chart, and build-up waterfall all recompute.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.input")              # the one editable treaty_tower grid (client structure)
pak::pak("BristolMyersSquibb/blockr.code")   # show / export the generated R code
pak::pak("cynkra/blockr.insurance")          # the treaty tower data + this example
install.packages("Pareto")                   # piecewise-Pareto severity fit + loss simulation

Launch the demo:

r
source(system.file("examples/treaty-pricer.R", package = "blockr.insurance"))

This loads the treaty tower bundled in blockr.insurance and the same blocks as the live demo: the editable tower, Pareto fit and loss simulation, the per-layer quote chart and premium build-up waterfall, the layer-detail drilldown, and a challenger-vs-base comparison. Open inst/examples/treaty-pricer.R on GitHub to see exactly what the script does.

Stats 101 (Penguins)

Reproducible modelling end to end on palmerpenguins. A dashboard where the model formula is the control surface - edit it and the coefficient card and the predicted-vs-actual chart re-estimate at once - and a Report view where the same board is a narrated document you can download as html, pptx or pdf, code and figures included. Wires the outline, the board-level AI assistant, project save/load and the workflow DAG around one linear model.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.stats")      # model + model-summary + broom blocks (this example)
pak::pak("cynkra/blockr.outline")    # the narrated report
install.packages("palmerpenguins")

Launch the demo:

r
source(system.file("examples/stats-101.R", package = "blockr.stats"))

Open inst/examples/stats-101.R on GitHub to see exactly what the script does.

Cat Breeds

A full cat-breeds analysis end to end: trait radar, headline KPIs, correlations, a temperament word cloud and a chart-filter to drilldown pair, with AI wired both per-block and board-level (the useR! 2026 demo).

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.leaflet")     # custom "map block" we built (markers per origin)
pak::pak("cynkra/blockr.catbreeds")   # this package: catbreeds data block + card/flags/stats/similar

Launch the demo:

r
source(system.file("examples/app.R", package = "blockr.catbreeds"))

Open inst/examples/app.R on GitHub to see exactly what the script does.

DuckDB Lazy (100M rows)

A 100,000,000-row parquet opened as a lazy DuckDB table and transformed through a chain of blockr.dplyr blocks. Every verb pushes to SQL and the preview pages through 100M rows without ever materializing the full table; only the filtered ~1000-row result is collected into R.

First install blockr as described on the Install page. Then add the extra packages:

r
install.packages("duckdb")   # embedded OLAP engine, reads parquet
install.packages("DBI")      # database connection layer
install.packages("dbplyr")   # translates dplyr verbs to SQL

Launch the demo:

r
source(system.file("examples/duckdb-lazy.R", package = "blockr.dplyr"))

The 100M-row parquet is generated once into a local cache on first run (override with n_rows <- 5e6 before sourcing for a lighter run). On blockr.cloud it is pre-generated on the host and mounted read-only at /data instead. Open inst/examples/duckdb-lazy.R on GitHub to see exactly what the script does.

DuckDB Remote dm (5M-row star schema)

A 5,000,000-row DuckDB star schema (one fact table, three dimensions) bound into a dm and explored with the Key-lines preview - the fact table pages in the database and is never collected. A second in-memory example dm renders through the same preview.

First install blockr as described on the Install page. Then add the extra packages:

r
install.packages("duckdb")   # embedded OLAP engine, reads parquet
install.packages("DBI")      # database connection layer
install.packages("dbplyr")   # translates dplyr verbs to SQL

Launch the demo:

r
source(system.file("examples/duckdb-remote-dm.R", package = "blockr.dm"))

The star-schema parquet self-generates into a local cache on first run (override with n_orders <- 5e5L); no external data or host mount needed. Open inst/examples/duckdb-remote-dm.R on GitHub to see exactly what the script does.

Data Collection Process

A quarterly data collection from eight reporting units, run as a process rather than a dashboard. The definition is one wide table; the state is an append-only event log; a headless worker runs the tasks that are scripts. The three front tasks repeat per unit inside a BPMN multi-instance sub-process, the QA check answers true/false on stdout so the branch and its rework loop live in the table, and "Simulate delivery" writes an inbox message the way an upload platform would - the worker turns it into an event.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.outline")   # the minidag rail the process editor is built on
pak::pak("cynkra/blockr.process")

Launch the demo:

r
source(system.file("examples/data-collection.R", package = "blockr.process"))

The board starts with NO instance: opening one is the first move. The store is per container at /tmp/blockr-process-demo, so a second browser window watches the same event log - tick a task in one and it appears in the other. The app starts its own worker as a hosting convenience; the design rule is that the worker lives outside the app (see vignette("running-scripts")), and BLOCKR_PROCESS_WORKER=0 turns it off so you can run one in a terminal and watch it work. Open inst/examples/data-collection.R on GitHub to see exactly what the script does.

Portfolio Advisor

A portfolio advisor: pick an investor risk profile and an optimizer strategy on the left, and a diversified allocation dashboard recomputes on the right. A second Workflow tab shows the live block graph.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.portfolio")

Launch the demo:

r
source(system.file("examples/app-portfolio.R", package = "blockr.portfolio"))

This loads the bundled asset universe and the same blocks as the live demo: the investor profile, the mean-variance optimizer, and the allocation dashboard. Edit the risk profile or strategy and the dashboard recomputes. Open inst/examples/app-portfolio.R on GitHub to see exactly what the script does.

Share Explorer

An interactive share explorer: choose tickers and a date range on the left and the price / return charts recompute on the right. A second Workflow tab shows the live block graph.

First install blockr as described on the Install page. Then add the extra packages:

r
pak::pak("cynkra/blockr.portfolio")

Launch the demo:

r
source(system.file("examples/app-explorer.R", package = "blockr.portfolio"))

Ticker data is fetched via quantmod (AAPL / MSFT / GOOG / AMZN by default), with a bundled offline fallback. Change the ticker or date selection and the explorer recomputes. Open inst/examples/app-explorer.R on GitHub to see exactly what the script does.