FungRadar

Case studies / Web app · 3 sites, 3 languages

A mushroom forecast in three languages, from one engine.

FungRadar tells you where and when mushrooms are coming up, region by region and city by city, working it out from weather, soil and forest cover — and it does the same for berries. fungradar.com covers 36 European countries in English. The same engine runs it.fungradar.com in Italian and ГрибРадар (gribradar.ru) in Russian. For the client we built one codebase that turns into three sites, each written in its own language.

fungradar.com ↗

fungradar.com
The fungradar.com home page — FungRadar's English site with the mushroom activity forecast for Europe

The problem

On a site for foragers, a bad translation is a hazard.

Foragers decide where to go and what goes in the basket. A wrong local name, a warning left in another language, a dangerous look-alike missing from the page: on a site like this, those aren’t typos — they’re risks.

And there were three audiences with three different maps: Russia and Belarus, Europe in English, Italy. Three separate projects would have meant three codebases kept in step by hand — and sooner or later one falls behind, on exactly the parts that matter most.

Our answer

One engine, three sites, each written in its own language.

One codebase: the language is fixed when the site is built, and three sites come out of it. ГрибРадар and FungRadar are different products on a shared engine; fungradar.com and it.fungradar.com are one product in two languages. And every site is in its own language from top to bottom, from the page addresses to the copy.

✓English and Italian copy written from scratch, not translated from Russian
✓An automated script hunts down any leftover Cyrillic, attributes included
✓Addresses in the site’s language, with permanent redirects from the old Russian paths
✓hreflang links — ru-RU, en-GB and it-IT — between the three sites

The forecast

An index that also tells you how far to trust it.

The heart of the product is an activity index shown in three parts: a number, a word that explains it and a confidence level — because a bare number doesn’t help someone deciding whether to head out on Saturday morning. Alongside it sit a weekly forecast species by species, and region and city pages. The English site covers 36 European countries.

01A three-part index. Number, word and confidence: readable at a glance, and you know how much to believe it.
02The week, species by species. Not a vague average for the woods, but how the week looks for each species.
03Regions and cities. Region and city pages at English addresses: /forecast/kent, not a Russian path.
04Mushrooms, berries and more. 28 mushroom species and 8 berries in the model; the Russian site adds herbs, birch sap, ticks and mosquitoes.
fungradar.com
Regional forecast for Magadan Oblast on fungradar.com on a phone: index by species and today's best

A regional forecast on a phone-sized screen: the index species by species, on the same scale as the big number.

Safety before translation

A species goes live only when it’s complete in the site’s language.

This is the most important technical decision in the project. A species appears in the English (or Italian) catalogue only once its local name, its safety text and all of its dangerous look-alikes exist in that language. If even one is missing, the species simply isn’t there.

The same goes for the site’s sections: they’re switched on language by language from a table, and a forgotten section stops the build instead of going live half-done. The Russian version’s Telegram Mini App also has a photo identifier, with a confidence threshold, at most 3 candidates and a filter against phrases like “edible”: when in doubt, the answer is “don’t eat anything based on a photo”.

CatalogueLocal name, safety text and every dangerous look-alike — or the species isn’t published
SectionsSwitched on per language from a table: a forgotten section stops the build
DisclaimerIn every footer: no 100% guarantee that anything is edible
Look-alikesPairs with a deadly look-alike are flagged as not separable by photo
MycologistLook-alikes carry the label “not confirmed by a mycologist”
Red listRed-list species aren’t recommended, and their locations aren’t shown

How we check

A product that publishes where it falls short.

Every forecast promises something; few measure it in public. FungRadar tests the model against real mushroom finds (GBIF data) and reruns the same test with the dates shuffled, as a control. In the back-test of 22 August 2026 the weekly score is 0.610, where 0.5 is a coin toss (95% interval 0.556–0.655, over 7,187 comparisons); the monthly score is 0.847. With shuffled dates the week scores 0.576: for now the weather’s contribution can’t be told apart from zero, and the project’s own target of 0.750 isn’t reached. All of this is on the site, not tucked away in an internal report.

fungradar.com
The fungradar.com forecast map: the mushroom activity index point by point across Europe

The forecast map: computed at 8,461 sample points, and between them the heat layer is an estimate, not a measurement — the site says so right under the map. The back-test figures live on the site’s How we check page.

01Outside data. The model is measured against real finds recorded in GBIF, not against its own guesses.
02A control run. The same records with the dates shuffled show how much of the result is just the calendar.
03A stated target. 0.750 for the week: not reached, and the site says so.
04What it means for you. We measure what we build, and we say what doesn’t work yet.

How it’s built

Light in the woods, solid behind the scenes.

Foragers are often where the signal comes and goes. So the site is a PWA with its own service worker and an offline page, “Out in the woods”, for when the network drops; its app manifest is in English; and a city page went from 707 KB to 304 KB. The maps run on the project’s own vector tiles, drawn with MapLibre.

Under the hood, in plain words: a Next.js/React front end, a Python (FastAPI) API, a separate forecast engine that does the maths, and a PostgreSQL database. Three sites, but one thing to maintain.

SourcesOpen-Meteo, ESA WorldCover, Copernicus DEM, GBIF, OpenStreetMap
MapsThe project’s own vector tiles, drawn with MapLibre
OfflinePWA with its own service worker and an offline page for the woods
TelegramOn the Russian site: a bot with subscriptions, alerts and a weekend summary, plus a Mini App
Timeline11 August – 23 September 2026; English live on 28 August, Italian on 8 September
CreditIn the footer of all three sites: “Made by Studio Remarka”, in each site’s language

The result

Three sites live, with the numbers in plain sight.

3sites

from one codebase — English, Italian and Russian, with the language fixed at build time

0.610

weekly score in the 22 August 2026 back-test (0.5 = a coin toss): below the 0.750 target, and published on the site

304KB

the weight of a city page, down from 707

BUILT BY STUDIO REMARKA FOR THE CLIENT — VERIFIABLE AT fungradar.com

Interested in this project?

Need a custom website or app? Let’s talk.

We design and build custom websites and web apps for companies and professionals. Tell us your idea: we’ll reply with an analysis or a fixed quote.

  • Fixed quote within 24 hours
  • Clear price, no surprises
  • Your data stays in the EU

Quick request

Prefer to tell us everything at your own pace? Fill in the brief →