Free surplus food, live on the map near you.

Role
Author
Year
2026
Runs on
Any browser, installable as an app
Stack
Astro · React · MapLibre · Fastify · PostGIS
How it works in 20 seconds.

The idea

Good food gets thrown away a few streets from someone who would eat it.

In Germany there is already a culture for this: community fridges and Fairteiler, shared shelves where anyone can leave food or take it. The hard part is knowing, right now, which one has something in it, or where a market stall just put out its leftovers.

Nimmo is a live map for that. Permanent places, the fridges and Fairteiler, are kept apart from short-lived reports such as market leftovers and curbside finds. The reports come from the people nearby, and they expire unless someone confirms the food is still there.

How it works

  1. 1

    Spot free food

    A community fridge, a Fairteiler shelf, leftovers at a market stall, or a box at the curb.

  2. 2

    Snap a photo

    Report what is there with an optional photo and food tags: bread, produce, dairy, prepared, canned, drinks.

  3. 3

    It goes on the map

    Reports without a photo go live at once. Reports with a photo wait until the photo check passes.

  4. 4

    Still there?

    People nearby vote "still there" or "empty". A report expires after 3 hours unless someone confirms it.

A "still there" vote keeps a report alive for at least 45 more minutes, and the API only counts votes from within 250 m. Anyone can suggest a new fridge or Fairteiler; it stays pending until it is approved.

Privacy

Photos of food, not of people.

Every photo is checked by Gemini before it is shown. It rejects a recognisable face, the inside of a private home, a document or screen with personal data, or anything unrelated to food sharing. For the photos it accepts, it estimates how full the fridge or shelf is and tags the kinds of food.

The app asks for consent before the camera opens. Photos are re-encoded on the server, which drops EXIF and GPS data, and expired or rejected reports are deleted with their photos every few minutes. IP addresses are only kept as a hash with a salt that changes every day, and that hash is all the rate limits use.

Stack

What Nimmo is built with
WebAstro, React, MapLibre GL JS, TypeScript
APIFastify on Node, sharp for images
DatabasePostgreSQL 16 with PostGIS
Photo checkGoogle Gemini on Vertex AI
DeployDocker Compose, nginx, GitHub Actions

The interface is in German and English, with German as the default, and has a light and a dark theme. It ships a web manifest and a service worker, so you can install it on your phone like an app.

Try it

Seen free food today? Put it on the map.

Nimmo is live at nimmo.aryanmoradi.com. It works best on a phone, out on the street.