A whole council's information, kept current by its own staff.
A local council publishes a lot: resident services, news, tenders, jobs, events, forms, council protocols, reports, emergency information and freedom of information.
Many kinds of content
Tenders, jobs, events, protocols and reports each have their own fields; tenders and jobs have their own categories, and tenders are active or ended.
Two languages, right to left
Residents read Arabic and Hebrew, so the site works in both, right to left, with a language switch in the header.
Staff publish it themselves
The council's staff, not developers, add tenders, post jobs and build the forms residents fill in.
Two front ends, one API and one database.
The public site and the admin dashboard are separate apps. Both read and write through the same NestJS API, which owns the MySQL database.
Public site · Next.js · next-intl · Arabic and Hebrew
Admin dashboard · React · Vite · TipTap editor
Council API · NestJS and TypeORM: content, tenders, forms and submissions, search and users.
MySQL · content, forms and submissions
PDF export · Puppeteer
Image processing · sharp
Email · nodemailer
Search, newsletter sign-ups, contact messages and editor uploads go through the same API.
Four decisions behind the site and the dashboard.
One API for both sides
The site and the dashboard share one NestJS API with modules per section. What staff save in the dashboard is what residents read on the site.
Forms built in the dashboard
Staff design custom forms with a form builder, preview them, and read applicants' submissions in the dashboard. Residents apply online on the public site.
Tenders as structured records
Each tender has a category and an active status. The site splits active from ended, shows counts, and lets residents search and sort, with a page per tender.
Settings staff can change
Option sets, validation patterns, the homepage slider, popups and site settings live in the dashboard, so routine changes don't need a developer.
What residents and staff get, in Arabic and Hebrew.
Services from the homepage
A two-step category search and service tiles: online payment, forms, phone directory, tenders, emergency and GIS.
Tenders
Categories for HR, suppliers and the consultants and suppliers database, with counts, search, sort and a page per tender.
News, events and jobs
Articles and job listings with their own categories, and events, all managed in the dashboard.
Forms and online applications
Downloadable forms, and custom forms residents fill in online.
Council records
Council protocols, reports, municipal departments, a contacts directory and a download center.
An admin dashboard
Roles and users, a rich-text editor, the homepage slider, popups and site settings.
