Question: When I use `yesod devel` it just recompiles whole application every time I change template file or any module.

Is there any way to get faster feedback on development? I mean do not recompile, but use `ghci` or something with Yesod?

Answer: 
I've never tried it myself, but I think that what you're looking for is [wai-handler-devel](https://hackage.haskell.org/package/wai-handler-devel). Quoting the documentation:

> 
> This handler automatically reloads your source code upon any changes. It works by using the hint package, essentially embedding GHC inside the handler.
> 
> 
> 

It's also mentioned in the [yesod book](http://www.yesodweb.com/book/web-application-interface), which also has useful information:

> 
> (...) wai-handler-devel lets you develop your applications without worrying about stopping to compile.
> 
> 
> Yesod provides an alternate approach for a devel server, known as yesod devel. The difference from wai-handler-devel is that yesod devel actually compiles your code each time, respecting all settings in your cabal file. This is the recommended aproach for general Yesod development.
> 
> 
>
I'm not familiar with Yesod, but I often build web applications in GHCi by continually restarting the web server. For instance, using something like `async` we can set up a server thread which dies after 15 seconds (enough time perhaps to test a feature).

```
-- | run 'defaultMain' for a few seconds then kill it
quicky :: IO ()
quicky = Async.withAsync defaultMain $ \_ ->
  replicateM_ 3 (threadDelay (round 5e6) >> putStrLn "(tick)")

```

I've used this directly atop Warp in the past quite successfully.