LonelyDNS Tech Stack
I’ve started and stopped several side projects over the years. Many of these false starts were the result of chasing shiny new programming languages and cloud-based services that promised to solve all my worldly needs.
I’m going to do something different this time: make my tech stack decisions up front and stick to them. Fortunately, I have a good idea of what technologies I want to use for LonelyDNS.
At the 10,000 foot view, LonelyDNS is basically a database-backed API with a web frontend. I’m using some technologies that I’m very familiar with, a few that I need a refresher on, and some that are brand new to me.
Let’s dig into the different parts.
An additional benefit of using PostgreSQL is several cloud providers I’m considering–specifically AWS & DigitalOcean–offer managed PostgreSQL database hosting. These can take the administrative burden off of me and allow me to focus on the app.
I’m building the initial version of the web app and API using Django because I’m most familiar and comfortable with Django/Python. This will allow me to quickly iterate through the account management and API functionality while I stumble with the frontend framework. And I expect to stumble.
The frontend will use Vue.js and Tailwind CSS. Both of these are completely new to me so there will be a learning curve. I could use templates and views within Django but a goal of this project is to force me to learn a frontend framework.
There are a few additional pieces to my tech stack that I’m using to keep my sanity during development. I’m using Docker and docker-compose to manage containers for the different parts of LonelyDNS (e.g. app, database, worker). I’m planning to use a MailHog container for testing email notifications.
Now that I’ve laid out what tech I’m planning to use, I’ll walk you through my development environment in the next post.