[001] – Server Setup, DNS, and Key Decisions

There is quite a bit to catch up on since my last post so let’s get right into it!

CSS Framework

As a FrontEnd Developer, it’s hard to resign myself to using something like a CSS Framework. Initially, I intended to custom style all the things for this project, but the more I thought about it, the more I realized how much time and energy this would consume.

For this reason, I have decided that I will use a CSS framework. For now, my choice is going to be Bulma.io. I’ve known about Bulma for a while and the thing I really like about it is that it is right in the middle when it comes to CSS frameworks. Not too heavy, not too light.


Another major decision I made this past week is that I will be using create-react-app to scaffold the React frontend.

I love Webpack, and for some weird reason, I like configuring it. However, it can be time-consuming to configure and I need really focus on saving time and mental energy especially at the start of this project.

Server Setup

I admit I am a complete noob at DevOps. I know barely enough to be dangerous.

A lot of the server setup and configuration I am using comes from a great course I took over at https://jsfullstacker.com/.  I found this site by watching the awesome videos Rem Zolotykh puts out over on YouTube. Rem is a great teacher and really knows his stuff!

I’ve decided to use Digital Ocean for this project. This is my first experience using it and so far it’s been really great.

Right now, I have a staging and production environment setup. I really have no idea how this workflow will work, but I’d like to try it. Staging will be for active development and once a feature is complete, it will be pushed to prod.

Here is a quick list of things I had to do to get this setup and working:

  • Create a new droplet on Digital Ocean
  • Set the droplet up to use SSH
  • Create a non-root user
  • Install/configure NGINX
  • Create two new A records for my domain. One for @ and one for staging.
  • Setup a virtual host for handling the staging sub-domain
  • Install NodeJS.
  • Install and configure PM2 to manage a super, simple web server instance.


I set up two repos for this project as I want to keep the server/api and frontend separate.

Server/API: https://github.com/efuller/learningtracks-server

FrontEnd: https://github.com/efuller/learningtracks-client


These are something I still need to get setup. I will probably just use a Rsync to push my files to the server. Eventually, I’d like to get something a bit more elaborate setup.


Leave a Reply

Your email address will not be published. Required fields are marked *