Adventures in web development