bino sandboxHosted · freeNo account needed

Try report as code in a browser tab.

The sandbox runs bino behind a URL. Write the manifests on the left and see the IBCS report on the right. Upload your own CSV, and export the result as a project that runs on your laptop and in CI.

  • No install
  • No account to start
  • Shareable by URL
  • Exports a runnable project

Tutorial

One report, built step by step

The guided tutorial starts with a single text component and ends with a PDF: a page, your data, a table with variances, charts and the report artefact. Each step adds to the document of the step before, and the preview shows the result as you go.

Editor and report, side by side

On the left is a sandbox file. On the right is what the sandbox preview rendered from it, with the same engine that makes the PDF.

bino sandbox
report.yaml
Run
apiVersion: bino.bi/v1alpha1
kind: DataSource
metadata:
  name: new_cities
spec:
  type: csv
  path: https://sandbox.bino.bi/api/data/new_cities.csv
  delimiter: ";"
---
apiVersion: bino.bi/v1alpha1
kind: DataSet
metadata:
  name: revenue_by_city
spec:
  query: |-
    SELECT category, categoryIndex, operation,
           SUM(pp1) AS pp1, SUM(ac1) AS ac1
    FROM new_cities
    WHERE date = (SELECT max(date) FROM new_cities)
    GROUP BY category, categoryIndex, operation
    ORDER BY categoryIndex
  dependencies:
    - new_cities
---
apiVersion: bino.bi/v1alpha1
kind: DataSet
metadata:
  name: revenue_trend
spec:
  query: |-
    WITH monthly AS (
      SELECT CAST(date_trunc('month', CAST(date AS DATE)) AS DATE) AS month,
             SUM(pp1) AS pp1, SUM(ac1) AS ac1, SUM(fc1) AS fc1
      FROM new_cities
      WHERE date >= '2026-01-01'
      GROUP BY month
    )
    SELECT strftime(month, '%Y-%m-%d') AS date,
           'Total' AS category, 1 AS categoryIndex, '+' AS operation,
           pp1,
           CASE WHEN month <  DATE '2026-07-01' THEN ac1 END AS ac1,
           CASE WHEN month >= DATE '2026-07-01' THEN fc1 END AS fc1
    FROM monthly
    ORDER BY month
  dependencies:
    - new_cities
---
apiVersion: bino.bi/v1alpha1
kind: LayoutPage
metadata:
  name: dashboard
spec:
  pageLayout: 2x2
  titleBusinessUnit: Acme Corp
  titleMeasures:
    - name: Revenue
      unit: EUR k
  titleScenarios: AC, PY, FC
  titleDateEnd: "2026-06-30"
  titleDateFormat: month
  titleDateLink: interval
  footerText: Acme Corp - Monthly Sales Report
  children:
    - kind: ChartStructure
      metadata:
        name: region_chart
      spec:
        dataset: revenue_by_city
        scenarios:
          - ac1
          - pp1
        variances:
          - dac1_pp1_pos
        level: category
        order: ac1
        orderDirection: desc
        percentageScaling: 25
        chartTitle: Revenue by City
    - kind: ChartTime
      metadata:
        name: trend_chart
      spec:
        dataset: revenue_trend
        scenarios:
          - ac1
          - pp1
          - fc1
        level: category
        order: category
        orderDirection: asc
        dateInterval: month
        chartTitle: Monthly Revenue Trend
    - kind: Table
      metadata:
        name: region_table
      spec:
        dataset: revenue_by_city
        scenarios:
          - ac1
          - pp1
        variances:
          - dac1_pp1_pos
        type: sum
        sumTitle: Revenue by City
    - kind: Text
      metadata:
        name: summary
      spec:
        value: |
          **H1 2026 Summary**

          Total revenue reached **EUR 9.1m** year-to-date, slightly ahead of
          prior year at **+0.6%**. Madrid (**+2.1%**) and Amsterdam (**+1.8%**)
          grew fastest, while Seoul fell **-1.4%** vs PY.
Preview
A rendered IBCS dashboard page: revenue by city as a bar chart with variance to prior year, a monthly trend chart with forecast, a table and a written summary.
preview rendered

Rendered from the file on the left. It is the whole sandbox.Open the sandbox

Why it matters

Find out in an afternoon if it fits

Most reporting tools need a pilot project before you know if they fit. The sandbox needs a browser tab. What you write there is the same definition your team would put in its repository.

Test before you commit

A team can check if report as code fits its monthly close, with its own numbers, and without an install, a licence or a ticket.

Every experiment is a link

A sandbox has a URL. Send it into a review, and people see the rendered report and the definition behind it.

No dead end

Export downloads the sandbox as a bino project. What worked goes into the repository as it is. Nothing is rebuilt for production.

A guided start

New authors start with the tutorial and with templates that already render. The editor completes and checks what they type.

How it works

Write, add your data, take it with you

A sandbox is one YAML file with several documents. Everything below comes from the file shown above. bino builds the same manifests, with no sandbox-only syntax.

One file source and two queries. The first shapes the latest month by city. The second turns the year into a monthly series, where actuals switch to forecast in July:

report.yamlyaml
apiVersion: bino.bi/v1alpha1
kind: DataSource
metadata:
  name: new_cities
spec:
  type: csv
  path: https://sandbox.bino.bi/api/data/new_cities.csv
  delimiter: ";"
---
apiVersion: bino.bi/v1alpha1
kind: DataSet
metadata:
  name: revenue_by_city
spec:
  query: |-
    SELECT category, categoryIndex, operation,
           SUM(pp1) AS pp1, SUM(ac1) AS ac1
    FROM new_cities
    WHERE date = (SELECT max(date) FROM new_cities)
    GROUP BY category, categoryIndex, operation
    ORDER BY categoryIndex
  dependencies:
    - new_cities
---
apiVersion: bino.bi/v1alpha1
kind: DataSet
metadata:
  name: revenue_trend
spec:
  query: |-
    WITH monthly AS (
      SELECT CAST(date_trunc('month', CAST(date AS DATE)) AS DATE) AS month,
             SUM(pp1) AS pp1, SUM(ac1) AS ac1, SUM(fc1) AS fc1
      FROM new_cities
      WHERE date >= '2026-01-01'
      GROUP BY month
    )
    SELECT strftime(month, '%Y-%m-%d') AS date,
           'Total' AS category, 1 AS categoryIndex, '+' AS operation,
           pp1,
           CASE WHEN month <  DATE '2026-07-01' THEN ac1 END AS ac1,
           CASE WHEN month >= DATE '2026-07-01' THEN fc1 END AS fc1
    FROM monthly
    ORDER BY month
  dependencies:
    - new_cities

The editor completes kind values, the spec fields of each kind, enum values, dataset references and the column names your query returns. It marks schema and lint problems while you type.

What you can render

From a single chart to the finished PDF

Preview one component while you shape it. Then put it on a layout page and into a report artefact, all in the same file.

ReportArtefactDocumentArtefactLayoutPageTableChartStructureChartTimeTextTreeGridImage

Start from a template

Table

Blank sandbox

The minimal start: the hosted sample CSV, a DataSet and a Table.

ChartStructure

Structure chart

Revenue by city as an IBCS bar chart with actual vs. prior-year variances.

ChartTime

Time series

Monthly revenue trend with actuals and a forecast for the rest of the year.

LayoutPage

Dashboard page

A 2×2 layout with a structure chart, a trend chart, a table and commentary.

ReportArtefact

Full report (PDF)

The dashboard page in a ReportArtefact, ready to download as PDF.

Sharing & privacy

Share the link, keep the pen.

Your browser holds the right to edit a sandbox. The URL does not carry it. So a shared link lets people look, not overwrite.

Sharing a link

  • The share URL never contains the edit token. People who open it get a read-only view.
  • Anyone can fork a sandbox into their own copy and edit that. The original stays as it is.
  • Snapshots save a state that you can restore or fork later.
  • Embed snippets are public, frozen snapshots. They do not follow later edits.

Keeping it to yourself

  • A sandbox shows up in the public Explore list only when you put it there.
  • With an account, you can mark a sandbox as private, visible only to you.
  • Accounts are optional and have no password: you sign in with a code sent by email.
  • A private sandbox is shared with a short-lived read link, not a permanent public URL.

Running it

Public, or for your organisation

The public sandbox is free. If your teams should try bino on internal numbers, we can run a sandbox for your organisation, or help you run one in your own network.

Community

Public sandbox

Free

sandbox.bino.bi: open a tab and start writing.

  • No account to start
  • Guided tutorial and templates
  • CSV and Excel upload
  • PDF export and project download
Organisation

Hosted for you

On request

A separate sandbox for your organisation, run by us.

  • Your teams try bino on internal data in their own instance
  • Accounts and private sandboxes
  • Your private registry packages in the editor
  • Hosting in the EU
Organisation

In your network

On request

The sandbox in your own data centre or VPC.

  • Runs next to your data, inside your network
  • You choose which bino versions your teams can select
  • Confidential figures never leave your network
  • Help with the deployment
It is the same bino
The sandbox renders with a released bino CLI, the same one you install and your pipeline runs. It is not a demo build with different behaviour.

Technical detail

What your architects will ask

What the editor does, how the sandbox renders, and what it keeps private. You can check each point in the sandbox itself.

The editor

  • Completion for kind values, the spec fields of each kind, enum values, dataset and datasource references, and dataset column names.
  • Schema and lint problems are marked while you type.
  • Both come from bino’s own language server, the same one the VS Code extension uses.
  • Engine errors show up in a console pane instead of a blank preview.
  • Switch the report language to see the output in another locale.

Rendering

  • Each active sandbox runs its own bino preview.
  • The preview uses the same engine and templates as bino build.
  • Single components and full outputs: Table, ChartStructure, ChartTime, Text, Tree, Grid, Image, LayoutPage, DocumentArtefact, ReportArtefact.
  • A ReportArtefact builds a real PDF, with the same engine as bino build.

Data

  • Upload a CSV or Excel file, and a matching DataSource and DataSet are written into the editor.
  • Excel uploads carry the sheet name into the manifest.
  • Queries are plain SQL in bino’s embedded engine.
  • A DataSet builder can write the SQL step by step and keeps a log of what it did.
  • A hosted sample dataset is available in every sandbox, so a blank start still renders.

Isolation

  • Every render runs in its own container with memory and CPU limits.
  • A session that goes idle is stopped, so nothing keeps running after you leave.
  • Under heavy load a new preview is refused with a clear error instead of slowing down everyone.

Sharing & persistence

  • Sandboxes live at a stable URL and survive a closed tab.
  • Edit access is a token created when you create or fork a sandbox. It stays in your browser and is never part of the share URL.
  • Snapshots can be restored or forked later.
  • Embed snippets are public, frozen snapshots and do not follow later edits.

Registry & versions

  • Search the public registry from the editor and add packages as dependencies, with real bino registry runs.
  • Installed packages behave like local documents, as in a checked-out project.
  • Pick the bino version that renders a sandbox, from the list the deployment allows.
  • The list shows the engine version of each release, so you can reproduce an older render.

A sandbox for your organisation?

Tell us which teams should try bino and on what data. We will show you the options: hosted by us, or in your own network.