Well, there are a few for me. But the most important was leveraging Groovy Console to interact with JCR-
The ability to install and leverage groovy admin console (/apps/groovyconsole) to execute tasks and query directly on JCR was a game changer. In my case, we had written a servlet to create content fragments and as the project progressed, performance was degrading due to the servlet performance.Hence, I switched to groovy script to bulk create content fragments made a huge difference, really easy to write and maintain and works perfectly.
On top of that, I use groovy frequently to query through JCR and bulk update properties of multiple nodes in a go.
You can get started here --> https://github.com/CID15/aem-groovy-console