Add linting, watch reload, and moves client views to public (for now)