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.
data space «mondo-in-cifre» — the suite’s glue: on your device, multi-user with one invite (link or QR), end-to-end encrypted.
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.
- Use it right away. Hit “Use this app”: it opens right in your browser, ready to go, with data saved only on your device.
- Your data stays yours. Everything is stored locally on your device, kept separate for each app: no account, no server, nothing to set up.
- Make it your own. The text below is the entire app: copy it, tweak fields, views and words, and your changes become interactive instantly.
- 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.