Static site generator