I've been developing applications as well as other content, products, and services for a while now. Over the years I've settled in with the stack of tools and services that I like to use to build things.
I'm going to run through mostly everything I use and attempt to give my reasoning why I choose to use a certain tool or service.
When it comes to web apps I like to keep things a simple as possible. Since most of the time I'm a one man wrecking crew I don't like to get too fancy. However, I will spice things up a bit from time to time and try out a new language or framework. This is especially true if I'm recommended something from my circle of dev friends.
Ruby on Rails
I mean... is there really any other choice? 😂
All jokes aside, Ruby/Rails is the language and framework I have the most experience with from start to finish. I could probably write a Rails app in my sleep now days.
A solid 8 out of 10 times I'm going to use Rails for the front-end, back-end and everything else in-between it can handle within the framework. To be honest I'm not totally sold on single page apps or PWA's 100%. I definately see the use cases and arguments for them, but personally I try to avoid it if possible - going back to the whole simplicity thing.
If I do have to sprinkle in some SPA/PWA action my go to JS framework is Vue. I've tried React, Ember, Backbone, jQuery soup, and several others. Vue just clicked a lot easier for me than the others. I can actually "think in Vue" if that makes sense.
I also like Vue because if I'm going to work on an Electron app, I'm going to use Vue there as well. I can practice in two different contexts, which is a bonus for me personally.
This is a recent switch from Bootstrap. I like Bootstrap, I'm just burnt out on it. I like how Bulma is 100% css and is easy to pick up. That's not to say Bootstrap isn't easy to pick up, but I just like doing things in Bulma for the time being.
This is a given. I've used GitLab and Bitbucket - it just doesn't compare to everything that GitHub offers.
While I'm a big AWS advocate - it's just super expensive haha! If it's a personal project I'm heading right over to DigitalOcean to spin things up.
The barrier to entry from a pricing stand point is one of the reasons I start here. I also, like that they continue to build out their service offering. When I first started using them they didn't have things like object storage or load balancers.
If you're in the market for a VPS or a place to park your web app I definitely recommend DigitalOcean. Because, I love them so much I've signed up for their affiliate program and you can get $100 in credits over 60 days by using the link above. [Full Disclosure: I do recieve credits to my account if you decide to purchase hosting through them]
I currently only use Docker in my development environment. Docker is super easy to setup and get running in development and really makes it easy to "deploy" a development environment to another developer when I need a helping hand.
One of the other things I like about using Docker is that it's a bit faster than using vagrant/virtual box/traditional VM's. In my experience Vagrant takes a while to boot up and was pretty taxing on my machine.
Although I'm only using this in development right now, I have plans to making the jump and rolling my docker configs out into production.
Visual Studio Code
I've been using VS Code as my daily driver for over a year now and I really haven't had the itch to switch to anything else. I was a heavy Vim user before VS Code and the Vim plugin in VS Code is really good.
Vim & Tmux
Even though VS Code is my daily driver I still use Vim inside of the terminal from time to time. You can personalize vim to your heart is content and that is also another reason why I don't think I'll ever totally give it up.
When I do use Vim I like to pair it up with Tmux and keep everything in one app. I like how I can run servers in different windows/panes and also have code in a different window/pane and quickly switch between everything all without having to touch the mouse.
This was a fun post I've been wanting to do. I've seen others do it and have learned about different tools and services from them sharing so I figured I would do the same.