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
The total recorded video time is over 15 hours of video demonstrating the exercises.
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.
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.
Website Copy Projects -- 10 progressively more difficult websites/components to visually copy and hone your skills at HTML and CSS.
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.