No updates detected yet. GitHub releases will appear here.
A quiet map for leaving flowers and letters where someone lived. Moderated and translated by Gemma, running locally. Hacktoberfest 2026 Open-Source AI Challenge.
翻訳待ち
Loading the full README.
Read the full README ↗A world map where you leave a marigold, a candle or a letter at a place that belonged to someone: the plaza where your grandmother sold tamales, the beach where a teacher explained waves, the bakery where your mother bought sweet bread on Sundays. The person can be alive or gone.
Every word left on the map is read first by Gemma, an open-weight model running on the same small server as the app. Gemma decides what can stay, translates letters for readers in other languages, and can help someone who doesn't know how to start. Nothing anyone writes is sent to an outside AI service.
Live: https://geoletter.tech
It is meant to feel like a book of condolences, not an app: paper, ink, one serif face, one candle colour, no counters and no features list. It's a tribute, not a product.
A 90-second demo: narrated (voice by ElevenLabs), silent, and vertical for phones (narrated, silent).
allow, reason, categories, lang). Hate, harassment, threats, sexual content, spam and other people's private data (phone numbers, home addresses, CPF/SSN, emails) are turned away. Grief, anger at a loss, harsh words about a dead father and dark humour are allowed. If a letter is kept back, only its author sees why, in the language they wrote in.127.0.0.1. The letters never leave the server to be moderated or translated.Gemma is not a feature on top of the app. Without it there is no moderation, so nothing written can be published; there is no translation and no drafting. Turn Ollama off and the map only accepts flowers and candles without words.
browser (MapLibre GL, plain JS, no build step)
│ HTTPS
nginx ── geoletter.service (Node 24, TypeScript run directly, SQLite via node:sqlite)
│ ├── guardian worker: one queued offering at a time ─┐
│ ├── translate / draft (jump ahead of moderation) ├─> Ollama 127.0.0.1:11434
│ │ │ Gemma 4 E2B, 2 threads,
│ │ │ one call at a time
│ ├── mail driver: "log" (default) or SMTP
│ └── Nominatim proxy (1 req/s, cached in SQLite, own User-Agent)
└── tiles: OpenFreeMap (open style, no key), data © OpenStreetMap
This is the beginning of the README. Read the rest at the original. Read the full README ↗