Precise digital work. Insights from the studio. Delivered quarterly.

From the Lab, February 2026

Project Spotlight - Alex Greenwich

Alex Greenwich’s Website: Faster, Smarter, and Easier to Manage

Alex Greenwich is an Australian politician in the New South Wales Parliament, known for championing social reform and staying connected with his community. He also runs a high-profile platform sharing news and updates with constituents.

Cactuslab helped Alex redesign his website, move away from cumbersome software and build a volunteer platform, including migrating thousands of news articles.

The site came together in just a few months, with Alex providing hands-on feedback to ensure it looked and felt right. With Supermodel CMS, his team can now manage content themselves with minimal support, making day-to-day updates simple and intuitive.

With many thousands of news articles imported and no clear organisational structure to them, Supermodel’s default UI was faced with a challenge. The team considered the many competing requirements and implementation options, and settled on an elegant customisation to the Supermodel Admin interface, which allows Alex’s team to manage the huge volumes of new and old content seamlessly without stressful load times.

Beyond fixing performance, the project also strengthened Supermodel’s core architecture, giving Alex’s team faster performance, easier management and greater flexibility for the future.

Alex Greenwich’s Official Site
Product Launch - Gin

Always On Insight for Java Applications

Cactuslab is excited to launch Gin, created by senior developer David Maplesden as part of his PhD and proven in production for nearly 11 years. Gin has helped platforms like Letterboxd and Healthpoint understand how their Java applications behave under real world traffic and optimise performance as they grow.

Unexpected spikes and slowdowns happen all the time, and teams often know when something went wrong but not why. Gin runs continuously, capturing application behaviour as issues occur, allowing teams to troubleshoot problems after the fact without needing to recreate them.

Designed for Java server applications (with Ruby and node versions on the roadmap), Gin monitors systems quietly with minimal impact. The insight Gin provides makes it easier to identify inefficiencies, tune/optimise application behaviour and reduce unnecessary infrastructure usage. It complements existing tools and is much simpler to understand than alternatives, offering enterprise level profiling at a fraction of the cost of Datadog, New Relic, Dynatrace or AppDynamics, with subscriptions starting at just $19 a month. Setup is quick using a lightweight, open source agent.

Gin gives teams confidence and clarity by showing not just that something happened, but exactly what changed and why.

Check Out Gin!
Inside the Code

Maintaining Browser Performance at Scale - Insights from our front end team

Over the last few years, our product work at Cactuslab has varied greatly. Building financial dashboards to Parental tools, web tools for Java application optimisation and a full frontend rebuild of our beloved CMS. Some of these tools have some bespoke integrations to enhance the user experience on small devices, but at their core, they are all built on web code and can be rendered in a browser.

Browsers are smart. Smart enough that lots of smart people can build smart things for their smart devices without much consideration for performance (in most cases). Web traffic still represents—and always will represent—a significant portion of internet traffic and therefore the expectation that modern web browsers just work, and work well, is a concern users don’t know they have until something goes wrong. Part of a good user experience includes the bits you don’t notice. It’s fluid and natural and just makes sense. So it’s up to us as developers to provide that solid web experience with the tools we have at our disposal. We can employ techniques such as lazy loading, pagination, responsive scaling, pre fetching, skeleton loading, I could go on. However when we consider the amount of information that we might want to display at any given time, the modern browser still has its limitations.

With the expectation of a smooth experience, the worst possible outcome is a user ending their relationship with a useful tool because of performance issues. So where our usual tool kit doesn’t help us; what can we do?

Recently we encountered an issue during the development of our Java optimisation tool, Gin,  after enabling the profiling of Java Virtual Threads. This caused the number of visible nodes—represented as a browser DOM element—on a typical page to balloon from ~20 nodes to a whopping 14,000+. Naturally, the browser was capable of rendering these 14,000 nodes but not without a cost. The INP (Interaction to Next Paint), a measure of how long it takes the browser to repaint after an interaction, jumped dramatically; from around 200 milliseconds to up to 25 whole seconds. This is completely unacceptable for a user experience. Because nothing is actually loading in this case we can’t just hide the process with a loading spinner and have the user wait. Everything was rendered, it just wasn’t able to be painted on screen. And even after the browser had repainted, interacting again in most cases would completely kill the browser—Aw snap.

Without compromising on the fidelity of Gin’s utility and the ability to profile multiple  threads, we chose to optimise the rendering of the DOM elements. We achieved this by implementing a virtualisation library published by TanStack. It’s a smart library, maintained by smart people. It’s lightweight, requiring very little overhead and allows us to maintain the style of the tree using existing components.

The results were immediately clear. After implementing the virtualisation library and testing with live data we were comfortably rendering 104,229 nodes. With a little tweaking of the overscan—the number of elements we actually choose to render above and below the bounds of the viewport—the INP values were reduced to a reasonable 120 to 300 milliseconds and the expansion/collapsing of nodes never resulted in a browser crash. Success!

As web developers we find ourselves solving problems that leave the end user completely unimpressed. Unimpressed because they never faced any issue in the first place. With tools like Gin that are designed to enable people to make their own tools better, we get satisfaction out of knowing that the growth of the user’s application won’t degrade their experience by solving problems ahead of time, letting the end product speak for itself.

— James Taylor, Front End Developer at Cactuslab

Behind the Scenes - YourRide

How We Transformed Zoomy into YourRide

What started over a decade ago as Zoomy, a ride-sharing app, has grown into one of New Zealand’s most complex taxi platforms. When Uber and other competitors reshaped the market, the company pivoted to taxis and rebranded as YourRide. Cactuslab joined several years later to help reshape the platform and add new features supporting the transition.

Over the past eight years, Cactuslab worked with the codebase, gradually enhancing the passenger and driver apps, a backend managing dispatch, tracking, and payments, and a commercial website. The team navigated layers of legacy code from multiple developers, turning the system into a modern, cohesive platform.

The move from ride-sharing to taxis required major changes. Dispatch logic was redesigned, manual driver assignment added, vans and premium vehicles supported, and new software created for in-car POS terminals, corporate taxi passes, and automated tariff calculations for legacy rides.

Most recently, Cactuslab helped YourRide launch Total Mobility support, allowing passengers with Total Mobility cards to request council-subsidised rides with eligible drivers. The feature is now live and fully operational, making transport safer and more accessible for users with mobility needs.

This work shows how long-term, behind-the-scenes engineering can quietly transform an industry, building a complex platform feature by feature while keeping it running smoothly.

Check Out YourRide
Latest Posts

In Case You Missed It

Recent blog posts, shoutouts, talks, or recognitions.

  • Cactuslab 24th birthday at Objectspace – Amazing experience with our clients and staff in the immersive art studio of Objectspace.
  • yukisato.co.nz  Designed by Marx, built by Cactuslab – Our new lead designer Gareth Lockett performed his first build on our inhouse CMS Supermodel.
  • Letterboxd launches Videostore – A rental store built for film discovery, curated for the Letterboxd community.

Partnerships

Got a project in mind? We engage with projects that start as low as $10k+.

Get in touch!  joshua@cactuslab.com

Let’s Talk!