Unopinionated static site generator