It’s great to see you exploring Nim and Kotlin for your ERP system’s GUI. Nim’s approach to memory management can indeed be quite different from what you're used to with GTK in Vala and C#.
Regarding your question about manual memory management in Nim: Nim uses a garbage collector (GC) by default, but it does offer the flexibility to manage memory manually when needed. This can sometimes be surprising if you're accustomed to languages where memory management is more abstracted away. In your case, it seems like you’re dealing with some lower-level aspects of integration, which might require a bit of manual intervention. While Nim does support GC, certain bindings or integrations might require you to handle memory management explicitly to ensure proper resource handling, especially when interfacing with libraries developed with different memory management models in mind. <https://www.impactfirst.co/id/c/software-erp>