In today’s world, we have a plethora of tools available for developers, and the best part is most of these tools are open-source and are managed, maintained, and loved by the open-source community. In this article, I am going to share some of those tools which are an integral part of my programming world.
Since there are plenty of tools, I will group those into different categories for easy reference.
Software Tools:
1. VS Code:
I am pretty sure all of you must be already using VS code. It is the most popular code editor available. VS Code is open source and there are tons of extensions available to add more power to our beloved code editor.
Website: https://code.visualstudio.com/
Mozilla Firefox has always been my go-to browser, mainly because it’s open-source and preinstalled with almost all Linux distributions. Firefox Developer Edition is even better than Firefox. It is developed by Mozilla and it adds a lot of developer-friendly features to an already community-loved browser.
Website: https://www.mozilla.org/en-US/firefox/developer/
VS Code Extensions:
Here I am sharing some of the VS Code extensions which will definitely help you with your daily programming task.
1. Git Lens:

My favorite VS Code Extension, developed by none other than Git Kraken Team (Release the Kraken…). It integrates Git and your code editor beautifully. It shows information about the last commit on every single line, easy to see the git difference, better git logging, authors of the files, and their commits. If you are using Git (which I am pretty sure you are), then you should give GitLens a try.
Marketplace Link: https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens
2. Live Share Extensions Pack:
Developed by Microsoft, this extension pack is now my most preferred option for the dev paired programming sessions. This feature-packed extension provides options like
- Code Sharing
- Terminal Sharing
- Port Sharing
- Chat Session
- Voice Call option
It provides everything that you will need to remote paired programming sessions.
Marketplace Link: https://marketplace.visualstudio.com/items?itemName=MS-vsliveshare.vsliveshare-pack
3. Thunder Client:
Let me be honest, I hate to switch between screens when I am coding, so I always try to find options that will reduce the switching, and in search of such options, I land on Thunder Client, which is an API client (like postman) that is integrated right into your code editor. Thunder Client provides useful options like:
- API Collection
- API Environment
- API Collection Imports
and most importantly, it’s integrated right into your Editor(VS Code), so there is no switching while working on an API.
Marketplace Link: https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client
4. Rest Client:
I know, I have already listed Thunder Client in this list but I would like to include Rest Client also in the list. With Rest Client, you simply need to open the HTTP file where you will see options to send the API request for every request in the file, provided you are following proper HTTP Syntax. I prefer to add the HTTP files directly into the repository.
Marketplace Link: https://marketplace.visualstudio.com/items?itemName=humao.rest-client
I can add a lot more extensions to this list, but most of those are specific to a language or a framework hence decided to skip those.
Command-line tools:
Here comes my favorite part, I use these tools on Linux but I am pretty sure, you will be able to find the same tools for your operating system too.
1. Vim
I believe that the best CLI applications list should always start with Vim. I know some people might think that I am exaggerating but the people who truly know the power of vim will surely agree with me. Vim is an extremely powerful command-line editor available today. It has fuzzy search, multi-line edits, Code-highlighting, Macros, and plenty of other features that will surely make every developer’s life easy.
Website: https://www.vim.org/
It sits on the top of your base-shell application (whether it’s Bash, Zsh, or Fish) and automates/customize things before you start the shell. You can have the Application versions (Node Version/PHP Version) shown to you when you open the project directory in the shell. It can show you the Current Git branch and you can define some housekeeping tasks before the shell starts and after the shell stops.
Website: https://starship.rs/
Installation command:
curl -sS <https://starship.rs/install.sh> | sh
3. exa
Rust is gaining popularity amongst the dev community, it is becoming everyone’s favorite language and people are rewriting their favorite Linux commands with Rust, `exa` is one of those commands, and `exa` is the `ls` alternative of Rust. Apart from simply listing the files like the `ls` command, it highlights the file types with different colors so that it’s easy to distinguish between the file types. Since `exa` is an alternative to the `ls` command, it can be used with all the options of the `ls` command.
GitHub Link: https://github.com/ogham/exa
Installation command:
apt install exa
If you have Rust (Cargo) installed:
cargo install exa
4. ripgrep
It’s another popular rust command-line tool that is the alternative to the handy file search command `grep`. `ripgrep` is said to be better, faster, and as the name suggests ripped than the `grep` command.
GitHub Link: https://github.com/BurntSushi/ripgrep
Installation Command:
sudo apt-get install ripgrep
If you have Rust (Cargo) installed:
cargo install ripgrep
5. tokei
Tokei is another rust-developed command-line utility that will give you information about any directory. Information like different types of files available in the directory and the total number of files.
GitHub Link: https://github.com/XAMPPRocky/tokei
Installation Command:
sudo apt-get install tokei
If you have Rust (Cargo) installed:
cargo install tokei
6. hyperfine
This rust utility will allow you to benchmark different commands. You can pass one (or more) commands as the input to the `hyperfine` command and it will give you bench-marking information about the command and the fastest command in case of multiple commands and their time difference.
GitHub Link: https://github.com/sharkdp/hyperfine
Installation Command (Required Rust(Cargo) installed):
cargo install hyperfine
7. fselect
This is a very peculiar command-line utility, it allows you to select file information from a directory will an SQL-like command. Here is an example that will help you better understand:
fselect name, path, size from ./ where name = "**.lock" and path != "**./node_modules/*"
The above command will list the name, path, and the size of all the files in the current directory whose name ends with .lock and which are not in the node_modules directory. It is an interesting and easy utility to search files based on patterns.
GitHub Link: https://github.com/jhspetersson/fselect
Installation Command (Required Rust(Cargo) installed):
cargo install fselect
These are the tools, that I use extensively in my day-to-day life, in fact instead of typing the commands, I have created aliases with common options that I always use and I would recommend you to do the same. I hope these are useful to you and please feel free to share if you have any tool/extension that will be useful for fellow web developers, I would love to check that out.
Gracias!!!