// the find
wesbos/JavaScript30
30 Day Vanilla JS Challenge
Starter files and completed solutions for Wes Bos's JavaScript30 course — 30 small browser projects built with no frameworks, no libraries, just vanilla JS. Aimed squarely at developers who know the basics of JavaScript but haven't wrestled with the DOM, Web Audio, Canvas, or browser APIs directly. Not a reference implementation; a teaching repo that pairs with video lessons.
Each exercise is self-contained in a single HTML file with inline CSS and JS, so there's zero setup friction — open in a browser and you're running. The topic selection is genuinely good: it hits the APIs beginners skip (Web Audio, Canvas, SpeechSynthesis, Geolocation, IntersectionObserver-adjacent scroll tricks) rather than just array methods for the tenth time. The START/FINISHED file pattern makes it easy to attempt something, get stuck, and compare against a working solution without a diff tool. Community has produced translations, TypeScript ports, and framework re-implementations, which means there's supplementary material in whatever direction you want to go deeper.
Everything is inline HTML — no module system, no bundler, no npm scripts except for the two exercises that need a local server (Webcam, Speech Detection), which get a bare `package.json` with no explanation of why those two are different. The solutions are frozen to match the videos, so bugs stay bugs and the maintainer explicitly won't take PRs that fix or improve them; you're on your own if the Web Speech API behavior has changed. No tests anywhere, which is fine for a learning project but means there's no signal when a browser API change silently breaks an exercise. The CSS and JS are not separated into their own files in most exercises, making it harder to reuse or adapt the patterns you learn here in a real project structure.