It is indeed very macro driven, but it gets its speed from cowboy anyway, it’s mostly just stacked middleware of a form and some macro-based DSEL’s.
The template engine is interesting, it takes the source text template files and compiles those at compile time to generate code inline so they just become normal function calls with normal compile-time-known strings, lots of speed that way, such a thing for that for erlang would be quite nice but you couldn’t really use Elixir’s EEX without having either macro’s (so some shim elixir code) or generating elixir files (so again still running some elixir code). Would absolutely be possible to generate erlang code from the EEX format though, but you’d probably have the EE(?) format use erlang syntax instead of elixir syntax unless you don’t mind including elixir anyway, which if you do you may as well just call the elixir shims then, lol.