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.

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.
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.

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”.
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.

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.
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.
The result
Three sites live, with the numbers in plain sight.
from one codebase — English, Italian and Russian, with the language fixed at build time
weekly score in the 22 August 2026 back-test (0.5 = a coin toss): below the 0.750 target, and published on the site
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
REQUEST SENT ✓
Thank you. We reply within one business day.