Cesena Radici Future: neighbourhood data made readable
Five European projects under one roof, and the neighbourhood sensors speaking plainly instead of in W/m².

- Year
- 2026
- Client
- Comune di Cesena
- Project
- WeGenerate, co-finanziato dall'Unione Europea
- Research, design and communication
- Etnograph
- Development
- Quinck
- Project website
- cesenaradicifuture.it
The City of Cesena did not have one communication problem: it had five. WeGenerate, RIWET, Poseidon, Energy2Act and RISE-IN all run across the area at once, spanning energy transition, climate resilience, urban regeneration and protection of the river Savio, each with its own timelines, partners, events and documents. For a resident the result was unreadable: nowhere to find out what is happening to their own neighbourhood, environmental data collected and never shown, an urban digital twin almost nobody knew existed.
What was needed was a shared home. We built it as a single Next.js application holding together three very different domains: editorial, environmental data and participation. One deployable, one runtime, one thing to look after. That is deliberate: with a non-technical editorial team and a running cost that has to be justified to a public body, fewer moving parts means less surface to break.
DatoCMS is the single source of truth: projects with their progress, milestones and intervention areas, long reads, news, events, surveys, reports, and the institutional and legal pages too. Every project is a piece of content, not a page. Pages are server-rendered and cached with granular invalidation tags: when an editor publishes, a webhook invalidates only the pages that content touches. Publication visible within seconds, with no rebuild and no deployment.
In the Vigne-Stazione pilot area there are four LoRa sensors, anemometric and rain-temperature-humidity, measuring solar radiation. The data was reachable only through the operator's authenticated API, with a maximum window of six hours per call: useless for building time series on a page. An hourly cron queries the API sensor by sensor and writes to Postgres with a sensor-event-timestamp primary key. Ingestion is idempotent: overlapping windows are read again without duplicating anything, and a failed tick recovers by itself on the following pass, leaving an audit row with status, rows ingested and error.
The Data page reads from our own database, not from the supplier: it stays up even if the sensor network goes offline. And it does not publish raw readings, it interprets them. The values from the two stations are described in words, and perceived comfort combines air temperature, humidity, air speed and mean radiant temperature into an hourly index and a single flat sentence. Solar radiation is the happiest case: next to the chart sits the calculation of how much energy a 3.5 kW photovoltaic array would have produced over the past few hours.

It is the point where a European project stops being abstract and starts talking about your own roof.
Taking part works with no private area and no login. The "Propose an idea" form goes through a Server Action with validation on a shared schema, explicit privacy consent and a notification to the editorial team sent from the council's own SMTP, because institutional email could not leave through a third-party service. Events and surveys are handled by the editorial team, while a dedicated landing page explains to a non-technical audience what the Urban Digital Twin can simulate, and connects Cesena to the international network of cities that have one.
The analytics snippet that came from the council was Matomo on Web Analytics Italia, the platform run by the Italian digital agency, configured with cookies: behind a consent banner it would have measured only the people who accept, returning understated numbers. Reconfigured in cookieless mode it falls among the analytics treated as technical cookies, starts without consent and measures every visit, with the data staying on Italian public infrastructure.
The platform went live for the opening on 21 September 2026, with the date announced before the project was finished: further requests about the weather station data were knowingly deferred until after launch to protect that deadline, and they are the product's line of development today. Running cost is one serverless deployable and a Postgres instance on a free tier. The cost of publishing the next European project is editorial, not engineering.
Stack: Next.js, React, TypeScript, Tailwind CSS, DatoCMS, GraphQL, PostgreSQL, Drizzle ORM, Recharts, Vercel, GitHub Actions, Matomo on Web Analytics Italia
Stack: Next.js, React, TypeScript, Tailwind CSS, DatoCMS, GraphQL, PostgreSQL, Drizzle ORM, Recharts, Vercel, GitHub Actions, Matomo on Web Analytics Italia
- Year
- 2026
- Client
- Comune di Cesena
- Project
- WeGenerate, co-finanziato dall'Unione Europea
- Research, design and communication
- Etnograph
- Development
- Quinck
- Project website
- cesenaradicifuture.it
Got something similar in mind?
Tell us what you want to build and we will help you find the shortest way there.






