n8n is also great about this. It retains the visual “easy mode” environment but lets you drop in a JavaScript node whenever you need to do something more complex
1. I want a proper IDE
2. Proper typing so the feedback cycle is faster.
3. Being able to use external packages
4. Being able to quickly test my custom node across old runs.
Their JavaScript nodes take me an absurd amount of time to get right. And I've needed to use them far more often than I would like.