Dela Ryadom
A resident types in their street or clicks a district on the map and sees what was done nearby and who took part. No fact without a source.

The map is the entrance
The home screen is a map of Saint Petersburg’s 18 districts with a city-centre inset. Districts are shaded by the number of items, and a click leads to the district page with its items, deputies and news. Boundaries come from OpenStreetMap and are simplified by our own code to keep the map light.
A fact with a source
The catalogue holds 41 items and 20 plans. Each item has a date, an address plate, the deputy’s role in the source’s own words and a link to the publication. The texts were checked against the sources by hand.
For the hallway and the chat
A district page prints as an A4 sheet for the notice board, with a QR code to the site, and the summary can be copied as text for the building chat. The QR generator is our own.
How the district map works
A relief map on a plinth: district tiles rise with the number of items, an address pin moves to the chosen district, and a small press prints the hallway sheet.
Screens
Under the hood
- React 19 and TypeScript with no bundler: our own build turns the site into one HTML file of about 1 MB.
- District boundaries from OpenStreetMap, with our own outline simplification and smoothing.
- Our own QR code generator for the printed sheet.
- Each region is a separate data folder, so the site can be deployed for another city.
- A small Node server with SQLite for residents’ votes, tips and subscriptions.
React · TypeScript · OpenStreetMap · Node.js