Doubling Feature Releases & Cutting Tech Debt with Flutter for an eCommerce Leader

The Challenge

Slickdeals, a community-powered shopping platform where users find and share the best deals, relied heavily on its mobile apps as a primary channel for user engagement. But years of separate development across iOS and Android had created major hurdles. The team needed to reduce tech debt, deliver features more consistently, and keep critical monitoring tools intact. They found themselves struggling with:

  • Diverging Codebases: iOS had shifted from C to Swift, while Android moved from Java to Kotlin, creating parallel but mismatched foundations.

  • Inconsistent Feature Rollouts: iOS might ship an update weeks before Android (or vice versa), frustrating users and slowing innovation.

  • Maintaining Performance & Reliability: while carrying the weight of accumulated technical debt.

  • Observability: Keeping existing tools, like Embrace, was non-negotiable—and they had to be supported in any new framework to avoid losing visibility into crashes and user behavior.

  • Efficiency: Separate native teams and processes meant duplicated effort for every feature or fix.

Our Solution

Slickdeals needed a bold but sustainable approach to unify its mobile development. After evaluating options, the company made a strategic decision to migrate to Flutter while preserving its critical observability stack. This required both the right technology and the right partners.

  • Conducting a “bake-off” evaluation between React Native and Flutter, to confirm Flutter’s stronger long-term sustainability, consistent tooling, and active community.

  • Gradually migrating functionality, beginning with foundational components, incrementally expanding to full Flutter implementations, and temporarily wrapping certain native features.

  • Adopting a philosophy of writing clean, maintainable, “boring” code—prioritizing clarity and sustainability over complexity.

  • Committing to robust quality practices, achieving around 80% automated test coverage for Dart code, while leveraging Embrace observability to continuously monitor app health and user behavior.

"Organizations with apps as a central part of their business models are increasingly needing to re-evaluate their traditional approach of a native app on both iOS and Android. We wanted to take a page out of the world of video games, and leverage one platform to deploy both of our app experiences. It's much better to get a scalable platform for about half the work, so that we can really focus on the user's experience, not just implementation.” -Christopher Gulliver, Director of Engineering, Slickdeals

How We Did It

Once the strategy was set, Slickdeals, VGV, and Embrace focused on disciplined execution. The migration unfolded incrementally, with careful attention to risk, quality, and team alignment.

  • A proof of concept for the Embrace Flutter SDK was rapidly developed and tested, reaching beta within three weeks.

  • Migration began with core app foundations and gradually expanded to full features, bridging native components only when absolutely necessary.

  • iOS and Android engineers adopted shared workflows, tools, and state management practices, breaking down long-standing silos.

  • Code quality was emphasized through clean, maintainable patterns and ~80% automated test coverage in Dart.

  • Continuous observability ensured by Embrace allowed the team to monitor performance, crashes, and user experience throughout the migration.

"When we brought Very Good Ventures on to help us migrate from the native apps to Flutter, they were team members for all intents and purposes. When they joined, we onboarded them like team members, they were in all of our team calls, and they shared in our team culture. We made sure they were comfortable in that space. At one point, I asked one of my team members for their opinion on how the integration was going, and they said, 'I don't know where our team ends and their team begins.'" -Christopher Gulliver, Director of Engineering, Slickdeals

The Results

The transition to Flutter reshaped Slickdeals’ mobile development, enabling faster releases, stronger team alignment, and a scalable foundation for future growth.

  • Feature release velocity doubled thanks to a unified codebase and streamlined workflows.

  • Technical debt was significantly reduced by replacing duplicated platform-specific code with cross-platform implementations.

  • iOS and Android users now receive features and updates simultaneously, improving consistency and user experience.

  • A custom Flutter SDK for Embrace preserved full observability into performance, crashes, and user behavior.

  • High test coverage and a cleaner architecture created a more resilient and maintainable codebase.

About Slickdeals

Slickdeals has spent more than 20 years as a community of real shoppers helping other shoppers find, evaluate and share the most up-to-date online deals and coupons from all the top retailers. It has the dual distinction of being both a trusted, long-tenured business and a born-digital company, reaching its audience through its website, browser extension and its popular mobile app.

The usability and experience of that app are absolutely essential for the success of Slickdeals as a brand — maintaining a loyal audience today requires online brands to be mobile-friendly. The Slickdeals team therefore always needs to have quick and efficient workflows and processes in place to deliver bug fixes or new features to the app.

"Organizations with apps as a central part of their business models are increasingly needing to re-evaluate their traditional approach of a native app on both iOS and Android" said Slickdeals Director of Engineering Christopher Gulliver. "For some projects, a native app is unavoidable, but I've found that is becoming increasingly rare. We wanted to take a page out of the world of video games, and leverage one platform to deploy both of our app experiences. It's much better to get a scalable platform for about half the work, so that we can really focus on the user's experience, not just implementation.

Development Divisions and Difficulties

The Slickdeals app has changed and evolved several times since its initial launch. Both versions of the app had changed languages at various points, with the iOS version migrating from C to Swift and the Android version changing from Java to Kotlin.

Over time, the app accumulated tech debt. Team changes, development strategy shifts, and other choices through the years made it difficult for Slickdeals to efficiently roll out new code.

Under the most recent development process, the iOS and Android teams were each free to create features and bug fixes, which opened up speed and functionality gaps. One team would almost always roll out a new update before the other, thwarting the company's desire for day-and-date updates and a cohesive experience for users.

"We always struggled to do that simultaneous release," said Gulliver. "One team would be really focused on how to do things right, whereas the other team would be pretty clever and do it quickly. Both had their trade-offs and I wanted to grab both those strengths associated with those trade-offs and bring them into a unified team."

Understanding that the split between teams and methodologies was unsustainable, Slickdeals searched for a way to unify its codebase. This process came with some non-negotiables. For example, the mobile monitoring and observability platform Embrace had become an essential tool for Slickdeals' engineers, so any proposed solution would need to include Embrace support.

Moving Forward With Flutter

The Slickdeals team performed due diligence, assessing potential multi-platform frameworks that could enable the unification of its app codebase going forward. In the end, the decision came down to a choice between Flutter and React Native.

The decision to go with Flutter was largely tied to trends and sentiments in the development space. Flutter has a strong reputation among developers. Since the framework's introduction, companies and their engineers have been gravitating toward Flutter, giving it a feeling of positive momentum. Considering that some of a platform's strength comes from its ability to sustain an active community of users and feature developers, this positive sentiment has a positive material impact.

"We were looking for a platform that we could leverage and sustain for 5+ years," Gulliver explained. "When we looked at the numbers it was clear that React Native was losing ground, and the traction Flutter was making was astounding. The community was vibrant and exciting, and more than that, they seemed to be solving a lot of the challenges the other cross-platform efforts struggled with."

Changing to a whole new multi-platform development paradigm is a major shift, and is best handled with an expert partner. Slickdeals chose Very Good Ventures for this role because of VGV's core values: A commitment to simplicity in both codebase and development practices, as well as a dedication to doing things the right way.

"We were sitting on a mountain of tech debt. We wanted to make sure that if we were going to be doing the effort of effectively porting features, not code, to Flutter, that we were writing the new code correctly. That's where a lot of the core values that Very Good Ventures had resonated with us," Gulliver observed.

There was one complication: Embrace, the tool Slickdeals' engineers needed for visibility, was not compatible with Flutter. This quickly turned into an opportunity. Introduced by Slickdeals, VGV and Embrace began collaborating on an Embrace Flutter SDK.

"The real power of Embrace is being able to dig in and understand what's causing the crash — what was the call stack — in a human-readable way," said Gulliver. "How often is this happening? When a user experiences it, what were they doing beforehand? You're really getting that full in-depth picture of what's happening. We've been using that for a long time. One of the things we were looking at when we were evaluating Flutter as a whole is: Do our existing services have a path to Flutter?"

The Embrace team was eager to expand their tooling capabilities to Flutter, and dove into the project. Embrace created a proof of concept for the SDK, and in three weeks, VGV made changes to get the POC in line with its best practices, getting the new version into beta in approximately three weeks.

"Very Good Ventures was very responsive to anything that came up, and made sure to get our take on what the API would probably look like and the important parts that we needed up front, and then down prioritizing the little things that could wait until a bit later," Gulliver said.

With Embrace support now available, the project could turn to its main focus: Moving the many features of the Slickdeals app to Flutter. These features shifted on a gradual schedule as they started with the foundation. They wanted to make sure initialization and core components were done right. Some features needed to remain native, at least for the moment, and were wrapped in Flutter code to become part of the new multi-platform ecosystem. The flexibility and benefits of Flutter quickly became apparent.

It wasn’t all a smooth journey, and they’re still not quite done yet. Slickdeals has faced several challenges throughout the process as the team size and composition shifted, and the implications of some early decisions became clear.

“Platform views are certainly a trade off. In some ways they’re a super power, they give you the ability to lift the entire native experience and wrap them in what amounts to a Flutter widget. To apply a popular quote; with great power comes great responsibility. Looking back, I wish we would have used less platform views to get the app out. The legacy code often required some interesting and time consuming contracts for the platform views to function properly due to the complexity of the underlying native code. This ended up costing us more time than a port would have” Gulliver reflects, “If I had to offer one piece of advice, it would be to seriously consider committing to porting the view to Flutter from the outset, especially if there’s any possibility that an external request might force you to go back and update native code.”

A few developers had difficulties leaning into the change from native to Flutter and they found themselves less able to contribute. Flutter, like any other opportunity, you get out of it what you put into it.  “Flutter is not a silver bullet, but it’s the closest thing we’ve found so far,” shared Gulliver.

A Steady Stream of Backend Improvements

Throughout the process of collaboration with Very Good Ventures, the Slickdeals team found it easy to collaborate with the external experts — the groups quickly learned to act as one.

"When we brought Very Good Ventures on to help us migrate from the native apps to Flutter, they were team members for all intents and purposes. When they joined, we onboarded them like team members, they were in all of our team calls, and they shared in our team culture. We made sure they were comfortable in that space," Gulliver explained. "At one point, I asked one of my team members for their opinion on how the integration was going, and they said, 'I don't know where our team ends and their team begins.'" 

Working on the Slickdeals app is now significantly simpler than it was in the era of uneven parallel development. As it is, the newly-unified development team is benefiting from using one tool for key processes such as state management.

The Slickdeals engineers are achieving important benchmarks, such as implementing a new standard of 80% automated test coverage for dart code. In addition to these improvements, there are plenty of familiar factors still in play, including Embrace — the monitoring and observability platform is still providing a comprehensive, efficient view of the codebase.

In fact, with the new Embrace SDK, the tool has become a fully featured part of the Flutter ecosystem, reaching not just Slickdeals but any organization that wants to use it. The SDK incorporates learnings from similar Flutter packages to make it easy for engineers to use, while also using APIs to deliver key  features such as page view and moment tracking, allowing it to serve as a go-to tool for Flutter development.

The internal Slickdeals team, once split between iOS and Android, can now work as a unified team. The split during the native-development era involved one team that embraced "clever" methods and one that skewed "cautious." One team would deploy new features to production first, while the other was slower, but with more stability. By merging the teams and empowering them with a new set of norms and best practices, Slickdeals is able to get the best of both worlds.

The developers are now full participants in the rich Flutter ecosystem, with all the solutions, actions, APIs and plugins that come along. The Slickdeals app is poised to remain the company's go-to touchpoint for years to come.

“We are thankful for the partnership we formed with VGV. They were always there for us, helping to train our team and adjust team size or composition based on our needs. They were even there months after our contract ended, willing to help out in any way they could. Our teams bonded in a way I’ve never seen with an outside agency.” Gulliver shared.

A future with Less Tech Debt

Freed from the added costs and delays associated with unchecked tech debt, the Slickdeals team is free to innovate. All new developers are being trained in Dart and Flutter best practices. The code they create will be healthy, simple and "boring," preventing too much complexity from creeping in.

"They're not only learning Dart, they're also learning 'These are the core pillars of good architecture, and these are solutions to the common problems you have to deal with.'" said Gulliver. He added that "With Very Good Ventures already being experts, they were able to start down that path at a run as our team started to ramp in it and learn, and eventually they caught up."

The Slickdeals app is in a strong position now, complete with the ecosystem maturity it needed and with a well-maintained multi-platform development process and monitoring system. Engineer behaviors and skills on the combined team have leveled up, and more features are moving to the Flutter platform to open a path to a fully multi-platform future.

“With the speed of iteration happening on the Flutter platform, we’re really excited to see where it will lead.” Gulliver considered.

Organizations of all sizes and across industries are feeling the same kinds of pressure that moved Slickdeals to make changes, facing tech debt and wanting to merge their separate development teams. The way it has always been done is no longer the only path toward a high-quality user experience.

To find out if a similar solution could help your company, contact Very Good Ventures' experts.

Industry
E-Commerce
Project Type
Native to Flutter Migration
VGV Services
Engineering
Program Management
Doubling Feature Releases & Cutting Tech Debt with Flutter for an eCommerce Leader

More Success Stories

Streamlining Development, Improving Efficiency & Increasing Revenue for an Amusement Park Leader

How VGV helped Universal Destinations & Experiences unify web and mobile experiences, streamline food ordering, and increase revenue across parks with Flutter.

No items found.

Transforming a 5-Star Air Carrier’s Digital Experience for Growth

Empowering JSX to own its digital future with a scalable Flutter app, modern UX, and seamless Navitaire integration.

No items found.

Elevating NASCAR’s VIP Experience: Driving Engagement, Sponsor Value & Scalable Growth

Redefining Trackhouse’s VIP pit box experience with real-time insights, sponsor engagement, and an on-site digital ecosystem that worked without the cloud.

No items found.