JavaScript30
A course by Wes Bos https://JavaScript30.com
Some examples
Press a key on your keyboard and see what happens: https://ginius.me/js30/01-keysounds/
Crazy clock ticking backwards: https://ginius.me/js30/02-crazyclock/
Add styles to photos (update CSS vars with JS): https://ginius.me/js30/03-cssvars/
Flex panels: https://ginius.me/js30/05-flexpanels/
Get TLD (top-level domain) of any country really quick: https://ginius.me/js30/06-typeahead/
Psychedelic Canvas: https://ginius.me/js30/08-canvas/
Check multiple items holding shift key: https://ginius.me/js30/10-multicheck/
LocalStorage checklist: https://ginius.me/js30/15-localstorage/
Webcam fun (needs access to webcam): https://ginius.me/js30/19-webcam/
Speech recognition (needs access to mic): https://ginius.me/js30/20-speech-recognition/
Compass and speedometer: https://ginius.me/js30/21-geolocation/
Text-to-speech: https://ginius.me/js30/23-text2speech/
Stripe-like dropdowns: https://ginius.me/js30/26-dropdowns/
Horizontal drag and scroll: https://ginius.me/js30/27-draghorizontally/
Timer (with a gong on finish): https://ginius.me/js30/29-timer/
Whack-a-mole game: https://ginius.me/js30/30-game/