6 Must-Have Tools for Developers
Lighthouse, direnv, and more
Oh My Zsh
Oh My Zsh is a wrapper for Z shell that makes your terminal a delightful tool to work with.
My favorite features are the tab completion and tab cycling. I can rapidly traverse directories and files just by pressing Tab repeatedly.
Did I mention how cool my prompt is? It gives me everything I need at any given time:
[TIMESTAMP] USER:CURRENT_DIRECTORY VCS:(BRANCH) $
direnv is a shell extension that automatically loads environment variables when you
cd into a directory.
This thing has saved me so much time, especially when I’m working on numerous projects that all require different ENV variables — or even different values for the same ENV variables.
It’s easy to install, and it’s even easier to write the
.envrc file because it’s just a bunch of
export BLAH=BLAH statements that you’re already writing in your
When you exit outside of the directory with the
.envrc file, it automatically unsets those ENV variables. Convenient!
See it in action below.
Lighthouse (with functionalities built into Chrome) is an open-source plugin for checking the performance of your website.
With everything from text compression to render-blocking resources, the tool scans a given website and generates a report to help you figure out what things are slowing down your page.
This is hugely important for both making websites performant as well as accessible.
Lots of developers jump into web development and mostly learn to put together websites that look really nice. But performance is an often-ignored tenet that’s arguably just as important as aesthetic.
Some websites are so massive in size and load so many resources they’re practically unusable on slow internet connections or drain huge amounts of the battery on mobile devices.
Use it and see how much you can speed up and optimize your website.
Note: This tool is also available to run against locally hosted web servers via Chrome Web Tools. Cmd+Alt+I → Audit Tab → Generate Report.
vim-plug and MELPA Stable
If you’re an avid Vim or Emacs user, you’ll know there are tons of highly useful plugins for both text editors to make life easier.
From syntax highlighting to symbol indexing, these plugins can either add a little convenience or basically turn your text editor into the most intense thing since metal music. For example, check out Emacs Live’s Clojure features.
command-line fuzzy finder (fzf)
This tool is blazing fast because it’s written in Go and uses concurrent threads to divide and conquer workloads.
To better use fzf, I’ve actually mapped these two aliases in my shell profile:
alias f='v `fzf -i`'
I can type just the letter
v followed by a file name to open it in Neovim.
I combine it with fzf to do a fast search for a particular file. The output of fzf is that file’s name with the full path. Then, I pass it as an argument to my
The result? Wicked-fast file search and wicked-fast file open in Neovim. Life is beautiful.
The Silver Searcher (Ag)
While fzf (above) is great for searching file names, Ag is great for searching the content inside those files for specific tokens and matches.
What makes it really great and awesome is it automatically ignores files that are part of your
.gitignore file. Where a
grep -r would have spat out a bunch of irrelevant matches inside your
node_modules, Ag has a blazing-fast search time because it’s only searching the files that matter.
By default, Ag output results also give you a line number. You technically could achieve everything Ag does by supplying lots and lots of arguments to
grep, but then, at the end of the day, Ag is still several times faster — and continues to get even faster.
Happy coding! Thanks for reading.