Monday Monday. Monday. Open wide dev fans. Get ready to stuff your face with JavaScript CSS.
No module. Fire, Q-TAP. Get workload. Breakdancing.
Soft skill. Web development. The H.C.S. The Corrasius.
The T.C.S. Web development treats. Coming in hot. Here is Wes.
Barracuda. Boss. And Scott El-Taro-Luko. Tollitsky.
Welcome to syntax on this Monday. Hasty treat. We're going to be talking about how we both launch our courses. This is going to be giving you a little bit of a view into behind the scenes of what Wes and I both do when we launch a course.
Now it's fun because our platforms are very different. And how we release is inevitably going to be very different. So I'm excited to hear what Wes has to say. Yeah, vice versa.
Yeah. We'll talk a little bit about those processes. My name is Scott Tollitsky. I'm a developer from Tender, Colorado.
And with me, as always, is Wes Boss. Hey, everybody. Hey, Wes. This episode is sponsored by Sentry.
Now, Sentry is a critical part of my platform when I'm launching anything because it lets me know if there are mistakes in my code. Let's me know if there's a problem because what Sentry does is it is an error and exception handling tool and it can notify you of different bugs that can categorize them, catalog them, and allow you to attach them to various releases, commits, and so on. You'll be able to then see within your source maps exactly where these issues happen. Now, Sentry is one of those platforms that works with just about everything you could possibly use.
So if you are concerned, well, maybe I'm using this and this and this. Maybe it's not going to work. No, it's going to work. Let me tell you, Sentry just as connectors or even just ways to use with just about any language.
And you'll want to give Sentry a try over at sentry.io. Use the coupon code TastyTreat. All of our case, all one word. And you're going to get two whole months for free to test out Sentry.
Go ahead and have people use your site, have them trigger a little bit of a bug and watch into light as you have that bug catalog so that you can go ahead and fix it and make sure that that bug is fixed. So check it out, Sentry.io coupon code TastyTreat. Okay, so let's get into it here. We're going to talk about our course launches.
The West recently launched a course. What's your course called, Wes? Beginner-JavaScript.com. Thanks for the opportunity to get a little silly.
Got a little silly out of the way. Got to get it in here. Mine is leveluptutorials.com. And so the difference between Wes and I is I release a new course every month.
My subscription platform is mostly like a, you can think of it as like a magazine subscription. It's like the way I like to describe it, right? You subscribe to the magazine and you get a new tutorial series every month. And Wes, your courses are a bit longer and a bit more involved and you release them whenever you are complete with them.
So we have very different strategies and very different types of content in general despite some of the topics being kind of similar. And so my pre-release, I recently modified my platform. So I have a whole custom code platform which is great because it allows me to build in the tools and things that I need when I need them. For instance, we had a lot of people saying, hey, I never know what the next course is.
I don't have Twitter. I don't subscribe to your email list. How do I know what the next coming course is? So we started getting a little bit better about this by having a new pre-release.
So I have a tool that I call the seriesizer. I give all my tools really fun names. So in the seriesizer, there's a button that says new series. And that's the first step.
I click the button and it gives me a course creator where it has the thumbnail images that I create. It has a little color picker like you'd see in Figma or something. And it has all of the options that I need. I can upload an SVG background for it.
I have drag it drop. I start to select things like the logo, the color. And so typically I'll design the thumbnail for this course. I'll drop it in here as an SVG.
I'll set the status to pre-release and then set the title and then just click save. And what that does is it puts the tutorial series, the upcoming one in the listing with the rest of them. But it doesn't make it a link. So you can't browse to it and it adds a little coming soon badge.
That's cool. So that way you can see it in the listing with all the other ones. This is a problem that we've had and so this is a solution that we have. That's a largely the cool part about owning your own platform like this is that you can make those changes to fit the needs of the audience, right?
So the seriesizer is the same, basically the same form as it is when you edit it. I also have the series listing, which is a big long list of all of my series with their SKUs, their prices, their logos, whether or not they're active, whether or not they're pro. And that's how I reorder them. I just drag and move them around.
And that's automatically responsive to the front end as well. So I put the course into pre-release. And I save it all up and then just sit there for a little bit. I do some marketing, whatever.
And then the course is complete, right? So I record all my courses. I send them to my video editor, Tim Smith, who does a great job editing them for me. He gets them back to me a day or two before the actual release date.
Since I'm on a magazine schedule, it's really easy to say, okay, I need these by two days or a day before the end of the month, every single month, right? We're always on the same schedule. So I really all cut it to the last second, but I do so on purpose. Since I release this content every month, I want to make sure that everything's sort of the latest, right?
So I'll record the series in the first 15 days of the month. My editor will edit it over the next 15 days and usually I have like one day or less and to push this thing live. So to push it live, I've been given the content. What I'll do is I'll upload it to YouTube.
I'll wait for it to completely process. And then I'll use YouTube DL to download it from YouTube. Why? Because YouTube's compression is really good for a 1080p stuff.
And if I'm going to be giving away downloadable versions of this, to be honest, it's actually faster for me to upload it to YouTube, have them do all the compression and then for me to download it. It's faster to do that than it is for me to try to compress it to the same standards via DaVinci or whatever I'm using at the time. Now we have freeze up my computer processing to do something else. I'll let Google server handle that one.
And then so I compress it all into zips. I upload them to both S3 and B2. And then I basically input all the data, whether I'm not with our deep keys or whatever from S3 into my seriesizer to update it. And then here's the fun part.
I have to get all of the individual videos into my site, right? Because right now they just live on YouTube. So what I do inside of the seriesizer, there's just like a little text input box and I paste in the ID of the playlist into YouTube and I click import from YouTube. And then just like magic, all of the video tutorials pop in there or they update if they already exist.
I also have an import from Vimeo button. I can import from any platform and it just brings them all in. It saves them into my site. And that gets basically the whole site sort of locked and loaded ready to go.
Now at this point, if you were the proper role, like if you're an admin, you could see and edit these. So that way we can go ahead and edit the titles or descriptions as we need. We can make sure that the course everything looks fine. And then when it's ready to go, basically all I need to do is change it from prerelease to active in a select list.
Now at that point, I do want to make sure I have the price and the files and everything I could possibly want with this project or this particular series ready to go. But it's really just a flip off a switch from prerelease to active, click submit and all of a sudden it turns the series card into a link and it is available for anyone with a pro subscription to watch or anyone without a pro subscription to purchase. So they're all the same thing whether it's a product or whatever. It's all the same piece of content and how I choose to open up that flag is whether or not you have purchased a specific one or you are a subscriber.
So that's really it for me. I've really refined the process for releasing a course for me used to take a day or two. And now it takes a couple of hours, right? It takes almost like the time I need to do is like wait for the processing for YouTube or whatever.
But the actual things that I need to do are just about every single piece is ready to go ahead of time so that all I need to do is upload things where they need to go, click go and everything is ready to go. So this is my process. I've refined it over the course of many years here and hopefully we'll continue to continue to refine it as we go. Beauty, I think I want to try the or trick of using Vimeo or YouTube to compress it for you because honestly one of the longest things that I have to do is to run it through hand break for the downloadable version.
I'll just talk about that. Let me just say, so I'm going to break my night into pre-launch launch day and post-launch. Oh, by the time I'm done building a course, it comes time to to experts videos and compress them and everything. So usually the first thing that I'll do is I'll start to build the website and it usually isn't from scratch.
It usually is me over six months or so just kind of thrown around ideas for branding and colors and design and things like that. And I'll just have a whole bunch of I should post on Twitter some of the revisions of the website. And then once I have a good enough idea of the look and feel of what buttons what text is going to look like, I'll just jump into the code and start building building it out from there. And the biggest part about that is trying to take everything that's in my head about who the course is for, what they're going to learn, why it's a good course, all of these things, which is essentially just copywriting and trying to get it out of my head and into text, but not just like we've all seen these websites where it's just like paragraphs of text.
No one's going to read that, right? So trying to just get across all that information in a visually appealing way. So that's a big part of it. This time when I launched my beginner JavaScript course, it took me two days to build the website, which was much quicker than in the past.
But I definitely leaned on a lot of the existing CSS and media queries and things like that from my past courses. Then it comes time to I edit all of my videos as I record them because I'm in the headspace then and also I hate editing videos. So just editing them immediately after I record them, taking 10 and 15 minutes to edit it really quickly. So once I'm done all that, I'll put all the bumpers on them.
So I'll usually just put a front bumper that's like two or three seconds, anything more than that people get real mad at me about it. So it's like a quick little bumper on the front of the video to let you know that you're in a new one to get excited about the video. And then I export them all, which takes four freaking ever. Maybe one now or did you do your exporting on your new computer?
Yeah, I did it. I moved them all to my new computer and exported them because I had 28 and a half hours of video exported at 4K. So at this time I didn't export at 1080p. I went full 4K and they look freaking awesome.
By the way, if you go on Vimeo and just let Vimeo figure out the quality for you, it looks so good. I'm so happy with them. But it's just like a one hour video, some of the videos are one hour because they're big things that we're building. Those took like 30 minutes, 45 minutes to export because I export them at such a high bit rate.
I hate it when the text is pixelated. I want the text to be as crisp as possible. So I export it at a very high bit rate at 4K. It takes forever.
I think the 28 hours took me something like 20 hours to export on my poor little MacBook. It was the entire time. And then once those are exported, I'm sure there's, I also think that because I use ScreenFlow, I don't think that that's the best video. I think if I use a proper video editing, that would be faster.
But also I don't care that much. I'm working on the website at the same time. I've been considering getting ScreenFlow again. I used to use it.
And one of the things I didn't like about it was it was really slow to populate the audio waveforms and things. It still is. It got a lot better in the latest release because what happens is they try to paint the video forms first. And then they paint the waveforms.
I don't care about the video. It's always just my code so that now they have this new thing where it will render out like a 720 version of it just for you. And then when you go to export it, it'll be like a proxy. Yeah, it's a proxy.
It's exactly what it's called. It's a bit faster, but still, I don't know. It's still kind of slow. I've been thinking about just because as good of a job as Tim has done for my video editing, he's not going to be available next year.
So I need an editor and I was thinking about maybe just streamlining the process and moving it all in. So right now I have to record it in a screen flick and I have to run an export compression from ScreenFlow which is stupid that I have to do that. And then I have to then import everything. It would be nice to maybe just centralize it all.
And I'm really not doing intense multi-cam editing or something. So I don't know. Yeah, I go back and forth. ScreenFlow does everything I need.
I like it a lot. Like I complain about it only because I want it to get better. I think I would like the simplicity. I use ScreenFlow for like two years primarily when I first started.
Oh yeah. You're good. You should try it out. It's not the best thing but like I think it's the best thing at least for me.
I don't want to get into anything else. It's nice and quick to edit the videos which I like. So anyways, once I have that, once I've exported all the videos, I have them all in super high quality, then comes uploading to Vimeo. So I have 97 gigs of video for the course as high res and then that gets compressed down to six and a half gigs.
So at the same time I will or on a different computer I will upload them all to Vimeo and then I will also run them all through hand break which compresses them down to 1080p and does like some sane settings on them. So it's like you can download them for a plane ride or something like that. So I run that through hand break and then I compress them into a number of zip files, usually two or three zip files depending on how big the files are. So people can download them.
I'm looking at automating that right now because what inevitably happens is that I have six gigs of zip files, it's two or three files and then I have like a, oh, I left like a one little false start in a video. So I have to edit that video, export it, compress it, upload it to Vimeo, remake my zip files and then upload it. And I have the fastest internet upload I can get at my house which is like downtown, half a million people in my city. Like I don't live on a farm here is 10 megabits up and it's so slow.
It kills me. I get a thousand. Yeah, like that blows my mind. I could do so much more.
I could release my courses so much faster if it wasn't for that because it takes a couple days to export and upload these all of these videos at once. So once that's all up, I've got my zips. I put them on the backblaze B2. I'm looking at trying to figure out how I can streamline the compression because there is a hand break CLI and I'm looking at how I can automatically compress them with streams.
We will have a video of me explaining what streams and buffers are again in the future. And then once that's done, I go ahead and create all the graphics that are needed. So each package that you buy has a graphic. You always have to have like a Facebook share and Twitter share graphics, five icons for each one.
There's all kinds of these little graphics that need to be made for each one. So create all of those. Then it comes to launch day. So once I have it all online and we have a video on each of our course platforms you can go listen to.
But essentially I have I connected the Vimeo API and pull down a list of all of my videos and I go and add the module information to each of those videos as to usually my courses are broken up into different modules. Like this last one I think has 15 different modules, things like the DOM, events, a sync await flow control, things like that. And that all gets pulled into the website, it gets pulled into the video player to tell you where you're at. And then when it comes time to actually launch the thing, usually I'll just push the website live and don't say a thing.
And there's enough people that are sort of chomping out the bit to get to it that they are refreshing at every half an hour or something like that. I believe this time it took two minutes before somebody bought it after I pushed it like nice. So I just be quiet for a couple hours or not a couple hours. So and just make sure that nothing goes awry.
I try to get both people into beta test the videos and to beta test the website. But this time I was just under way too much of a time crunch because of Black Friday. Like I had to get this thing launched by Black Friday. So I had no choice.
I couldn't do it, which is okay. There's still like things coming in out here and there that are broken that I have to fix. But I'm quiet that about an hour later. I'll tweet it out.
And then that spikes the number of people on the website, things like that. And then I'll message my Slack room, which has quite a few people in it. And that will give me another spike of people on it and I'll get lots of good feedback. Usually people are sending me Twitter DMs, hey, why is this broken or whatever, things like that.
I probably should have been vetted on proper QA process, but we'll do it live. I did it at this time. There's always little things like that that pop up. Of course, I'm watching my like century something like that to see any errors that spike once people are on it.
There's often stuff like that that happens. And then finally once I'm like confident a bunch of people, a couple hundred people have bought it. It's looking good. Then I send it to my email list.
And that's the big go-huna that then I get worried about my email, my server crashing, which thankfully hasn't happened in the last couple of launches. I've got that sorted. But then I send it to my email list and I get lots of people going on that. So that's my launch day.
And then post launch. So usually I'm almost a week post launch right now. And my days look like I keep a close eye on the Slack room for little things that pop up that are confusing. One silly little thing.
But in one of the videos I said VS code already gives you the curly brackets for your settings object. And a lot of people didn't have any settings. So they didn't have curly brackets. And that's such a silly thing.
But when people are new to programming, they don't know to put the curly brackets in there. So I have to go back and edit that video and say, if you don't see curly brackets, make sure you put a set in there first and then paste this thing on in there. I do a bunch of small little edits. So inevitably I'll forget to edit out a 30 second long pause of me going, why is it this working?
Maybe screaming. Yeah. So I'll edit those out, which that causes the whole trigger of me having to export it, upload it to video, compress it, rezip it, re upload that whole thing, which is why I'm looking into streamlining that right now because it's a bit of a pain. And then I'll just send a bunch of follow up email.
So I don't email a lot. But when I launch a product, like it's hammer time, like I do send hammer time. I do send, like I think for Black Friday, I sent four emails to my, which is not a lot for like old Navy, but it's a lot for me. So I send a bunch of follow up emails, which only got two F words as replies, which is amazing.
Yeah. All time, all time low. And that's it. That's my, my launch process.
I just kind of wind it down. I've got a couple more videos I need to tack on to the end yet, but then I just do it all again, start working on the next course. Sick. Sick, sick, sick, sick.
Yeah. I had one little thing I forgot about until I just now when you were talking that I wanted to mention too, something that I do that I think could be really neat for people. I use Figma as my main design application. And so if you're creating content, you know, typically we think about responsive content primarily being for the web, right?
Because that's, you know, why you have constraints or their app design or whatever. But I use Figma's constraints to do all of my thumbnail design. So I do my thumbnails that you see on the level of tutorial sites as an SVG. But what I do is I have several other modified versions of that component in Figma.
I did a little finger post when I said that. So I have a component in Figma. And when I create my thumbnail, it automatically creates an Instagram sized promo material. It automatically creates a Instagram store.
So you might. You know, and it creates a 4K one that I use for my video. It creates smaller ones that I use for the site. It creates ones with coming suit manners and whatever.
So that way I can just select all of these frames and export them all at once. It would only making the design at once. That was one thing that I was going, I don't know, a lot of my, a lot of times in my process, you're like finding something that is a pain point, right? And that you wanted to improve here and there.
So I like to refine my process in those ways to automate things. And that's just a little extra thing I like to do to use the design app in that way. That's really all I have on my course platform. Such a good idea.
Thank you. I need to do that. Oh, and the other thing we didn't talk about is the copious amount of support email that comes away. So whenever I launch something, I get hundreds.
I think I counted over this launch. I got 1400 support emails from people. And a lot of them are, some of them can be fixed by UI. Like one bad thing I did on the website is I put the starter package before the master package and people on mobile just scroll down and they say, oh, there it is.
I'll buy it. And then they go, oh, shoot. I bought the wrong one. I wanted it all.
Right? And like that's bad UX on my end. Right? Like that's easily terrible.
Yeah. Super bad. And then other things are just like it's people saying you're their life story. Like I was born in West Philadelphia, born and raised.
I did Java for most of my days. Yes. So chilling out Adobe Max and it's like in real cool. Anyways, so the people giving their entire life story and say, like, what should I do?
And you have to like sort of like parse their entire life and tell them which course to take or something like that. And I, one of the big ones for me is that there's overlap between my ES6 course and this course. And also I have a beginner JavaScript course already, which is JavaScript 30. And I have a huge thing on the website that explains what the differences are and how they work together or if you shouldn't take this one or not.
And that really helped as well. And then just like little things like oops, forgot to use the coupon code or probably 200 of those where I spelled my own name wrong in my email address. And I didn't get it, right? So like all kinds of stuff.
And I have assistant that does most of that. But the support is a lot of work. It's a lot of work. It's tough.
And then there's Twitter DMs and Instagram DMs and phone calls. And like I put my phone number on my website, which people think I'm bonkers about. But I got three phone calls. Yeah, people thought thinking that you're too crazy for that.
You must have put my phone number there. I should. You know, that's something that Courtney and I do is that whenever we're interested in receiving, I should say that she started this. Whenever we're interested in receiving updates about something, whether it's like an email thing, but we don't want it in our own inbox or phone number.
Oh man. Yeah. I put in each other's information there. So I'll be like, why did I just get a home goods email in my inbox?
And Courtney will be like, oh, that's funny. Yeah. Cool. Well, that's our launch process.
I'm not sure if it's interesting to you or not. I know a lot of people who also have courses are interested in it. And then people just, I don't know, in general, just interested. Like what is the process for launching this thing?
Because sometimes I get people being like, Hey, like, can you just give me early access? And like, it literally takes me 20 hours to export this thing. I can't just like give you type of button and say early access. Right.
Early access. Thanks for tuning in. We will catch you on Wednesday. Later.
Peace. Head on over to syntax.fm for a full archive of all of our shows. And don't forget to subscribe in your podcast player or drop a review if you like this show.