Alpha Early Access 1 is a GO
It's time to have a small party.Alpha Early Access 1 is a GO
I've worked hard on nearly everything I could think of to make the site for Learn JavaScript the Hard Way ready for general access. Last week I sent out emails to everyone who bought the course years ago and the site didn't even flinch. With that test out of the way I want to move forward with letting more people in and seeing how the software I've built holds up. With that in mind I've opened the course registration for everyone who wants in on the Alpha Early Access release at the significantly discounted price for early adopters. If you want to get the full version of the course at a lower price--and don't mind watching me make the sausage--then get it now.
What is Early Access
Early Access is a concept I've borrowed from indie video game developers. Rather than work for a decade on a game and release it once, indie developers will get a game to a useable decent state and then release it at a lower price for people to try and give feedback on. Gamers get access to fun new games at a lower price, and they also get to shape the direction of the game with their suggestions and comments. The indie game developers then get an influx of cash to continue the development based on that feedback (or, just based on griefing people who get good at it on Youtube (I'm looking at you Valheim)). It's similar to a pre-release, but I setup more interactive ways for you to suggest changes and I base future development on the suggestions that work with more frequent announcements of what's going on.
What's In the ALPHA
- 4 Modules covering First Steps, HTML, CSS, and JavaScript basics. All modules are fully written and almost every exercise includes a video.
- The total recorded video time is over 15 hours of video demonstrating the exercises.
- HTML and CSS have 10 exercises each, and JavaScript has 31 exercises covering almost every relevant JavaScript ES6 feature you'll use.
- A nearly complete learnable web development kit that was used to build this actual site. I took great care to make sure that the code I wrote was practical, actually useable (since I actually use it), but small and clear enough that students can understand all of the code.
- The components I've created cover a vast array of full stack web development topics and you'll get the full code to them plus the code used on all the sites I create for the course. So far I have:
- Simple CSS components -- Simple classless CSS design to learn the fundamentals of CSS and HTML.
- Basic Web Tools -- I've made a database admin tool, email tester, icon finder, component docs/demo, and starter templates.
- Static and SPA sites -- Rendering both classic static style sites and the modern SPA web UIs.
- Svelte -- Svelte is an easy way to learn reactive UI systems like React, Vue, htmx, and liveview.
- Express -- Once you know Express you can use most any other web API.
- JSON APIs -- You learn to both make them and consume them, as with our Discord, Paypal, and BTCPayServer integrations.
- Databases and ORMs -- I even wrote my own tiny little ORM so you can learn how to make one yourself.
- HLS Video Streaming -- The livestream party is going to use the HLS video handling component I wrote.
- Automated Testing -- Learning to use Playwright to control a browser for automated testing as well as other testing topics.
- WebTorrent Video -- The site uses webtorrent to get videos to you fast.
- Secure password authentication -- Using passport.js and bcrypt to store passwords safely.
- Sending Email -- I've learned so much about sending your own email it could be its own course.
- Payments -- Including bitcoin and other services like Paypal, Stripe, Adyen, or others in the future (Paypal currently).
- All Documented -- All of the components are documented with example code, demos, and automated tests.
- Discord integration so people can come chat. This may change depending on if Discord becomes difficult to manage, but there's already a nice handful of students who have been working through the course and feeding me questions and problems there.
- Fully automated deployments, which actually took a long time. I mostly did this so I can start to learn the modern DevOps tools people use and then teach it in the forthcoming Learn Unix the Hard Way course.
There's a lot already there, and much more to come this year.
Current Bugs
The course follows the development of the website and that means the website is also not finished. Currently I know of these bugs that might annoy people:
- Autoplay on the videos is turned off, but still browser insists on playing them. This is ironic because browsers are strict autoplay in the first place, and one reason I had autoplay on is because I couldn't get it to work reliable. Now that I'm trying to turn autoplay off, browsers keeps playing them.
- As usual with SPAs, there's one place the back button doesn't work and that's when you use next/prev on a lesson. This is because svelte-spa-router doesn't consider all changes to a URL as a reason to transition a page. I have to probably submit a patch to the project but it looks like the author isn't interested in fixing this so I'll most probably have to fork it instead.
- The videos load quickly and play immediately now, but you might see the little loading bar at the bottom reach then end and then never complete. I believe this is a bug in how WebTorrent manages the sockets when it's accessing a web seed but I'm not exactly sure. Just ignore it as the video plays anyway.
There's probably way more bugs than that but those are the ones that students so far have found which I can't fix until after the launch.
The BETA Early Access Plan
The BETA plan involves 2 big goals:
- Document everything I've made that the students will use to build their websites. This is about 30% done and most likely will be ongoing until the end of the course as things change. The big goal for BETA is to establish a consistent location for these docs so that people can use them while they work.
- Section 2 of the course which cover intermediate topics that solidify the HTML, CSS, and JavaScript modules so far. I believe we'll need 3 more modules:
- JavaScript Level 2 -- 10 practice projects that start off doing simple things like reading a CSV file and progress to creating a classic simple blog.
- Website Copy Projects -- 10 progressively more difficult websites/components to visually copy and hone your skills at HTML and CSS.
- Svelte Web UIs -- 10 exercises teaching JavaScript in the Browser, Svelte, modern SPAs, and creating/copying web user interfaces with Svelte.
A key change I'm going to make for the course is that people don't have to do the modules in order. I've found that some people really just want to jump to JavaScript but they think they have to slog through HTML and CSS first. I'm now going to tell people that they can mostly bounce around between modules, and I'll write advice on previous material they'll need on specific exercises if it's required. There really isn't a good reason why you need HTML before you learn about for-loops in JavaScript, so might as well let people follow their interest and encourage exploration.
The Livestream Party
I have no idea how this release is going to go, so let's have a party and watch it happen. Maybe it'll be boring and go smoothly. Maybe my server will crash into the earth and I'll have to scramble to fix things. If you're reading this blog post then you can head over to the Livestream page to watch the progress of the release, and maybe I'll do something fun like play a video game while I chat with people in Discord and help them. This live stream is open to anyone, so if you're curious just come hang out and have some fun.