Lately I’ve been hearing a lot of discussion about Neovim in frontend circles (mainly on Twitter), and I wanted to quickly jot down my case for why I think a lot of frontend developers can benefit from adopting Neovim into their workflows. For context, I made the switch from VSCode to Neovim about a year ago (at the time of publishing) and it has had a very positive impact on my productivity and my excitement around programming in general.
A lot of the sentiment I’m writing here is related to a late 2022 video by TJ Devries titled PDE: A different take on editing code. TJ’s main thesis is that an IDE can certainly increase productivity and enjoyment while writing code, however, when you make the leap to something like Neovim, your editor can be custom tailored to be compatible with your workflow and thought process. Reflecting on this sentiment in relation to my own experience, I’ve notice a huge jump in my productivity, but more importantly, I understand my development environment far better than I did while using an IDE like VSCode. This is the main reason I’m writing this blog post.
The reason frontend developers can benefit from terminal based text editors (like Vim/Neovim) has nothing to do with code editing speed or computational resources spent; these tools are most beneficial because they teach you how to remain in complete control of your development environment. I often see developers get blocked on a problem because they never step outside the bounds of VSCode & it’s extension registry while developing. Spending 100% of your time in the terminal will slowly introduce you to more rudimentary and composable tools that can allow you to build software faster and with less effort. Since making the transition to Neovim, I’ve become more comfortable writing custom shell scripts that help reduce repetitive tasks, contributing to CI code in my day job, and in general I solve software engineering problems far more efficiently. For frontend developers, maintaining an editor like Neovim is the perfect introduction to these other foreign worlds. On top of that, the skills that can be gained from using tools like Neovim, can make you more employable to software teams and increase your value as an engineer.
As TJ states in the video mentioned above, the most important part of this is that you enjoy the practice of building, maintaining, and improving custom tools for your workflow as a developer. If all of the things listed above sound miserable to you, please don’t try Neovim. However, if you like to tinker with things and want to start to build skills that will increase your productivity & make you more valuable as a developer, I think Neovim is a great choice to start with.
If you’re interested in seeing my Neovim setup for Javascript/ frontend web development, my config is publicly available in my .dotfiles repo.