Two points on client-side JS have been a constant for me for many years:
- Noticed excessive JavaScript contributes to poor web performance
- Things cause JS to break, which breaks other interactivity, often I end up using incognito
During lockdown, I struggled ordering groceries because 20 seconds of JavaScript execution on the main thread made my "delivery slot" expire!
Similar to heydonworks.com stating "Please disable JavaScript to view this site", I'm glad Hotwire is encouraging folks to think about things a little differently.
Hey this is really helpful thanks, very interesting to know you would've built your own platform.
Fortunately I already have my own platform for my first course, so maybe reusing that would be best rather than assuming the grass is greener, with things like gumroad/teachable.
Sometimes I think it's fascinating the rabbit holes we'll go down, when ultimately, the user just doesn't care.
TypeScript vs. plain JS
Logic-less templates like Mustache vs. Handlebars
Vue vs. React
Using async/await, and adding the relevant infrastructure to support that (transpiler)
Clean code practices in general
Unit tests, end to end tests
CSS BEM vs. tailwind
You can make indirect connections to imply the user does care, e.g. E2E tests catch a bug which meant the user didn't see it, but generally, these things are meaningless to them.
For my first course, I put time into those things - time taken away from making content. The more I think about it for my new course, the more I wonder should I just sell on a platform which already handles all of that, like gumroad.
Where's the line though? When is gumroad or squarespace not the answer?
For the data maps which the Medium article displays, I used: https://github.com/ericfischer/datamaps initially. If there's interest, I can try to get my scripts onto GitHub. They:
a) Include Node.js scripts for converting raw big data (the raw Shazam stream) into something usable for visualisations.
b) Contain Node.js scripts & utilities for automating the creation of maps focussed on particular geographic locations.
c) Contain client side JavaScript for displaying all the individual map tiles onto an interactive map & Google Maps API code to query for places of interest (like a club, shopping center) which may explain heavy usage of Shazam in a particular location.
I've been planning to do more write-ups from past hackdays, such as building a functional Shazam experience in client side JavaScript and other visualisations. For example one time, I repurposed a WebGL globe to plot music recognitions over it. I don't have access to the Shazam tag stream anymore, but you can get a feel for how this looked as I've applied near real-time Wikipedia edits on the globe instead: https://umaar.com/globe/
Video here: https://www.youtube.com/watch?v=RIjz9w77h1Q