Back in April, I decided it was high time to dive into Django. Why would a data analyst be interested in Django, you may be asking. Honestly, it was all FOMO. I have a friend who is a fan and it bothered me that I couldn’t have anything more than a surface conversation about the framework with them. Python conferences always have a few Django talks and I began to feel limited to the data science talks despite knowing this whole other world exists. Also, I initially started this newsletter as a way to encourage myself to continue to learn and write more. So I got to work making a simple app to solve a problem I have.
Once I started to get my models set up, my admin running, and even a RESTful API working, I thought why not take this a step further and get a simple front-end up and running? I yelled into the void and got a singular response! React it is.

So here are my initial thoughts on Django + React four months in.
Styled Components is a Joy
Before starting this project, I had never worked in JavaScript. It was hard to grasp at first until I understood components. Components in React are like little Lego bricks. For instance, you make one button and you can then use that button anywhere in your app. It’s incredible! styled-components is a library that let’s you write CSS in JS. This removes the need to have separate CSS and JS files. Your CSS style is right there with your Lego brick components.
Here’s a button I made called BlueButton:

And here’s the JS code:
import styled from 'styled-components';
export const BlueButton = styled.button
` cursor: pointer;
background: #a1dfe3;
font-size: 18px;
border-radius: 3px;
color: #262626;
border: none;
padding: 10px;
transition: 0.5s all ease-out;
&:hover {
background-color: #3d89cc;
color: #fff6df;
}
`;
I’m Even Keeled on Django
I don’t love Django, but I don’t hate it. Does anybody hate Django? The nicest thing about Django is that I actually don’t spend a lot of time working in it. The processes are repeatable. The Django Admin is *chef’s kiss*. Everything I’ve needed to do has been easy to figure out and straightforward. However, I don’t like how bloated my project feels. The settings.py file is a complete mess. I’m using Django Rest Framework to make my API and the docs leave a lot to be desired. But it gets the job done so no complaints here.
Switching Between Django and React Is Tough
‘Context switching’ feels like a productivity buzzword and I am anti-buzzword, but I think it describes the issue decently well. Making a button in React, fiddling with CSS, or figuring out how to center some text is mindless work. I can listen to an audiobook or watch an episode of Futurama at the same time. But the second I have to figure out how to ‘join tables’ in Django Rest Framework and figure out my way through their not-so-great documentation, it requires this burst of brain energy and focus. I mean, it’s literally going back and forth between two different languages. It can be hard to motivate myself to find that focus! Since this is a side project with only self-imposed, soft deadlines, I don’t care if I lose a few minutes here or there because of this. If you do this for your full-time job with legitimate deadlines, I can see where this would be a massive drag. I’m still trying to figure out the full-stack workflow that works for me. I’ll be sure to share once I figure it out.
I’m Still Learning What I Like and Don’t Like
Developers are incredibly opinionated. I, however, am not very opinionated yet when it comes to web app frameworks because I’m so new. I refuse to bandwagon onto opinions for the sake of it. Instead I’m learning as much as I can, trying out different ways of doing things, and reading a lot. Some things I’m currently keep track of and learning about:
Server side rendering vs client side rendering
JavaScript fans vs Anti-JavaScript crowd
Can I avoid using AWS to deploy this app?
GraphQL and REST
Once I start to form some hot takes, rest assured I will post about them here first. What are some ideas you’re exploring or learning about right now?
I’m Continually in Awe of the Open Source Community
Point blank, I could not be learning or building any of this without the open source community! It truly blows my mind. One example of this is Basecamp’s Trix editor. I love the look and feel of it. It’s simple and straightforward. I’d love to have something just like it in my app… oh wait. I can! In fact, someone made a React version of it!
Just think about all of the work that went into making this WYSIWYG editor and then converting it into something you can use in React. It would probably take me a good month to make a text editor half as nice as this. Instead, I implemented it within an hour or two one evening. That’s the power of open source. This is just scratching the surface of it too. I can’t wait until I’m able to give back to the open source community in bigger ways. Do you have any ideas of things you could open source that would benefit the community? I bet so.
Have a great weekend,
~Adrienne
Thanks again for subscribing to Adventures In Tech, a once in a blue moon newsletter where I discuss all the random things I’ve done, learned, or experienced while working in tech.