Languages, frameworks, and other tools I use to build software applications.

These are the tools I use to build software applications. I’m always trying new things but these are the ones I keep coming back to.

Frontend

  • React + Nextjs

    I've been using React since the early days and it's still my favorite way to build user interfaces. Next.js is my go-to meta framework for React apps with features like Edge Caching,SSG,SSR,API Routes, Image Optimization, and more.

  • Tailwindcss

    I've tried a lot of CSS frameworks over the years and Tailwind is the one that finally clicked for me. I love the utility-first approach and the fact that I can build my own custom components instead of relying on pre-built ones.

  • Typescript

    I can't imagine writing JavaScript without types anymore. The power of static analysis is just too good to give up.

  • Vitest

    Even if I don't enjoy writting tests, Vitest makes me hate it a little less. It's a fast and lightweight test runner for modern JavaScript applications.

  • Vercel

    Vercel is my preferred platform for deploying My frontend applications. It offers a seamless deployment experience with features like automatic HTTPS, custom domains, and continuous deployment right out of the box.I also love its free tier.

  • Other Libraries

    Some other libraries I use include: React Query + Axios for data fetching, Recoil for state management (I only use Redux when its mandatory), React Hook Form for form handling, and many more.

Backend & Databases

  • Nodejs + Nestjs

    As a JS/TS dev, ofcourse I use Nodejs for my backend. I use Nestjs as my preferred framework for building backend applications. Not only because of its Typescript support but also because of its modular and scalable architecture.

  • Mongodb

    For Nosql databases, I prefer Mongodb as its easy to deploy (they provide a free tier which is enough for my projects), easy to use and has a great community.

  • PostgresQL & Mysql

    For relational databases, I prefer PostgresQL and Mysql. I use PostgresQL for most of my personal projects and Mysql mainly for my clients projects.

  • GraphQL

    I can't lie that I'm a big fan of GraphQL. But I sometimes use it when it's mandatory or when I'm going to develop a system with a lot of modules and find that GraphQL is the best option.

Mobile Development

  • React Native

    As I have a react background, writing mobile apps with React Native is a breeze. I use React Native for building cross-platform mobile apps using same concepts I use for my React Applications.

  • Flutter

    I don't actually love flutter, but as I worked with it for over 7 months at a company, I can say that I'm good at it.

  • Swift / SwiftUI

    After buying a macbook, I asked myself why not learn Swift and build apps for IOS? So I started learning Swift and SwiftUI and now I use it for building IOS apps.

Design

  • Figma

    I just don't use Figma for UI design, I also use it for wireframing, planning and even for creating illustrations.

DevOps

  • Docker

    Docker is a key part of my development and deployment workflow. It allows me to package my applications into containers, ensuring consistency across different environments.

  • Kubernetes

    Kubernetes is my go-to for container orchestration. It helps me manage, scale, and deploy my Docker containers in a distributed system.

  • Jenkins

    I use Jenkins for continuous integration and continuous deployment. It automates the process of building, testing, and deploying my applications.