Instead of writing a new app from scratch, this guide could have been a guide on specifying the SoundCloud client app in a meta-description language. Then using that meta-description language to generate all of the React.js and Redux code that is needed.
Unfortunately, this guide is plain programming with no metaprogramming at all.
At this point in the game, a SoundCloud client has to have basic functionality and make certain API requests. Instead of writing at a low-level in particular web frameworks or libraries, it should be possible to generate the basics of a client from a description. Something like an XML interface file.
I hope to be publishing a metaprogramming description language of my own soon, so this guide is very timely and shows why metaprogramming is needed.
Update: 17 November 2018
I ended up not publishing the metaprogramming language description but I will explain what it was here. It was a language for building form validation.
Forms have input fields and each field and set of fields can be validated in a certain way. When there is an error on the field or the form, an error message should be displayed. When every field is valid, the form should be submitted or undergo some further processing.
One example of a form could look like this:
login_form: fields: - username: text required - password: required on_submit: '/login' signup_form: fields: - username: text required - password: required - confirm_password: same as password on_submit: '/signup'