/ Engineering

Why we use Node and React for web development

When developing web applications, we do not only focus on great design and code. We strive to create business impact. How do we maximize the likelihood that the apps we develop produce business impact?

How we develop quality apps

We create value for clients by selling the time of designers and engineers. The more efficiently our designers and engineers can work individually and as a whole, the more value we bring.

On one hand, we add value by adopting Agile, design thinking and lean startup philosophies. We apply learnings from our experience from past projects to advise our clients to make better business decisions.

Related: Agile software development

On the other hand, when we have a choice, we develop web applications using a consistent tech stack. This allows our engineers to develop deeper proficiency in a single tech stack. We also create reusable modules and microservices that all projects can benefit from. The ultimate goal is to create more value for each man-hour of time.

Quality can be broken down into two components (ref):

  • Taken for granted quality: Basic things in an app that users will take for granted that have to work well (e.g. authentication, admin panels, analytics, maps, etc)
  • Enchanting quality: The core or differentiating feature of an app

The more time we can spend on the enchanting quality of every project, the more value we can add to our clients

By creating reusable code for code scaffolding, administrative panels, authentication, deployment, payment and other commonly used modules, we reduce the time it takes to meet taken for granted quality.

This gives us time to focus on enchanting quality, the core or differentiating features in an app.

Benefits of Node and React

We find that to develop quality apps, the combination of Node and React bring many benefits to our clients:

  • Maintainability: Developers only need to be proficient at one language: JavaScript. Every engineer is productive in both the frontend and backend. JavaScript is the only language where this can be done because it is the de facto language of the web browser.
  • Prototype fast: Node and React are some of the latest technologies that are suited for rapid prototyping and have a large development community.
  • Easy to hire good developers for: Node, React and Javascript are popular with younger developers, which represents the bulk of the people corporates and startups hire for. Experienced developers can switch between languages more easily and spend more time reviewing code, managing and training.
  • SEO: React is both ideal for SEO and able to provide the user experience of a single-page app.
  • Reusability: Having reusable modules makes key components to our apps tried and tested and more stable.

(caveat: we use Python for data science projects)