CatalogPublic data ›Reference

The world in numbers — exchange rates, weather and markets from public APIs

Open data **beyond Italy**: this app talks directly to three worldwide public APIs — ECB exchange rates (Frankfurter), Open-Meteo weather and CoinGecko markets — with no keys, no sign-ups and no server in between. The calls leave your browser and the data stays there.

💱 Rates⛅ Weather🪙 Crypto

data space «mondo-in-cifre» — the suite’s glue: on your device, multi-user with one invite (link or QR), end-to-end encrypted.

▶ Open the suite (3 micro apps)

or open it as a single app

exchange ratescurrenciesecbweatheropen-meteocryptoapiworlddashboard

What it records

  • Base currency (e.g. EUR)
  • Latitude
  • Longitude

Composed of 3 micro apps

One job each, over the same data: every micro app reads and writes the shared data space “mondo-in-cifre” (with your consent, asked on first open). Everything stays on your device — and with a single invite the whole suite goes multi-user, end-to-end encrypted.

How it works

This is a Reactive app: a plain text document that your browser turns into a working app — forms, live data, tables, statistics and even charts, with nothing to install or configure.

  1. Use it right away. Hit “Use this app”: it opens right in your browser, ready to go, with data saved only on your device.
  2. Your data stays yours. Everything is stored locally on your device, kept separate for each app: no account, no server, nothing to set up.
  3. Make it your own. The text below is the entire app: copy it, tweak fields, views and words, and your changes become interactive instantly.
  4. Share it as a file. An app is a simple file: save it, export it or share it with a link; and with encrypted collaboration several people edit the same data in real time.
The app’s source
# 🌍 The world in numbers

Open data **beyond Italy**: this app talks directly to three worldwide public
APIs — ECB exchange rates (Frankfurter), Open-Meteo weather and CoinGecko
markets — with no keys, no sign-ups and no server in between. The calls leave
your browser and the data stays there.

:::::page{title="Rates" icon="💱"}

## ECB exchange rates

Pick the base currency (ISO code: `EUR`, `USD`, `GBP`, `CHF`, `JPY`…): the
call re-runs by itself on every change.

::input[base]{value="EUR" placeholder="Base currency (e.g. EUR)"}

::api-query{url="https://api.frankfurter.dev/v1/latest?base={#base}" into="rates" pick="rates" as="pairs"}

**Click a bar** to single that currency out in the table (second click:
filter cleared).

::::dashboard{path="rates"}
::chart-bar{data="rates" x="key" y="value" height="18rem"}

:::table{path="rates" headers="Currency,Rate" pagesize="10"}
{key} | {value}
:::
::::

And a single rate as a reactive value, ready for a computation:

::api-query[eurUsd]{url="https://api.frankfurter.dev/v1/latest?base=EUR" pick="rates.USD"}

1 EUR = **:value[vt]{ref="#eurUsd"}** USD (ECB fixing, business days).

:::::

:::::page{title="Weather" icon="⛅"}

## The next 72 hours, anywhere

Coordinates of any point on the globe (default: Rome). Open-Meteo's columnar
format becomes a time series by itself.

::input[lat]{value="41.9" placeholder="Latitude"}
::input[lon]{value="12.5" placeholder="Longitude"}

::api-query{url="https://api.open-meteo.com/v1/forecast?latitude={#lat}&longitude={#lon}&hourly=temperature_2m,precipitation&forecast_days=3" into="weather" pick="hourly"}

::chart-line{data="weather" x="time" y="temperature_2m" height="16rem"}

::chart-line{data="weather" x="time" y="precipitation" height="12rem"}

Temperature (°C) and precipitation (mm) hour by hour, Open-Meteo models.

:::::

:::::page{title="Crypto" icon="🪙"}

## The main crypto markets

The 20 largest markets by capitalisation, in euros, from CoinGecko. The
refresh button re-reads the prices; click a bar to single out a coin.

::api-query{url="https://api.coingecko.com/api/v3/coins/markets?vs_currency=eur&order=market_cap_desc&per_page=20&page=1" into="crypto"}

::::dashboard{path="crypto"}
::chart-bar{data="crypto" x="symbol" y="current_price" height="16rem"}

:::table{path="crypto" headers="Coin,Symbol,Price €,Market cap €" pagesize="10"}
{name} | {symbol} | {current_price} | {market_cap}
:::
::::

:::::

---

Sources: **Frankfurter** (ECB reference rates, public domain), **Open-Meteo**
(CC BY 4.0, open weather models), **CoinGecko** (public API, generous rate
limit). The calls leave the browser directly: no personal data travels, and
the downloaded collections stay local to the device.