My personal stack for web application development

  • Instead of using Django for both back and frontend, I use DRF to layout an API that ReactJs can pull data from. Easy to setup, well documented, and works seamlessly with React.

  • React replaces front end templates and url routing usually defined in a Django project; I've found it more flexible and it's the easiest way to integrate javascript into Django to replace its templates.

  • In order to speed up loading times and allow SEO, a separate node server runs along side the Django server to render React components serverside and return the rendered HTML.

  • My preferred framework for web applications running on node, used primarily to render React components on a node server.

  • Used in place of UrlConf in Django. Seamless integration with frontend React components, allowing me to isolate Django as only a backend API service.

  • My preferred web server. Updated more often than other competitors, and was the first web server I was introduced to when creating Django apps.

  • I use PostgreSQL due to its frequency of updates compared to MySQL, and based on preference. Nginx + PostgreSQL + Gunicorn is the best stack for running a Django based API.

  • Runs my Django based API through nginx.

  • Automate everything! I have fabfiles for testing, bootstrapping, deployment, and building. Easy to customize and its pure python.

  • Most popular Javascript package manager in the world - used for all dependencies and Javascript packages.

  • My preferred build tool; allows me to bundle my JSX, JS, CSS files for easy access and I can pass the bundle through my node server for server side rendering.

  • Allows anyone to work on my project with the same development environment. Using docker-compose, I can get an app running in a few minutes. Also have used it for deployment.

  • Essential tool for using docker-compose.

  • I'm not a designer -- most of my frontend work is initially setup using bootstrap components until a designer can configure it properly.

  • Easy to use Droplets on DigitalOcean allow me to take snapshots of my deployed application, and is used as my main cloud host.

  • Editor of choice -- plugins for everything, configured just the way I like it.

  • My favorite package manager for Vim, used extensively due to the amount of plugins I am using (syntax, NERDtree, etc.)