For years, I’ve been coaching SharePoint Framework (SPFx) and Microsoft Teams developers to avoid installing Node.js directly from the official website. Instead, I’ve consistently recommended using a node version manager. The benefits are substantial – better project isolation, easier version switching, and cleaner development environments.
But my recommendation has evolved. After testing and first-hand real-world usage, I’ve switched from my longtime favorites to Fast Node Manager (FNM), and I think you should make the switch too. Here’s why this cross-platform, blazing-fast tool has become my new go-to recommendation for developers using Node.js.
Looking back on my NVM recommendations
For the longest time, I recommended one of two node managers depending on your operating system.
On macOS, I recommended the original Node Version Manager (NVM). It was the OG of node managers. It was reliable, well-established, and straightforward to use. NVM worked great for Mac users and had proven itself over years of development.
For Windows developers, I recommended NVM-Windows, which was essentially a Windows port of the original NVM. It provided similar functionality and worked well for Windows-based development environments.
However, both of these recommendations came with limitations. NVM only worked on macOS, and NVM-Windows has unfortunately become code-frozen and hasn’t been maintained for the past couple of years. This left Windows developers in a challenging position, looking for alternatives or sticking with an unmaintained tool.
Why Fast Node Manager wins
Fast Node Manager (FNM) solves these problems and delivers improvements I didn’t even know I needed.
Fast and simple Node.js version manager, built in Rust. Works on Windows, macOS, and Linux!
https://github.com/Schniz/fnm

Cross-platform compatibility
Unlike my previous recommendations, FNM works seamlessly on both Windows and macOS. This means I can give the same recommendation to all developers, regardless of their operating system. No more maintaining separate toolchains or learning different commands. It’s just one tool, one set of commands, with universal compatibility.
Blazing fast performance
Usually when something includes “fast” in the name, the performance improvement is marginal at best. FNM is different. Written in Rust, it’s genuinely blazing fast. The speed difference is immediately noticeable when switching between Node.js versions or installing new versions.
The Rust foundation doesn’t just make FNM fast – it also makes it secure and contributes to its cross-platform capabilities.
Addressing real-world challenges
I’ve encountered occasional issues with NVM, particularly in complex shell environments. For example, on modern macOS versions that default to the ZSH shell, I sometimes experienced situations where applications had difficulty determining which Node.js version to use.
VS Code Issues With Node Version Managers on MacOS
For example, VS Code defaults to a Bash shell on macOS, but macOS switched its shell from Bash to ZSH in 2019 with Catalina (v10.15). While most macOS installs are using ZSH, if you’re using VS Code, if you’re using a version manager configured in a ZSH shell, VS Code can get confused defaulting when it launches a new terminal using Bash as that means it uses the system installed version of Node.js.
Learn more about this and how I fixed it: Troubleshoot TTK issues with Node, Azure Functions, & macOS.
FNM seems to handle these edge cases more elegantly. I’ve been using it extensively, including with Claude MCP registrations distributed via NPM, and haven’t encountered the same environment variable conflicts that occasionally popped up with NVM (including my previous example with VS Code).
Solving the maintenance problem
With NVM-Windows no longer being actively maintained, Windows developers needed a better solution. FNM fills this gap perfectly, providing a modern, maintained alternative that works consistently across platforms.
Making the switch
Switching from NVM or NVM-Windows to FNM is straightforward. The commands are similar enough that you won’t need to relearn everything, but different enough that you’ll appreciate the improvements.
Essential FNM commands
FNM provides all the functionality you expect from a node manager, with the same basic operations you’re used to.
Install and uninstall Node.js versions
Installing a specific Node.js version:
fnm install 22.11.0
fnm install latest
fnm install lts
Uninstalling a version:
fnm uninstall 22.11.0
List available and installed versions
See all available Node.js versions:
fnm list-remote
View currently installed versions:
fnm list
Create aliases and set defaults
Create an alias for easy reference:
fnm alias 22.11.0 stable
fnm use stable
Set a default Node.js version:
fnm default 22.11.0
Automatic version switching
One of FNM’s standout features is automatic version switching. When you have a .node-version or .nvmrc file in your project’s root folder, FNM will automatically switch to the specified Node.js version when you navigate into that directory.
Create the .node-version file in the root of your project, then create the file using the following command. Then, when changing folders, FNM will automatically update it to use the project’s configured version:
cd ~/dev/spfx-hello-world
# create the version file
node -v > .node-version
Clean up after migration
After successfully migrating to FNM, make sure to clean up your old installation. This prevents conflicts and ensures a clean development environment.
Delete your old .nvm folder:
- On macOS:
rm -rf ~/.nvm
- On Windows: Remove the NVM installation directory
Also update your shell profile (.zshrc, .bashrc, or .profile) to remove the old NVM initialization scripts and add FNM instead.
Conclusion
Fast Node Manager delivers on its promise. It’s genuinely fast, works across platforms, and solves real problems that developers face with node version management. The fact that it’s actively maintained and built with modern tools like Rust gives me confidence in recommending it for long-term use.
Whether you’re developing SharePoint Framework solutions, Microsoft Teams apps, or any other Node.js-based projects, FNM provides the reliable, fast node management you need.
Have you made the switch to FNM, or are you still using NVM or NVM-Windows? I’d love to hear about your experiences in the comments below.

Microsoft MVP, Full-Stack Developer & Chief Course Artisan - Voitanos LLC.
Andrew Connell is a full stack developer who focuses on Microsoft Azure & Microsoft 365. He’s a 21-year recipient of Microsoft’s MVP award and has helped thousands of developers through the various courses he’s authored & taught. Whether it’s an introduction to the entire ecosystem, or a deep dive into a specific software, his resources, tools, and support help web developers become experts in the Microsoft 365 ecosystem, so they can become irreplaceable in their organization.