Sure! All good questions!!
Why daemon + client?
The split exists because WhiteNoise initialization is expensive and stateful. The daemon (wnd) does a bunch of stuff on startup.
The client (wn) is a thin JSON-over-Unix-socket wrapper. Each command connects, sends one request, reads one response (or ...