The npm blog has been discontinued.
Updates from the npm team are now published on the GitHub Blog and the GitHub Changelog.
Why npm Is My Agency’s Package Manager of Choice to Help Us Grow Quickly
Guest post from npm customer and the founder of Rise, Kahl Orr.
I run Rise, a fast-growing web design and development agency based in Philadelphia. I started my company after my first job as a developer led to high demand for my services in the form of many satisfied customers, professional connections, and clients acquired through contracting.
Today, I manage a team of roughly 10 people, and we’re on track to double revenue year-over-year. We’re enjoying a growth spurt, and things are great.
However, things weren’t always this smooth. In fact, before adopting npm into our workflow, processes were more chaotic for us, which created downward pressure on our growth potential.
Here’s my journey of how I initially started my agency without npm and then successfully adopted it to help grow my business and revenue.
What Development Was Like Before npm
For starters, there was no real way to share dependencies with my team. We used to be in the habit of simply inserting any front-end tools and plugins into our codebase and even pushing code into our repository.
Part of the problem was how we were thinking of the tools we were using.
We initially didn’t give much consideration to what version of a specific tool we were using or what was really needed for our app or website to work, such as jQuery.
Let’s look at two, in-depth examples to illustrate what I mean.
We’ve developed two web apps for two different clients: Pet Stop and Home Care Assistance.
On both of those apps, there’s no use of front-end tooling or dependency management. As a result, we have to do a lot of manual work in figuring out what we need to make those websites work properly. In turn, this limited our approach to these websites.
If we had used npm from the start, we would have had the option to declare a list of technologies we wanted to use on the websites and then efficiently bring in the tools we need to manage said technologies.
Of course, hindsight is always 20/20…
The reality is that a lot of great tools exist, yet trying to download them and get them to work in conjunction with each other would’ve been next to impossible without npm since it ensures there are no conflicts between versions of tools.
Another less-than-ideal situation was that we always had to make other developers download these 3rd-party tools that were present in the project directory. Naturally, there’d always be a lot of unique folders and subfolders, which presented a considerable challenge when it came to downloading and extracting them all.
What we’ve discovered is that we’re not able to use modern, front-end workflows with our earlier apps that weren’t developed with npm.
The Opportunity to Use npm
We had the chance to see what npm could do when we started working on our largest project to date for our largest client. We figured this was as good a time as any to adopt npm into our workflows. From our past struggles with workflows, we came to realize that the tools for building a modern and maintainable website existed; we just had to finally take advantage of them.
It goes without saying that our behind-the-scenes work simply wouldn’t be possible without npm.
For instance, we use Git to keep track of our files and changes that were made. This lets team members work together seamlessly on the same website without overwriting one another and ensures we’re all working on the same, updated file.
To use this tool, we didn’t wish to store images or static-generated JavaScript and CSS files, which were generated from tools we took from npm, in our Git repository. Of course, there’s a need to have said JavaScript and CSS files to be live on the website.
Thanks to npm, we succeeded in locating a tool to run to build these files and then push them to a cloud server, where they’re stored.
On this project, we’ve been able to declare what kinds of tools are needed to develop upon, as well as what tools are required for the front end to run. Examples are a slider plugin and a small CSS library for the grid.
Working with npm has given way to immediate benefits, which include:
- Being able to easily share what’s needed with the team
- Installation with a simple command on the CLI
- The ability to keep track of what we’re using, along with the specific version number (next to impossible without npm)
Everything is so efficient that there’s no need to commit any files that were installed through npm. The “npm install” command takes care of it automatically.
My Agency After npm Adoption
Today, we couldn’t imagine our development lives without npm. It has empowered us to become professionals at our craft. We like it so much that we’re determined to use npm in each project from here on out.
While my team is still new to npm, we’ve been adopting it into recent projects with more efficiency. For instance, on our latest project, all of our team members were set up with a website, which needs a lot of front-end tools, on their local environments. These front-end tools aren’t in our Git repository. In addition, the website needs a specific version of each tool.
Because of npm, when my team pulled these files from the Git repository, they only needed to run a specific command and presto! They immediately had all the right tools downloaded to the appropriate location, thus allowing them to smoothly work on the website. Overall, this is extremely useful, saves a lot of time, and promotes cohesion in our work.
—
Author Bio: “Kahl Orr is an entrepreneur, web developer, and the founder of Rise, a digital agency that specializes in web design. A fast-growing web development agency, Rise builds high-end, custom websites and web and mobile apps for national brands.”