services
services
We code. You grow

We don’t just develop — we build with your business goals in mind. Let’s create solutions that drive real results.

Schedule a call
our work design portfolio
about us
about us
Team you can rely on

Senior engineers, proactive communication, and genuine responsibility — that’s who we are.

blog contact us
Fintech
Ruby on Rails
React Native
Mobile

Fintech migration: Flutter to React Native

Migrated a fintech mobile app from Flutter to React Native with Expo. In three months, we rebuilt the application, preserved its core functionality, and expanded the platform with onboarding, KYC, card management, and multi-source payment capabilities.

Web landing page for Kasheesh mobile app with a headline about combining up to five cards

Business context

Kasheesh is a U.S.-based fintech application that lets users split a single purchase across multiple credit, debit, and gift cards using a virtual card.

As the platform expanded, the client faced two growing challenges. The Flutter application was maintained by a single engineer, creating a dependency on one contributor for technical decisions and implementation. At the same time, introducing new functionality and financial integrations required additional effort to evaluate compatibility, research documentation, and implement supporting libraries.

The client chose to migrate the app to React Native to make ongoing development easier and reduce reliance on a single contributor.

Project in facts

  • Fintech
  • USA
  • 3 React Native developers, Fullstack developer, QA
  • July 2025 – ongoing
  • Ruby on Rails development, React Native development
  • Ruby on Rails, PostgreSQL, Firebase, React Native, Expo (SDK), TypeScript, Expo Router, Zustand
Request project

Challenge

Kasheesh’s growth was constrained by its mobile development setup. The Flutter application had become heavily dependent on a single contributor. As a result, technical knowledge, implementation decisions, and development planning were not broadly shared across the team.

This created a single point of failure, reduced visibility into the product, and made it difficult to scale development efforts as the platform evolved and new functionality was introduced.

Product goals

  • Restore visibility and control over the mobile application
  • Expand the product with onboarding, KYC, card management, and wallet functionality
  • Integrate payment processing, bank account linking, and identity verification services

Solutions

We began with a code audit. The engineer who conducted the discovery phase stayed on as the project’s tech lead.

Our developers expanded the platform with a backend-driven onboarding, KYC flow, card management, wallets, advanced transaction filtering, and notifications. To support the product’s multi-source funding model, we integrated necessary fintech stack while keeping transaction rules configurable on the backend.

As the engagement evolved, we assumed QA ownership and initiated a frontend migration from Rails to Next.js using a Turborepo architecture to enable code sharing between mobile and web apps.

App rewrite

Rebuilt the app in React Native in 3 months, replacing Flutter with full feature parity.

Fintech ecosystem

Integrated Stripe, Plaid, Marqeta, and top banking APIs for multi-source funding.

QA & web migration

Took over QA and migrated the frontend to Next.js with Turborepo for shared code.

Engineering approach

The mobile app was rebuilt from Flutter to React Native with TypeScript and Expo.

We integrated Stripe for payment processing, Plaid for bank linking and identity verification, Marqeta for virtual card issuing, and Treasury Prime and Modern Treasury for banking operations. Together, these integrations support the product’s core capability of splitting a single purchase across multiple funding sources while keeping transaction rules configurable on the backend.

Automated deployment pipelines, Expo over-the-air updates, Firebase services, and dedicated QA preview builds provide a reliable development and release process for ongoing product evolution.

Kasheesh mobile application interface with an illustrative banner showing split-payment capability

Moving your mobile app from Flutter to React Native?

We rewrite legacy codebases, sync mobile apps with Rails backends, and transition your product to a shared team workflow.

Contact us

Business impact

Digital wallet interface showing a contactless payment transaction at a point-of-sale terminal

Restored visibility and control

By replacing the isolated Flutter with a stack aligned with the client’s Ruby on Rails ecosystem, the business eliminated dependency on a single engineer and improved visibility into development activities and technical decision-making.

Shared architecture across platforms

The migration of the web frontend to Next.js and the adoption of Turborepo created opportunities for code sharing between mobile and web applications.

Simplified application updates

By leveraging Expo over-the-air updates, the client can release updates to JavaScript code, UI components, and bug fixes without waiting for App Store or Google Play approvals.

Result

The mobile application was migrated from Flutter to React Native within three months while preserving the product’s core functionality.

  • Migration with zero downtime

    The mobile application was fully rewritten with full feature parity, giving the client improved development velocity and engineering transparency.
  • Expanded functionality

    Delivered a backend-driven onboarding and KYC system, card management, wallet capabilities, advanced transaction filtering, and notification integrations.
  • Multi-source payment infrastructure

    Deployed secure integrations with Stripe, Plaid, Marqeta, Treasury Prime, and Modern Treasury, allowing users to reliably split a single purchase across multiple funding sources.
Three-step onboarding screens explaining payment splitting alongside a five-star customer testimonial block

More cases

All cases