My "I'm going to teach myself React" project from 2021. A hobby app built from the ground up to create a useful, interesting spotify data-display app, and
to practice using React and integrating with a public API.
While not representative of my current React skills or design philosophies, at 4 years old it serves as a good starting foundation
for my React journey today.
There are a total of 7 calls to the Spotify API after user authentication:
This app loads all 7 at once in a Promise chain and stores the data in the client's local storage.
Using React Bootstrap's breakpoints, the app will shift into the following vertical format:
Problem: Due to changes to Spotify's API rate quota, the app will not work with anyone not explicitly added to my developer
whitelist, and will return a 403 error
if an endpoint call is made after authentication.
Solution: Catching the HTTP error and displaying demo data for the user instead, along with an alert banner notifying them of the circumstance.
Bootstrap was useful for getting decent design right out the bat, especially being newer to Web Design. Once well into the project, however, bootstrap became a hindrance. Despite its flexibility it is very opinionated, and trying to achieve the precise responsive design I had in mind was difficult.
The class-naming conventions of Bootstrap were very intuitive, and carry nicely into more modern Tailwind designs. But at the same time it also made me reluctant to use custom CSS when needed. Overall, Bootstrap was useful and clean, but hampered my overall design ability.
Spotify's API is reasonably designed, well-documented, and highly referenced online in many tutorial API projects. Its limitations however were pretty restrictive, and in hindsight I should have more fully researched them before building my app around expectations to the contrary.
The major one is that without extra API access, Spotify limited most API endpoints to Spotify accounts explicitly whitelisted in my developer account.
Allowing broad API access through my app required Spotify's approval and extension of tokens.
From my research, this was a relatively recent change. Things like User Image, Top Tracks, and Top Artists were only recently restricted behind the whitelist requirements.