Articles

Build a Grails application with Leaflet for map integration
Putting an interactive map inside a Grails web project might sound like a luxury, but for many Australian development teams it is fast becoming table stakes.…
Stateless Auth in Grails with JSON Web Tokens
Modern web services running on Grails are increasingly called upon to serve mobile clients, single-page front ends, and partner integrations from locations as…
Custom JSON marshalling in Grails for flexible API responses
For Australian development teams shipping APIs from Sydney, Melbourne, or Brisbane offices, the way a Grails application serialises objects can shape how…
Building Grails Apps With Audit Logging Using Hibernate Envers
When a fintech team in Melbourne rebuilds their customer onboarding flow, the engineers rarely celebrate the audit logs. Yet a year later, when a dispute lands…
Using Grails with Terraform for Infrastructure as Code
Grails applications are quick to develop because convention, Groovy, and the Spring ecosystem remove much of the repetitive work. Infrastructure can be a…
Creating a Grails application with a WebSocket plugin
Real-time features have moved from being a novelty to a baseline expectation in modern web software. Whether it is a live chat overlay for a customer support…
Using Grails With Spring Batch for Bulk Data Processing
For teams running on the JVM, bulk data processing often becomes a bottleneck once nightly jobs outgrow simple cron scripts. Spring Batch has long been the de…
Custom HQL queries in Grails for effective reporting
Many Australian development teams rely on Grails to build internal dashboards and compliance reports that satisfy obligations under the Privacy Act 1988 and…
Building Transactional Service Layers in Grails Applications
In any non-trivial web application, the service layer ends up carrying the weight of business logic that needs to stay consistent regardless of how many…
Using Grails and Flyway for Versioned Database Changes
Database changes become difficult when an application moves beyond a developer laptop. A new column may be needed for a feature, an index may be required for…