# How OVO determined the right technology stack for their web-based projects

[Grab](https://yomu.fyi/company/grab) · George Matthew Limongan · Mar 21, 2023

**Type:** Problem & solution

## Summary

OVO faced maintainability issues caused by fragmented web technology stacks, including PHP, Vue, React, Nuxt, and Go, alongside outdated documentation. This fragmentation resulted in severe context-switching costs during code reviews and prolonged onboarding times for new engineers. To establish a single primary front-end stack, the team compared React and Vue against maintainability principles encompassing operability, simplicity, and evolvability. Vue was selected because its standardized framework structure and documentation minimized architectural variations across projects. Implementation entailed creating a standardized Vue boilerplate, updating the internal UI library, and scheduling periodic upgrades for legacy React services rather than migrating them entirely.

## Context

OVO maintained multiple front-end technologies with incomplete documentation, causing heavy context switching during code reviews and slow onboarding for new engineers.

## Approach / What changed

Evaluated React and Vue against a maintainability north star metric, selected Vue as the single primary stack for future projects, established a standardized project boilerplate, and updated the shared UI library.

## Takeaways

- Standardizing on a single framework allows applying security patches once across all projects rather than creating distinct patches per stack.
- Vue was chosen over React because its framework structure and standardized documentation provide consistent patterns that reduce complexity across teams.
- OVO elected not to migrate existing legacy services to Vue, opting instead to enforce the standard on future projects while performing periodic upgrades on legacy code.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Code Review](https://yomu.fyi/topic/code-review), [Developer Experience](https://yomu.fyi/topic/developer-experience), [Onboarding](https://yomu.fyi/topic/onboarding)

[Read original post](https://engineering.grab.com/determining-tech-stack)
