Crunchbase And Angular: Why We Made The Transition

In November of 2017, Crunchbase.com relaunched on a brand-new web platform. We transitioned millions of Crunchbase users to the new site, and we did it with almost zero downtime and no negative impacts to our SEO (in fact, the relaunch yielded some meaningful improvements). The new web platform was built to enable years of growth for our site, our products, and our company, and the technology decisions we made then are just as important today as they were when we started the transition.

Of the many decisions we made in that process, one of the most critical was to build the front end of our new web platform on Angular. We evaluated the landscape of great frameworks at our disposal and landed where we did for a number of important reasons. We still believe the decision we made was the right one, so I want to share a bit about why Angular is a great forward-looking choice for Crunchbase and many other organizations. I also want to share the reasoning so others facing similar decisions can take advantage of our experience and insight.

 

A bit of Crunchbase history

Prior to 2017, Crunchbase.com was built on a Ruby on Rails monolithic architecture. This served the site incredibly well in the early years, allowing Crunchbase to grow from just a few thousand users a month to millions of users. 

In 2015, Crunchbase spun off of AOL/Verizon, and embarked as a private company on its own adventure with a core mission to democratize access to opportunity for innovators of all backgrounds. As part of this new mission, we knew Crunchbase would need to consist of at least two parts: the performant, SEO-friendly (Search Engine Optimization) destination website that many of us know and love, and a platform for professional business applications; a place where people could come to help them do their jobs.

These two parts meant that Crunchbase would have to be a lot of things at once. It would need to be fast, indexable and accessible, but also supportive of rich business applications and the modern web experience that people expect.

 

Enter Angular

One of the core reasons we selected the Angular platform is because it is just that: a platform. Out of the box, we’d have battle-tested HTTP, routing, form management, localization, and even a components library with Angular Material. Not only would they all be guaranteed to work together cleanly and consistently, but the updates would be in parallel, allowing us to easily transition to new versions without having to evaluate each dependency for compatibility.

For a small team, this is a valuable feature; when we began we had just two front-end engineers! Major version upgrades used to take weeks, months, or even years, but thanks to the power of the Angular CLI and “ng update,” our latest major version update took just a few hours.

The two-part nature of our application, the performant public website, and the business application meant that we needed the benefits of both a multi- and single-page application. Angular Universal, then a growing community project, provided us with a solution. We could build a single application in TypeScript that could run on both Node.js and in the browser. 

If we were conscientious about how we used the platform APIs from both, we could organize our application in a way that was platform-agnostic, taking advantage of Angular’s built-in dependency injection framework to “do the right thing” in each environment. Granted, it has become easier to do this sort of work in other frameworks since we built the initial version of our isomorphic application, but the early commitment and recognition from the Angular team and the larger Angular community meant we could build this functionality in mere weeks.

One of the core reasons we need server-side rendering is for SEO. With millions of company and person profiles on Crunchbase, it’s critical for our pages to be easily indexable and searchable. And by shipping fully semantic HTML, we can ensure that search engines have up-to-date versions of our content within hours instead of weeks. Performance, too, is a key component of SEO. Server-side rendering has the added benefit of improving the First Contentful Paint, a key metric in the perceived performance of a website. With page load times so highly correlated with bounce rates, we can improve the quality of our product with better page loading performance.

There are a number of technical reasons a team might prefer to use Angular as well. First, it’s incredibly easy to get started. A simple “ng new” will have you off and running, and you don’t need to go evaluate libraries for common needs (they’re right there out of the box). Additionally, Angular’s use of architectural best practices from the start, such as Dependency Injection and Static Typing through TypeScript, help prevent running into common pitfalls. Angular also provides powerful affordances for modularity: The Routing library, for example, supports lazy loading of entire modules out of the box with almost no configuration.

Finally, it’s critical to note the value of the Angular community as a whole, and we’re proud to be a part of it. It is as strong today as ever: Angular has seen almost 40 percent growth this past year on NPM, nearly 6 percent higher than React (it’s worth noting that both are growing quickly, an exciting time in the front-end space!). We’ve had opportunities to join and host meetups, participate in conferences and keynotes, and bring together engineers from all backgrounds to talk about the exciting future of the front-end development space. We have always been impressed and inspired by the folks we’ve met and worked with, and can’t wait to continue in the years ahead.

 

The future for Crunchbase and Angular

I remain as excited about the future of Angular and Crunchbase as I was when we began this journey five years ago. We’ve launched a ton of new features, improved and simplified our UI, and took important steps to help accomplish our mission to democratize access to opportunity, like launching our Diversity Spotlight initiative. All the while we’ve upgraded through each major version of Angular and reaped the benefits of its continued advancement. Like any good engineering organization, we continue to re-evaluate our choices, ensuring we’re making the right decisions for the future, but as things stand, Angular remains a good choice for us.

Hopefully, I’ve provided some insight into how and why we made our decision to use Angular. We’re incredibly fortunate to have so many strong options for building on the web, and it will be exciting to see what the future holds in the space. The partnership among Crunchbase, the Angular team, and the community at large continues to be a valuable and positive one for our organization. 

We hope you’ll come say “Hi” when you see us at meetups and conferences, or maybe even consider joining the team.