Basic frontend

This is really a placeholder, but should be enough to get development going.