One neighbourhood boundary. Every municipal service.
Custofaber Civitas is a shared foundation for the services a municipality provides to its area. Library, city, disaster and service modules use the same neighbourhood layer and the same citizen record. Everything runs on the municipality's own server.
The core is ready. We are open to a pilot partnership.
Click a point on the map. Civitas tells you which neighbourhood it falls in and how many registered citizens live there. Counts below 5 are never shown.
Which neighbourhood is this point in?
Merkez
M07 · population 9800
- Registered citizens
- 230
- Per thousand
Counts below 5 are not shown: a number that small could identify a person in that neighbourhood.
Click another neighbourhood, or move with the keyboard.
Illustrative map. Neighbourhoods and numbers are examples and do not belong to a real municipality.
The core is ready. Modules are built on top of it.
Every module shares the same three things: the neighbourhood and map layer, the citizen record and the data protection rules. A citizen registers once; the library and the city module use the same record.
Neighbourhood layer
Neighbourhood boundaries from your mapping unit are imported as GeoJSON. Coordinates must be WGS84; projected files are rejected with a clear error and invalid polygons are repaired. Simplified boundaries for the map and a "which neighbourhood is this point in" query.
PostGISCitizen record
First name, last name, phone or email, year of birth, neighbourhood and address. National ID numbers are not stored. Phone numbers are normalised; records are found by name or phone.
PostgreSQLData protection
Versioned privacy notices, a reason recorded for every view, anonymisation when the retention period ends. The rules are below.
Roles and audit log
Administrator, data protection officer, registration clerk (front desk) and analyst. Analysts see the map and statistics but cannot access personal data. Every action is written to a hash-chained, append-only log.
SHA-256
The library comes next.
Modules are added one at a time. We choose where to start together with the pilot municipality.
Library
Catalogue and branch copies, membership on the core citizen record, loans, returns, overdue items and holds. Migration from the old system by CSV.
In developmentPublic service for citizens
A narrow interface, separate from staff screens, for things like catalogue search and "my loans".
PlannedCity
Service and need indicators at neighbourhood level, on the same map.
PlannedDisaster and risk
Planning and monitoring disaster and risk information on the same neighbourhood layer.
PlannedService performance
Tracking where municipal services reach, and how quickly, neighbourhood by neighbourhood.
Planned
Six rules for citizen data.
These rules are not settings. They are enforced in the database and the code, and no module can switch them off. They follow KVKK, Turkey's personal data protection law.
National ID numbers are not stored.
Only the information a service needs is collected. No module asks for an ID number.
Privacy notices cannot be changed.
Notices are published with a purpose and a version; a published notice cannot be altered or deleted at database level. A record is only opened by presenting the current notice, and which version was presented, and how (front desk or online), is kept.
Every view is logged with a reason.
Who opened which record, when and for what purpose; the data protection officer can always see this.
No personal data goes into the audit log.
Names, phone numbers, search text and changed values are never written; only the record number and the action. That way an unchangeable log never conflicts with the right to erasure.
Records are anonymised when time runs out.
An erasure request or the end of the retention period deletes the personal fields. Neighbourhood and decade of birth remain for statistics.
Small counts are not shown.
Counts below 5 are hidden in neighbourhood statistics, because they could identify a person.
We are building it in the field with a municipality.
We want to develop Civitas's first modules together with a pilot municipality, on real workflows.
Conversation
We talk through your needs and the neighbourhood boundary data you have, and choose the first module together.
Installation
We install Civitas on your municipality's server and import your neighbourhood boundaries. No component connects to an outside service.
Review together
Your staff use the first module and we set priorities together. You decide whether to continue.
See it with your own neighbourhood boundaries.
Write to us for a short demo. Your municipality's name and the service you are most curious about are enough.