python backend (serving JSON) + JS frontend (knit with JSON)