Why we’re writing a Django book specifically for portfolio projects and MVPs
Tags: django, showdev, djangorestframework, python
Published: 2019-06-13 17:31:57

---
title: Why we’re writing a Django book specifically for portfolio projects and MVPs
published: true
description: The hardest part of building web applications is rarely using the framework itself or even the “business logic”. It’s cleanly integrating your app into all of the other tools involved in a modern web app. So we’re writing a book specifically about building and deploying a production-ready Django API that you can be proud of.
tags: django, showdev, django-rest-framework, python
cover_image: https://source.unsplash.com/LN_gdbQtzvk/1600x900
---

TLDR: The hardest part of building web applications is rarely using the framework itself or even the “business logic”. It’s cleanly integrating your app into all of the other tools involved in a modern web app. So we’re writing a book specifically about building and deploying a production-ready Django API that you can be proud of.

I remember feeling stupid while I was first learning about web programming. I picked Django because I liked Python, and while there were great resources online, it never felt like I knew *quite* enough to put a project I was proud of onto Github or Hacker News.

Most documentation and tutorials only covered building something that you could run safely on your own computer, or they were *way* too technical for me. Every time I tried to integrate with a new tool or service there were new headaches and problems that slowed my progress. It took years for me to feel confident showing off the apps I built.

I didn’t want to build toy applications. I wanted to build production apps that were safe and scalable enough to release onto the open web.

When my co-author Bryan and I started planning [Fullstack Django APIs](https://www.fullstack.io/fullstack-django), we asked what problems existed within the Django ecosystem in general, and Django Rest Framework in particular. We could write a huge reference book on Django, but that seemed like a waste of time. Django already has expansive, mature documentation online. Books like Two Scoops of Django and Test Driven Development with Django are gold standards in their respective domains. We wanted to create something that complemented the existing materials, rather than trying to compete with it.

So we outlined areas of confusion. They included:

* How do I deploy a live production application?
* Where do I put my business logic?
* How do I store configs and credentials in a secure manner?
* How do I handle authentication?
* What type of DB should I use and how do I connect to it on my own computer vs a live, production database.
* How do all of the pieces of Django fit together?
* What are task queues and when should I use them?
* To cache or not to cache?

It eventually became clear that those areas of confusion weren’t unique to just us. Lots of new Djangonauts get excited about the possibility of making and deploying cool projects, but are bogged down by the difficulty of integrating their APIs into a broader development environment. 

So that’s who we’re writing a book to help. Our goal is for junior and intermediate level developers to work through Fullstack Django APIs and leave with the confidence and skills needed to make a production-ready API. Something that they can show to recruiters or clients, and feel comfortable using to build live web services that store data from real users.

If we’re successful, this is something that every tech company using Django will give to new hires so they’re ready to write production code. We know that’s an ambitious goal, but we’re excited about the progress that we’ve already made in this area. I’ll get more specific with the details as we near the release date, but until then, I’m excited to share more about the process here on Dev.to.

If you’re interested in the project and would like access to the first chapter once it’s released, you can sign up [here](https://www.fullstack.io/fullstack-django) to stay in the loop.