I am using Nim CTFE extensively so that we can have:
* [big ints at compile-time](https://github.com/status-im/nim-stint)
* In VMs and JITs to avoid indirection during dispatch
* To generate ["generic" SIMD compute
kernels](https://github.com/numforge/laser/blob/990e59fffe50779cdef33aa0b8f22da19e1eb328/laser/primitives/matrix_multiplication/gemm_ukernel_avx_fma.nim#L10-L38)
over the CPU architecture without the need to JIT them.
To be honest, besides compile-time FFI so that you can `const Foo {.importc.}`
which is coming, I find Nim CTFE pretty much feature complete.
My only grip with it is the difficulty to work with generic types in macros.