Modernizing the OpenLMIS frontend: A proof of concept

In this case study, we explore a successful Proof of Concept (PoC) focused on modernizing the OpenLMIS user interface (UI) using a modern frontend stack. The initiative involved migrating the legacy UI to React 19, supported by powerful tools and libraries including React Query, Tanstack Router, Zod, and Vite for ultra-fast builds.

To deliver a sleek and consistent interface, we implemented components from the shadcn/ui collection and followed modern development practices – such as AI-assisted code review and generative UI tools – to boost efficiency. Importantly, the PoC was limited to the frontend layer only, integrating seamlessly with the existing OpenLMIS backend APIs without modifying backend logic.

The outcome demonstrated clear advantages: faster performance, improved developer experience, better usability, and full responsiveness and accessibility. This case study highlights how OpenLMIS can benefit from a forward-looking frontend upgrade using today’s most effective tools and practices.

The Challenge: Limitations of the current OpenLMIS frontend

During the PoC, the aging OpenLMIS frontend was found to create tangible barriers to user productivity, developer efficiency, and accessibility. Performance bottlenecks, outdated design, and long build times led to rising maintenance costs and poor user experience, especially in data-heavy workflows or mobile field operations. Success required overcoming several inherent challenges:

Reduced user satisfaction

Sluggish performance, especially when loading large datasets or working with thousands of items, combined with unintuitive navigation paths and a dated look-and-feel, directly impacted user efficiency and led to frustration during critical daily tasks.

Increased technical debt and maintenance costs

The current frontend architecture, lacking the tooling and efficiencies found in modern stacks, had become increasingly complex and costly to maintain. Critically, build times could often exceed one hour, significantly slowing down development and deployment cycles.

Barriers to inclusivity

Interfaces not built with accessibility (WCAG) as a core principle risked excluding users with disabilities and failing to meet essential compliance mandates.

Operational severity

The lack of consistent, effective responsiveness across desktops, tablets, and mobile devices restricted users’ ability to access OpenLMIS effectively in diverse settings, particularly limiting its utility for mobile field operations.

Development velocity constraints

The challenges in working with older codebases made it harder to rapidly iterate on UI improvements or attract developers proficient in current frontend technologies.

Collectively, these frontend limitations prevented users and organizations from fully leveraging the potential of the OpenLMIS platform through its user interface.

The Objectives: Goals for the React 19 PoC

To demonstrate a clear path away from the limitations of the existing AngularJS and React 17 hybrid frontend, this Proof of Concept aims to prove the advantages of a complete migration to a modern React 19 ecosystem. The specific, measurable objectives were established to directly address the challenges identified:

Implement a cutting-edge tech stack

Establish a new, unified frontend foundation built entirely on React 19, leveraging the power of React Query, Tanstack Router, Zod, and the speed of Vite for the build process. This directly contrasts with the fragmented and older technologies previously in use.

Showcase modern development efficiency

Demonstrate drastically reduced build times (targeting minutes, not hours) and significantly improved developer workflows enabled by Vite and modern tooling, directly overcoming the critical bottlenecks and maintenance costs associated with the previous architecture.

Establish a consistent and maintainable UI foundation

Utilize components from the shadcn/ui collection to create a visually unified, accessible, and easily maintainable interface, replacing the likely inconsistencies and complexities of the prior AngularJS/React hybrid UI.

Deliver a transformative user experience within existing processes

Create a demonstrably faster, smoother, and more intuitive interface for core OpenLMIS tasks, directly addressing user frustrations regarding performance and usability identified in the previous system, while intentionally preserving the established user workflows with minimal deviation.

Achieve significant performance gains

Optimize data handling, particularly for large datasets, using React Query’s caching and state management, and leverage React 19 features and Vite’s optimizations for faster rendering and load times, tackling the sluggishness previously experienced.

Ensure universal access through responsive and accessible design

Design and validate a fully responsive UI functional across desktops, tablets, and mobile devices, while ensuring compliance with WCAG accessibility standards, leveraging the structure and attributes of shadcn/ui components to overcome previous limitations.

Prove seamless backend compatibility

Rigorously validate that the entirely new frontend could integrate perfectly and reliably with the existing OpenLMIS backend APIs without requiring any backend code modifications, confirming the feasibility of a pure frontend upgrade path.

The Solution: A modernized, high-performance OpenLMIS frontend

This Proof of Concept delivered a completely modernized frontend environment for OpenLMIS, successfully replacing the legacy AngularJS/React 17 hybrid while preserving backend compatibility and existing user workflows. This unified solution addressed the core challenges through a combination of cutting-edge technology, efficient architecture, and a focus on tangible results.

Foundation: Technology and architecture

At the heart of this Proof of Concept is a modern, performance-driven tech stack designed for long-term maintainability. The interface was built with React 19 and powered by Vite, enabling fast development cycles and optimized builds using TypeScript.

To handle state and data flow effectively, we used:

  • React Query for server state management,
  • Zustand for local (client-side) state,
  • Tanstack Router for navigation and routing,
  • React Hook Form and Zod for streamlined form handling and validation.

The user interface was composed using shadcn/ui components and styled with Tailwind CSS, ensuring visual consistency and accessibility through Radix UI primitives.

On the architectural side, we adopted a monolithic frontend structure organized by feature folders. This approach made the codebase easier to manage, kept related logic grouped together, and simplified deployment. Vite’s blazing-fast build times – dropping from over an hour to just a few minutes – significantly improved developer productivity. We also leveraged tools like v0 to quickly scaffold UI components compatible with shadcn/ui, accelerating early-stage development even further.

View a comparison of the legacy OpenLMIS interface (left) and the modernized PoC interface (right), highlighting visual consistency and modern aesthetics within the same workflow. Slide to see the full screenshot.

Before
After
Before
After
Before
After

Outcomes: Performance, usability, and accessibility gains

This modern environment yielded significant, measurable improvements directly addressing the initial challenges:

OutcomeDescription
Transformative PerformanceIn addition to drastically reduced build times, the application now delivers a much faster runtime experience. Loading large datasets and interacting with complex views is significantly more responsive, thanks to performance enhancements from React 19, efficient data handling via React Query, and Vite’s optimized bundling process.
Enhanced User ExperienceThe use of shadcn/ui components produced a clean, consistent, and visually cohesive interface. Navigation feels more intuitive, and user interactions are smoother and more satisfying – all while retaining the familiar workflows users rely on.
Universal AccessibilityThe new frontend was built with responsiveness and accessibility in mind. It functions seamlessly across desktops, tablets, and mobile devices. Adherence to WCAG accessibility standards, combined with the accessible-by-default design of shadcn/ui and Radix UI components, ensures usability for a broader and more inclusive user base.

The modernized interface demonstrating full responsiveness across tablet, and mobile viewports.

Validation: Seamless integration

Crucially, rigorous testing confirmed that this entirely new frontend integrated flawlessly with the existing OpenLMIS backend APIs. All data interactions functioned precisely as expected without requiring any server-side modifications. This validated the core objective of achieving significant frontend modernization as a pure upgrade path, preserving the existing backend infrastructure.

The PoC proved that OpenLMIS can benefit enormously from frontend modernization without costly backend overhauls. The new React 19-based interface delivers modern usability, enhanced performance, and a strong foundation for future development.

In essence, the solution delivered by this PoC is not just a plan, but a functional, high-performance, accessible, and maintainable React 19 application, demonstrating a clear path forward for revitalizing the OpenLMIS user experience.

Modernize your frontend with us

Author

Scroll to Top