logo
hamburger-menu-icon
Back to Projects

Weever

Upgrading Legacy Systems for Manufacturers

Weever, which helps manufacturers replace paper based maintenance with digital workflows, was running Rails, Node, JDK, and PostgreSQL versions behind with no security updates. Ollon embedded developers into Weever's team, migrating Rails from version 5 to 7 and evaluating more than 50 gems against the upgrade. Weever's application now runs on current, supported versions with no functionality lost.

Weever, a company that helps manufacturers transition from paper based maintenance processes to digital workflows, needed to upgrade critical components of their existing platform. Their systems, including Ruby on Rails, Node, JDK, and PostgreSQL, were several versions behind and no longer receiving security updates. Without the internal resources to complete the upgrades, they engaged Ollon to integrate with their team and provide the necessary expertise to modernize their infrastructure.

Ollon embedded developers directly into Weever's team, collaborating closely with their lead developer, project manager, and other stakeholders through daily check ins and biweekly calls. The team executed a comprehensive upgrade strategy across their tech stack, including a Ruby on Rails migration from version 5 to 7, PostgreSQL upgrade over three major versions, and significant changes to Node, JDK, and Docker. They worked within Weever's existing systems and testing frameworks, carefully updating dependencies while maintaining stability.

Ollon's collaboration enabled Weever to modernize a critical part of their technology stack, improving long term maintainability, reducing technical debt, and aligning with current security standards. The upgrades strengthened platform reliability and positioned the internal team to move faster and with greater confidence.

Ruby on Rails, Node, JDK, PostgreSQL, Docker, Vite, Vue

Our Expertise in Action

Ruby on Rails

Weever's Process Builder application ran on Ruby 2.7.4, several versions behind, with a codebase tightly coupled enough that upgrading one gem could require several others to move with it. Ollon evaluated more than 50 gems against the migration to Ruby 3.3, sorting each by how likely it was to break the build, then split the codebase with a second developer and worked through it folder by folder against a shared upgrade branch. Weever's own test suite caught real regressions during the migration, though a single fix sometimes had to be applied across thousands of files where the same pattern repeated. The application now runs on Ruby 3.3 with no functionality lost.

Framework version upgrade

Weever needed Node.js, the JDK, and Docker brought forward, each carrying its own risk of breaking a working build. Ollon moved Node from version 14.21.3 to 22.9.0 and updated the JDK to the newest version still compatible with Weever's Nightwatch test framework, sequencing these changes to land together in one coordinated pass. Docker configuration changed enough to support the newer runtime versions while keeping Weever's existing deployment process working. Weever ended up with a framework stack running on current, supported versions across the board.

Team augmentation and staff scaling

Weever brought Ollon's developers in as embedded contractors for a roughly five month upgrade project. They joined Weever's sprint planning and daily standups, and worked out of Weever's own Slack channel and Jira board alongside Weever's existing developers. Weever's project manager directed the work and set priorities throughout, with all documentation and ticket tracking staying on Weever's own systems. The arrangement gave Weever additional development capacity while keeping the team operating exactly as it already did.

Dependency management and security remediation

Weever's Ruby on Rails codebase carried packages that had gone deprecated and no longer worked with newer Rails versions, mixed in among dependencies that were still fine to keep. Ollon reviewed each one library by library, deciding case by case whether to upgrade, replace, or remove it, drawing on direct access to Weever's own developers to understand why a library had been implemented a certain way. The team also found hardcoded credentials sitting in Weever's deployment scripts and replaced them with environment variables, closing a security gap the upgrade work surfaced along the way.

Technical debt reduction

Debt had built up simultaneously across Weever's Ruby, Node, and PostgreSQL versions, deep enough that keeping every commit in a working state the whole way through would have slowed the work considerably. Ollon planned for entire branches of the codebase to stay broken for stretches while dependent packages caught up, a deliberate tradeoff that let each fix address the underlying version gap directly. Weever ended up with a platform running on current versions of Ruby, Node, and PostgreSQL, with a codebase its own developers can extend freely, years of deferred work now cleared.