Wave for visual separation.

How is it flowing? The story of FlowFlow

Written by Roman on July 16, 2026 — updated on August 19, 2026

Back in 2017 I started FlowFlow as one of my first pet projects, and it has been quietly evolving ever since. The idea behind it - bring the information about all Swiss waters easily accessible to the public, for free. This year, thanks to AI tooling, I could finally give it the frontend it deserves — and since August 2026 it has a proper home of its own: flowflow.li.

FlowFlow showing live data of Swiss water stations

What you can do with it

FlowFlow brings almost 300 water monitoring stations on Swiss rivers and lakes together in one place:

  • Water temperature in °C — is the lake warm enough for a swim?
  • Water level (Pegelstand) in m above sea level, for rivers and lakes
  • Discharge (Abfluss) in m³/s, useful if you kayak, raft or fish
  • Turbidity in NTU, so you know whether the water is clear or murky
  • Official BAFU flood danger levels, shown as soon as a gauge crosses a threshold

Every station has its own page with current values, 60-day averages and historical trends, plus the other stations on the same river. You can search for a station, browse them all on the map, or star your regular spots so they are one tap away. FlowFlow is a progressive web app, so you can install it on your phone like a normal app. No accounts, no ads, no paywall — and it's available in German, English, French and Italian.

A FlowFlow station page showing discharge, temperature and water level for the Aare in Bern

Which rivers and lakes are covered

Pretty much all of the ones you'd expect. On the river side that means the Aare in Bern, the Rhine in Basel, the Reuss in Lucerne, plus the Rhône, Limmat, Thur, Inn, Ticino, Emme, Linth, Saane and Doubs. On the lake side you'll find the Lake of Zurich, Lac Léman, Lake Lucerne, Lake Constance, Lago Maggiore, Lago di Lugano, Lac de Neuchâtel, Thunersee, Brienzersee, Zugersee, Bielersee, Walensee and Greifensee.

Where the data comes from

All measurements come from official Swiss sources. River levels, discharge and water temperatures come from the Federal Office for the Environment (BAFU/FOEN) hydrodata network, weather data from MeteoSwiss, and for lakes without their own temperature sensor the surface temperatures come from Eawag's Simstrat model. The BAFU flood danger levels come straight from the same source. FlowFlow doesn't measure anything itself — it gathers what is already public, keeps it fresh, and makes it pleasant to look at.

How it's built

Under the hood it's a Ruby on Rails app, self-hosted, importing fresh data every ten minutes. The frontend is server-rendered with Hotwire, which keeps it fast on a phone with a weak signal at the riverside — which is, after all, where you actually need it.

Feedback welcome

FlowFlow is free for everyone and will stay that way. Have a look at flowflow.li — I'm happy to hear your feedback via our contact page.