How to build online software with broad appeal