Making a Side Project, Part 6: Tech Stack
Starting with a solid foundation
It has never been a better time to build web applications, but if you’re just getting started, it has never been a more confusing time.
There are more programming languages than ever, and even once you’ve selected a language, the number of frameworks and other options grows exponentially.
Unless you’re building something very specialized, the language and framework you use choose probably won’t matter. Most languages and frameworks offer a very similar set of features, as they have evolved to solve similar problems. Even the eco-systems of plugins, modules or gems or what our favorite framework calls them now fill in the gaps that the core language and framework don’t support.
The 3 most popular tech stacks are currently: LAMP, MEAN and Ruby on Rails.
LAMP gained popularity as: Linux, Apache, MySQL and PHP. While linux remains strong as the Server OS, Apache his being challenged by Nginx as the webserver component and Postgres SQL has become very popular for the database layer.
MEAN started out with MongoDB, Express, AngularJS and NodeJS, but now offers much more flexibility. GraphQL is becoming popular as the database layer, and ReactJS is overtaking AngularJS on the client side.
Ruby on Rails
Although Ruby on Rails is a Framework, it has become a stack unto itself. Originally developed by 37signals (now Basecamp), it has now become a very popular open source solution used by millions around the world.
Rails favors Convention over Configuration, do things the Rails way and things go amazingly fast, especially in an environment where requirements are rapidly evolving.
As you can see each of the popular stacks have some very big companies using them. How could you go wrong picking any one of them? You can’t.
For side projects, I generally recommend that people stick to the stack they are familiar with, learning something new can be fun, but if you want to build something on the side, the faster the better, and you’ll be fastest using something you already know.
I am most familiar with the LAMP stack. I first started developing websites using the C programming language via CGI scripts, then moving to the Java programming language. Since I started using PHP to build websites, starting in the spring of 2000, I’ve been hooked. Yes I’ve built websites on all the other popular stacks, but something about the LAMP stacks, appeals to me.
These days, my preferred setup, still uses Linux for hosting. I jump between MySQL and Postgres depending on the projects needs. Nginx is my preferred web server and I use the LaravelPHP framework for all coding on the server side, no vanilla PHP for me.
I’ll be discussing my development setup and the stack in more detail in a future post, and I’ll also get into how to host a website using this stack when we get closer to having to do that!