What we learned from building our own CMS using Django

By on 6 September 2022

Django – The web framework for perfectionists with deadlines – indeed!

We managed to get a simple MVP out in just 4 weeks using our JIT learning approach

In an effort to teach Julian Django, we figured we’d “eat our own dog food” and “learn by building”! As always though, the hard part is figuring out what to build!

Again, eating our own dog food, we asked ourselves: “What sucks about the admin work we do here at Pybites day-to-day?”

We realised that the tooling we used had become a little bloated, slow, had a lack of integration and was just far too tedious to use. Many tools these days suffer from “feature creep” where there’s just too much happening on screen (including flying unicorns lol), making them slower and far from minimalistic.

In the spirit of our PDM program, we figured it was time for us to build our own customised tool that worked for us and looked and felt the way we wanted it to.

We kicked off a weekly pair programming session, every Wednesday, where we’d code together for an hour. After just 4 sessions of pure coding and many back-and-forth between mentee (Julian) and coach (myself), we had a simple MVP (Minimum Viable Product) ready!

While Julian was certainly accustomed to building tools to solve problems for himself and others, this was the first time we’d built one so quickly together. What usually takes months of development time to get an app out for testing, this was done in a matter of weeks (and it was not a simple app per se!)

Furthermore, the return on investment was instantaneous. We were able to cancel our annual Asana subscription, saving us just short of $1,000 a year, which only compounds for every year we continue to use our own tool.

Here are some of the key takeaways from learning by building and by scratching our own itch:

  • As above, instant return on investment.
  • Julian learned (and actually understood!) more Django in the past 4 weeks than he had over the past 4 years.
  • Concepts that were once hazy and sometimes confusing (database modelling) became so much clearer. Why? Because it wasn’t just learning from a course or tutorial. Building real-world applications it really starts to click.
  • We have full-control over the tool. Is there a part of the interface we want fixed? Done. Is there a feature we want implemented? Done! No more waiting in support queues, submitting tickets and hoping something will be implemented within the next dev cycle (if at all).
  • Similarly, we control what integrations the tool has! As many of you know, we love recording customised videos for you, so we integrated the Bonjoro platform into the tool. One click of the button and we can kick off a recording. Nice!
  • Perfectionism is around every corner. There’s no way we could have had a working MVP in place if we’d listened to that nagging voice in the backs of our heads telling us to “fix this” or “implement that” before going live. Rather, we just took a note for future reference and shipped fast! And we’re continuing to ship quickly in small increments.

What really became apparent as we were doing this exercise is that the methodology we use in PDM is the absolute best way to learn, improve and grow your Python and developer skills.

Julian achieved exponential growth in his Django skills by building a real world tool together.

We also dedicated a podcast episode to this, check it out here.

Hopefully this inspires you to look at your own situation, and see what you can build that will stretch and advance your Python skills!


If you’re interested in building your own application and pushing yourself to get similar results as Julian (and we as a business) did, you need to check out our PDM program! You’ll see the amazing things alumni have done

And to learn more about our practical app building approach as THE way to learn developer skills faster join our next live training here.

Want a career as a Python Developer but not sure where to start?