Ivan ZugecContactContact me

transport.nsw.gov.au

Maintained the main Transport for NSW site and helped build a platform that runs many agency sites from one Drupal instance with Next.js frontends.

All projects
transport.nsw.gov.au home page
  • CompanyTransport for NSW
  • My roleSoftware engineer, then senior software engineer
  • Year2018 – 2024
  • Built withDrupal 8–10, PHP, Next.js, React, GraphQL, Docker, AWS

Overview

transport.nsw.gov.au is the main website for Transport for NSW. I helped maintain it, and in my second stint at the agency we also built a platform that lets teams across Transport for NSW manage the content for their own websites from a single Drupal instance.

The challenge

Teams across the agency need websites for their projects and programs. Building a separate Drupal site for each one means rebuilding the same thing again and again.

My role

  • Main site: I maintained a portfolio of high-traffic Drupal 8 sites including transport.nsw.gov.au, and built custom modules for business logic and third-party API integrations.
  • Platform: I built custom REST endpoints and GraphQL schemas for the Next.js frontends, and worked with the React team on caching. API response times came down from about 1 second to about 100 ms.
  • Upgrades: I was tech lead on the Drupal 9 to 10 upgrade for 15+ sites, finished in about three months with zero downtime.

The solution

We built it headless. Teams manage projects, programs, pages and news in one Drupal instance, and a standard Next.js frontend reads that content over GraphQL. Spinning up a new site means deploying another copy of the frontend.

The impact

The agency maintains one Drupal platform instead of rebuilding a Drupal site every time, and new sites start from the standard frontend. 18 sites run on the platform, and provisioning a new one with the standard style guide takes days where it used to take weeks.

Hiring, or have a project in mind?

Get in touch and tell me about the role or what you're building.

Contact me