RSpace Blog

July 8, 2025

Typescript Migration Complete!

Open source

Download attachment

associated with this post

At ResearchSpace, we maintain a firm commitment to the principle that infrastructure maintenance and technological advancement are equally critical to new feature development. While organizations often prioritize customer-facing enhancements, we recognize that strategic investment in our underlying technology architecture is fundamental to sustained product excellence, operational efficiency, and optimal user experience delivery.

We are currently executing a comprehensive platform modernization program, implementing a transition to a responsive, accessible framework leveraging React and TypeScript technologies. This systematic methodology for addressing technical debt ensures that our existing capabilities and future innovations benefit from contemporary development standards, improved maintainability, and compliance with modern accessibility requirements. Our commitment to accessibility is reflected in our documentation and the comprehensive self-assessment we've conducted to ensure our platform meets the highest standards of inclusive design.

A key element of this broader strategic initiative involved the migration of our established FlowJS codebase to TypeScript—a project that exemplifies how thoughtful planning can facilitate significant architectural transformations while preserving operational continuity. This migration also serves to lower the barrier for open source contributions, as TypeScript's widespread adoption in the development community makes it easier for external open-source contributors to understand and contribute to our codebase.

Background

Our development team had utilized FlowJS type annotations throughout our JavaScript infrastructure for the last five years. Type annotations explicitly annotate what types of data will be received and produced by functions in the code, making them more robust and easier to test. This implementation proved highly effective, facilitating early defect detection while maintaining confidence during refactoring processes and ensuring code predictability and comprehensive documentation. However, the broader development ecosystem has experienced a substantial shift toward TypeScript as the industry standard for statically-typed frontend development. As a result, TypeScript delivers superior library type definitions in addition to enhanced tooling capabilities and improved compatibility with contemporary development environments, and in particular AI-assisted coding platforms will have been trained primarily on TypeScript codebases at this point. This migration aligned naturally with our comprehensive modernization strategy.

Methodology

The primary operational constraint involved maintaining development velocity. With a rapidly evolving product, suspending feature development for an extended migration timeline was not strategically viable. As such, the approach we adopted was to leverage a fundamental technical insight: both FlowJS and TypeScript ultimately compile to JavaScript, with webpack managing type elimination during the build process. This capability enabled us to run both type systems concurrently throughout the migration period.

To preserve type safety across the hybrid codebase, we configured Flow to recognize TypeScript modules through library declaration files. This methodology enabled FlowJS components to import TypeScript modules while maintaining comprehensive type checking throughout the migration process. We progressively migrated the codebase from the leaves of the module dependency graph to the webpack entry points, creating a systematic wave of migration across the entire codebase. Each migrated module incorporated a corresponding FlowJS declaration file, ensuring continued type safety for unmigrated code utilizing these components, thereby maintaining a stable development environment throughout the transition period. This wave-based methodology enabled our development team to continue implementing new features in FlowJS while systematically converting the existing codebase.

Multiple technological tools accelerated our implementation timeline, including dependency analysis utilities for identifying migration candidates alongside AI-powered development environments that facilitated parallel processing capabilities. Our approach leveraged Anthropic's Claude model, focusing on developing sophisticated migration instructions through systematic feedback cycles rather than pursuing generalized automation. After approximately three days of methodical prompt engineering—incorporating detailed examples of FlowJS patterns with TypeScript equivalents and codebase-specific requirements—Claude achieved proficiency in migrating complete files with minimal human intervention. To maximize efficiency, we used git worktrees, enabling simultaneous migration processes across independent sections of the dependency graph, transforming a potentially months-long manual endeavor into a streamlined workflow that processed multiple files simultaneously. These optimization strategies collectively reduced our overall timeline by at least a month.

The result

This migration success validates our comprehensive technical philosophy: through systematic approaches to technical debt, modernization initiatives, plus platform evolution, we position our platform for sustained growth while ensuring our development organization possesses the necessary tools and technologies to deliver high-quality features efficiently. This investment in our technical infrastructure ultimately translates to enhanced developer productivity and expedited delivery of the innovations our users require.

Robert Lamacraft

RSpace is an open-source platform that orchestrates research workflows into FAIR data management ecosystems: request a demo or contact us to learn more.

July 1, 2025

Bridging Experimental Documentation and Computational Analysis: RSpace & Galaxy

Integrations

Together with the Galaxy Europe team at University of Freiburg we have integrated RSpace and Galaxy to eliminate manual data transfer between research documentation and computational analysis. Researchers can now browse and import files directly from RSpace Gallery into Galaxy workflows, reducing errors and saving time. Available in Galaxy version 25.0, this integration is the first step toward executing Galaxy workflows directly from within RSpace.

Read more

July 1, 2025

DMPTool - RSpace ELN - Dataverse Integration Video

Integrations

We've recorded a new video demonstrating our DMPTool - RSpace ELN - Dataverse flow!

Read more

April 17, 2025

RSpace Transitions to Open-Source Chemistry Tools

Open source

RSpace has transitioned to open-source chemistry tools in version 1.108, replacing Marvin with Ketcher for molecule rendering and integrating OpenBabel and Indigo for backend chemistry data management, ensuring full functionality and backward compatibility for users. This change aligns with RSpace's commitment to open-source principles, enabling more flexible development and potential community contributions to chemistry functionality. Users will experience a seamless update with all existing features preserved, including ChemDraw support and existing chemical structure compatibility. The ResearchSpace team is looking forward to expanding chemistry tools, with potential future improvements like advanced chemical calculations, database integrations, and enhanced data export capabilities. Customers can find the new tools active immediately in the latest release, with the team welcoming user feedback and suggestions for future developments.

Read more

February 26, 2025

The time is now! Vertical interoperability between research tools: an essential enabler for the FAIRification of data

Research Data Management

A post we've written for the FORCE 11 Upstream blog on the concept, importance, and challenges of vertical interoperability between research tools.

Read more