use Q for promises, let's move the package filtering to the client
factor out post_render
add client-side cdn module to mirror the server-side module