Our own project: software we built and operate ourselves.
CivicFlow
A resident reports a problem through a simple form with category and priority, and staff see the whole queue in one panel. No report gets lost in an inbox. The portal blocks forged submissions, and the database needs no server of its own.

Resident reports get lost in inboxes and phone calls
A fault reaches the local office by email or phone. No one sees right away what is urgent, what is already being handled, or how many similar reports came in. So we built a simple portal: the resident picks a category and priority, and staff see the whole queue and change status without digging through email.
One reporting system, from municipality to local wardens
CivicFlow fits anywhere a resident's report needs to reach the right department with a priority attached, not a shared inbox. A gmina, Poland's smallest municipal unit, tracks road and lighting faults in it. A city routes reports across departments. Municipal wardens run a separate queue: illegal parking, noise, public order. Categories and permissions adapt to your organization's structure, not the other way round.
From a resident's form to a staff dashboard
A form validated on the client and with a Zod schema on the server: name, email, one of 6 categories, priority, message. A CSRF token in a double-submit-cookie pattern blocks cross-site attacks before the request is even sent.
The server first checks the CSRF token against the secret in an httpOnly cookie, checks the rate limit, validates the content with a Zod schema, and only then writes the report to Postgres through Prisma.
Staff see every report in one place: filter by category and priority, sort by date, change status Pending → In Progress → Resolved (or Rejected) in a single click.
HSTS, X-Content-Type-Options, and Referrer-Policy set at the response level. The database is a private Postgres instance on Neon, with no server of its own to maintain.
Structure, not marketing numbers
report categories: each lands with the right department and a priority, not in a shared inbox.
report statuses, changed with a single click: the whole team sees at once what is waiting, in progress, and closed.
forged reports in the database: every one must come through the real form, so the queue never fills with junk.
Every choice has a reason
Got a nagging problem? Describe it, I'll code the rest.
One sentence is enough to start. Tell me what's bothering you. Within 48 hours I come back with a clear answer: can it be done, and at what fixed price.