DEV Community

K.M Ahnaf Zamil
K.M Ahnaf Zamil

Posted on

My favorite stack for web applications, and why I use it

If you are a full stack developer, or just a web developer in general; you might have heard the term "Tech Stack" or just "Stack" in general. Basically, it is a set of technologies that you use to make your web applications. Pretty simple right?

There are many popular stacks which are used from small startups to big companies. These stacks include but not limited to:

  • MERN: MongoDB, Express, React, Node
  • MEAN: MongoDB, Express, Angular.js, Node
  • LAMP: Linux, Apache, MySQL, PHP etc.

When I make a web application, I want a tech stack that is lightweight, and easy to use/manage.

I call it the PERP stack (weird name)

  • P: Python
  • E: (E)nginx
  • R: React
  • P: PostgreSQL

Since I use Python and TypeScript as my primary languages, I use these for making my applications. On the backend, I use Python Flask (specifically) as my web framework. I use Ariadne with Flask as I like to use GraphQL instead of REST, whenever possible.

Flask is an unopinionated and lightweight web framework. It comes with the bare essentials, and there are tons of extensions which you can integrate to make your application, which is why I use it instead of a complete web framework like Django.

For the frontend, React is a must for me. I don't like any other frontend frameworks/libraries except React (just my own opinion). With React, I use URQL or Apollo client as the GraphQL client. Also, I forgot to mention that this will all be in TypeScript (because types are OP). UI-wise, I use Tailwind CSS, and Headless UI (Tailwind components for React, Vue, etc).

As my database, I leverage SQL over any other type of "main" database, specifically PostgreSQL. Of course, I would use something like Redis for user session and caching. The reason I use SQL is because it provides you with structured tables, so that the data always follows the same format and pattern. Relational functionality is also another pro to it. Foreign keys, joins, etc, are very useful SQL functionalities.

This is basically the set of technologies that I like to use for making my web application. Of course, there might be other better alternatives, but I just use it because I am more comfortable with using these. And it's not that bad. Let me know what tech stack you use for your web application, in the comments below. Hope you enjoyed this post :)

Top comments (0)