Primăria Vatra
A government site built to banking standards: 417 pages with zero accessibility violations and online citizen requests.
- Client
- primariavatra.md
- City
- Vatra, Chișinău
- Year
- 2026
- Status
- Live

Challenge
City Hall ran on WordPress with plugins. The new site had to comply with the law: accessibility for people with disabilities (HG 728/2023), publication of decisions and the budget, and response deadlines for citizen requests under the Administrative Code. We had to migrate 166 documents and hundreds of old URLs and give staff a secure admin panel.
Solution
We designed a system of four independent parts (website, API, admin panel, infrastructure) with a single OpenAPI contract. We built the existing design 1:1 and added everything it lacked: the mobile version, UI states, legal pages, search. We built the admin panel from scratch, with roles, 2FA, revisions and Facebook auto-posting.
Our role: The website design isn’t ours: we received a finished Figma mockup and built it 1:1. Our work covered architecture and development of the website, API, admin panel and infrastructure. We designed the admin panel ourselves.
Project screens
What we built
Public website
- News, announcements, events, services with forms, city council, “Transparency”
- Document registry with search and filters by category and year
- Citizen requests with a registration number and a legal response deadline
- Accessibility widget per HG 728/2023: contrast, font, cursor, navigation
- Three languages with localized URLs, RSS, search, sitemap
- Form protection with ALTCHA, free of third-party services and cookies
Admin panel
- Sign-in: password, mandatory 2FA and backup codes
- 5 roles and a “content type × action” permission matrix
- Editor with RO/RU/EN tabs and “missing translation” flags
- Version history with line-by-line diff and rollback
- Scheduled publishing, preview, drafts that survive a page reload
- Requests section: assignees, deadlines, overdue items, legal extensions
- Auto-posting of news and events to Facebook with photos and video
API
- NestJS on Fastify: 277 operations, 59 PostgreSQL tables
- Record lifecycle: draft → review → published → archived
- Typo-tolerant full-text search in three languages
- Media: ClamAV antivirus, EXIF stripping, PDF rebuilding, video up to 4 GB
- RU slugs per GOST 7.79, automatic 301s when a URL changes
Security and infrastructure
- OWASP ASVS L2: Argon2id, breached-password checks, CSRF, strict CSP
- Append-only audit log, with edits blocked at the database level
- Docker, Prometheus/Grafana/Loki monitoring, Telegram alerts
- restic backups with a monthly restore test
- ≈400 API tests, 228 website tests, e2e in two viewports
Outcome
City Hall runs its own stack with no WordPress dependency: staff manage content through an admin panel with roles and 2FA.
Citizens file requests online and get a registration number, and response deadlines are tracked automatically.
The site passes the automated axe accessibility audit on all 417 pages with zero violations.
312 old URLs now 301-redirect, and documents were migrated with nothing lost.
Posts are automatically mirrored to City Hall’s Facebook page.
Stack
Integrations

Want the same?
Tell us about your challenge — within 24 hours we’ll come back with a solution, timeline and launch plan.