JustDjango 2020 in review
2020 may not have been all sunshine and rainbows thanks to COVID. But in many ways, it has been great. For JustDjango, this has been a year full of growth and validation, proving to me that there is a huge group of people that want to learn and use Django. In this post, I'll cover the highlights of this year for JustDjango.
Going full-time on JustDjango
In March of this year, I quit my job and decided to work full-time on JustDjango. At the time the JustDjango site was making $900/mo in MRR.
Quitting my job also synchronized with South Africa going into lockdown along with the rest of the world. Being cooped up in my apartment gave me an opportunity to work twice as hard and focus intensely on taking JustDjango to the next level.
Tracking decisions
One of the best things I did was recording the date of every important decision I made in the last 9 months. From small things like fixing wording and copywriting to implementing new features and adding new courses. This has helped me to reflect on each decision.
Impactful decisions
Throughout the year there were some decisions that had a significant impact on the MRR and number of users on the site. In some cases, the impact could be seen immediately.
Vimeo
One of the first things I did was move the video hosting from AWS to Vimeo. The Vimeo pro plan offers a substantial amount of storage and a lot of functionality for managing the permissions of each video. The video analytics also provides a lot of insight as to what videos are being watched. This helps you identify what courses are the most-watched.
Profitwell
Measuring financial growth will always be one of the most important tasks. Profitwell's dashboard provides a ton of analysis that would otherwise be a mystery. Once this was in place I had a tool that would help me control churn and other metrics.
Adding a new "roadmap"
Originally there was only one roadmap of courses available. Adding a second roadmap for a new price was without a doubt the biggest decision of the year. This new product was targeted at a different group of people and was slightly more expensive than the basic roadmap. Introducing a new pricing tier increased MRR significantly and is now by far the most purchased pricing tier on the site.
Site Optimisations
In my breakdown of the JustDjango architecture, I explain that the site is deployed across two domains. The learn.justdjango.com project is built with React and uses TailwindCSS. In any web app, but particularly JavaScript-heavy applications, one of the priorities in more established projects should be optimizing the bundle size of the static files like JS, CSS, and images.
I spent a fair amount of time reducing the CSS bundle size and JS bundle size. This helped speed up the loading time of the site, which we all know is an important factor for improving conversions.
I also improved the database queries on the backend. I was able to make most of the API calls 20% faster. Every little improvement adds up.
Lastly, a more technical change was implementing Typescript into the frontend codebase. Besides the typical advantages of TypeScript, this change has made the coding experience a lot better, and also made me a lot more confident in preventing errors from occurring.
Started a podcast
This was something quite spontaneous. I hadn't planned to start a podcast and when I had the idea I just researched for some guests that fitted in with the theme I was going for. I did 5 episodes as a test run to see how much I enjoyed it and whether I could do an episode on a weekly or bi-weekly schedule. While it is challenging and time-consuming, I personally learned a lot in the conversations I had and I'd like to continue with the podcast in 2021.
Started a blog
Along with the podcast, I felt a blog would be a good addition to the resources provided on the JustDjango site. Blogging has surprisingly been one of the more enjoyable activities. It's also opened up a new world of study: SEO. The JustDjango YouTube channel brings a lot of people to the site. I'm hoping that SEO will become another acquisition channel.
Launched the JustDjango Tutorial Hub
This was the first product I'd launched. Not only for JustDjango but personally as well. I think it went well. It acted a little bit as an experiment for how I can structure individual products in 2021. I learned a lot in making this product. I got to sharpen my Django skills by researching other creators' work. I also got to build a landing page and work on my sales skills as well. It was also nice to work on something different for a while. Overall I'm very happy with how this launch went.
Mistakes and lessons
There were two "features" that were added to the JustDjango product that were not as beneficial as I'd hoped them to be. The first was the addition of quizzes and the second was the addition of a Slack channel.
Quizzes
The idea with the quizzes was that you could complete a quiz with a bunch of questions related to Django. The idea makes sense on paper, and I believe it's something that a lot of companies are trying to get right. Udemy is an example.
Here's the problem though; making questions is actually quite hard. It's like creating a test for kids in school. It's very difficult to create these tests when you approach it from the perspective of an expert. You have to think like a beginner.
I made the questions multiple choice. But I strongly believe that questions should be more flexible and allow the student to show their answer in a more involved manner than just selecting one of the choices.
Eventually, I decided it wasn't a feature that was worth keeping. I removed the feature about two months ago and it hasn't had any effect on MRR, so clearly it wasn't a deal-breaker.
Slack
I added a Slack group in May. This was purely thanks to a conversation I had with @maximemanseau. I was convinced that adding a Slack group would provide a sense of community for the members of the JustDjango site. While it has provided a lot of value, it comes with a series of challenges. The most important being that you have to put a consistent effort into the community. I try to add new ideas and keep people engaged in the group but it has proven to be very challenging.
Originally I would add every pro member to the Slack group automatically. Most people would not accept the invite. And of course, only a small percentage of people actually join and want to engage in the community. Only recently have I stopped automatically adding people. Instead, I now have a page where pro members can request to join. It asks them for some information about themselves and what they expect from the Slack group.
As expected, this significantly reduced the number of people joining the community. But those people joining are much more likely to engage and stay active because they actually wanted to join the community.
I haven't removed the Slack group and don't plan to. I think there definitely is a value-add here. I just need to continue tweaking with the idea to find out what works best.
Conclusion
This year has been great. I'm very happy with the progress it's made. It's also been good to reflect on this year and to appreciate how far JustDjango has come. That being said I'm also excited for 2021. The short term plan is to continue to provide courses and learning resources for Django. But I also have a lot of new ideas that I plan to explore and release in the following year.