All Case Studies Design Development Interviews Our Way Project Management

Scalable Fintech Platform for Private Equity. How We Rebuilt Moonfare in Node.js – Case Study

Moonfare is a company providing its users - professional and semi-professional investors - with access to top private equity funds. The company has already developed an impressive network of skilled professionals who helped to build a successful offline product. However, Moonfare also strives to run its services online and, in doing so, it wants to offer unparalleled experience both in terms of accessibility and performance to its demanding customers.

Bold plans require reliable solutions

Moonfare sought a solution that would substantially enhance performance and provide more reliability to its customers. When the company turned to Netguru, it had already been using a web application catering to its basic functionalities. However, it had soon failed to catch up with the company' rapid growth. After an analysis of the codebase and Moonfare’s business goals, Netguru recommended to build the new platform with Node.js on the backend and React on the frontend. The platform was built to use Amazon Web Services.

DSC_2073_Fotor

Scalability

AWS offers plenty of tools that have great support for Node.js, making the JS framework outstandingly scalable and cost-effective. With AWS, providing the Moonfare app with sufficient resources is a matter of minutes. The app can even be configured to self-scale within defined limits. Moonfare has taken advantage of the AWS-Node.js combination and is now able to easily handle any number of requests and pay according to their actual usage.

One of the AWS tools used in the project is the serverless Lambda function. Moonfare only pays micropayments for the requests that have been handled and not for maintaining the whole server. The cost? The first million requests in a month is totally free of charge and, once the limit has been exceeded, the company is charged $0.20 per every next million requests.

Security

Moonfare uses the AWS Elastic Load Balancer to provide security, especially DDoS protection. ELB distributes traffic across multiple targets and is able to provide health checks, as well as to monitor network metrics.

Performance

The Moonfare platform mostly does Create, Read, Update and Delete operations. It does not use any real-time solutions where Node.js shines the most. For this reason, it does not use the full potential of Node.js in terms of performance.

Community

JavaScript, the language of Node.js, is the “English” of programming languages, and the largest ecosystem of open source libraries in the world has emerged around it. This vastly speeds up development, as implementing new features is often a matter of reusing ready-made solutions developed by the community. On the other hand, Node.js uses very few conventions and it gives developers the freedom to architect applications tailor-made for their users. Moonfare’s backend application uses a number of battle-tested packages. One of these is Routing Controllers and TypeORM. Routing Controllers is a ready-made solution to create declarative and beautifully organized class-based controllers with heavy decorator usage in Express. Moreover, Routing Controllers provide decorator authorization methods out of the box. TypeORM is an Object Relational Mapping tool that is designed to work with TypeScript. These packages make the codebase well-organized and easy on the eye, so getting a new developer onboard is easy. The application also uses Class Validator on the backend. This allows Moonfare to validate requests with less effort. Thanks to the fact that a lot of code is reused, there is a lot less code to maintain and care about.

Finally, thanks to the vibrant community, packages that we use are constantly updated. Developers behind the packages take extra care to offer solutions that would meet the highest technical standards and expectations.

Typescript

Moonfare’s backend application uses Typescript, an open-source superset of JavaScript developed and maintained by Microsoft. Designed for the development of large applications, it’s main benefit is static typing. The developer is able to detect type errors while coding. TypeScript supports definition files that can contain type information of existing JavaScript libraries. Therefore, if an input is wrong, it immediately shows it which significantly decreases the number of errors and, in turn, accelerates development.

React.js on the frontend

For the frontend of the application the team opted for React.js. The framework proved to be very efficient in development. Our developers work with ready components that are easy to test and document. The components also make it simple to divide tasks between developers – programmers can work on separate components at the same time. Finally, React.js comes with a rich ecosystem of tools that make development much quicker and more efficient than it would be with other solutions.

Scalable product that makes the user happy

The technology stack – Node.js on the backend combined with React.js on the frontend – proved to be a good choice for the platform. Both technologies offer really quick development and come with many useful tools to make the work really efficient. Our partners confirm it’s been a great choice.

Gerardo Bonilla - quote

Benefits of the stack

  1. Quick development on both the server and the client side of the application.

  2. Secure, stable and clear code.

  3. Easy and fast environment configuration in AWS.

  4. Freedom in building app architecture and choosing tools.

  5. Fewer errors in code.

  6. Clear control of the server.

  7. Lower maintenance costs thanks to a serverless architecture.

  8. Simple app performance tracking.


If you’re interested in learning more about benefits of Node.js in backend development, check out our blogpost. Also drop us a message if you want to find the perfect solution for your application. We’ll help you make the right choice.

New Call-to-action
New Call-to-action
READ ALSO FROM Node.js
Read also
Need a successful project?
Estimate project or contact us