Kemal
Fast, effective, simple web framework
...Before filters are evaluated before each request within the same context as the routes. They can modify the request and response. Since Crystal does not allow using variables in macro literals, you need to generate another helper macro to make the code easier to read and write. You can add many blocks to the same verb/path combination by calling it multiple times they will be called in the same order they were defined. Browser redirects are simple as well. Simply call env.redirect in the route’s corresponding block.