MyCityHelp
A support-ticket SaaS product: a marketing landing page plus a role-gated helpdesk app with real-time ticket notifications over WebSockets, built on Angular 20 with SSR.
- Angular 20
- Angular SSR
- PrimeNG
- Tailwind CSS 4
- WebSockets
- Google Places API

Overview
MyCityHelp is a support-ticket SaaS product. It has two parts: a marketing landing page that presents the product, and the helpdesk application itself.
The challenge
A helpdesk lives or dies on response time. Agents need to know about new and updated tickets as they happen, and different users should only see what their role allows. At the same time, the product needed a public landing page that loads fast and can be found in search.
What I built
- A marketing landing page, server-rendered for speed and search visibility.
- A role-gated helpdesk app, where each role sees only what it should.
- Real-time ticket notifications pushed over WebSockets.
- Google Places autocomplete for location fields.
Tech & architecture
- Angular 20 with SSR.
- PrimeNG and Tailwind CSS 4.
- WebSockets for live notifications.
- Google Places autocomplete.
Outcome
The product has a public face and a working helpdesk in one Angular codebase. Ticket activity reaches the right people in real time, and role-based access keeps each user's view focused on their own work.
