Bye Bye Button

Personal Safety & Social Escape App with Physical Hardware Trigger

Uber-like two-sided peer-to-peer freight platform
Flutter logoSupabase logoTS logo
Summary section grid picture

Summary

Bye Bye Button is a smart personal rescue app connected to a physical Bluetooth button, allowing users to discreetly simulate an incoming call to escape unwanted conversations.

Our development team operated in a full-stack capacity, delivering mobile applications for iOS and Android, building a comprehensive web admin panel, and managing the entire backend infrastructure.

The Bye Bye Button ecosystem utilizes a powerful tech stack, consisting of Flutter, Supabase, TypeScript, Bluetooth Low Energy (BLE), and RevenueCat.

This combination offers numerous advantages that contribute to the platform's overall performance, real-time responsiveness, and high reliability.

Summary Section line

select languages:

Dart, TypeScript

location:

USA

technologies:

Flutter, Supabase

year:

2026
image grid

Background

The idea for the Bye Bye Button originated from a familiar challenge faced by co-founders Dan and Adam: getting trapped in lengthy, unproductive conversations at conferences and networking events without a polite, discreet way to step away.

What started as a practical tool created between two friends to gracefully handle awkward interactions quickly evolved into a growing startup helping professionals and individuals regain control of their time and focus.

Bye Bye Button’s vision is to empower users in any social or business environment by providing a subtle, believable exit mechanism, delivering peace of mind with just a single click.

Request

main task

Bye Bye Button was looking for versatile, proactive engineers who could seamlessly integrate into their fast-paced agile development rhythms and take full ownership of complex engineering challenges. Maintained delivery predictability and budget control through rigorous scoping, continuous stakeholder alignment, and automated deployment pipelines.

The project required deep technical expertise across both software and hardware domains, spanning over-the-air firmware updates, reliable telephony and SMS integrations, and resilient background Bluetooth execution across mobile platforms.

Beyond technical execution, the client needed engineers who could work autonomously and rapidly lead proof-of-concept (POC) discoveries to validate new ideas and accelerate time-to-market. The ability to think laterally, adopt a pragmatic "easiest viable implementation" approach to maximize business efficiency, avoid technical "rabbit holes," and maintain transparent tracking of weekly progress and deliverables was essential to the project's overall success.

Scope of the project 


The scope of our project comprises two mobile apps (iOS and Android) with a follow-up web admin application development.

Delivery of core Bye Bye Button features included seamless BLE hardware pairing, reliable background event listening, automated phone call and SMS trigger services, in-app subscription monetisation, and over-the-air (OTA) device firmware management.

Our main technical components: Flutter, Supabase, TypeScript and Bluetooth Low Energy (BLE).
Flutter
Firebase
Why Flutter?
  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
    ‍
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
    ‍
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
    ‍
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
    ‍
Why Firebase?
‍
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
    ‍
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
    ‍
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
    ‍
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
    ‍
  • Firebase Cloud Messaging
    ‍
    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
‍
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
    ‍
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
    ‍
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.
    ‍

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

Scope of the project 

The scope of our project comprises two mobile apps (iOS and Android) with a follow-up web admin application development.

Delivery of core Bye Bye Button features included seamless BLE hardware pairing, reliable background event listening, automated phone call and SMS trigger services, in-app subscription monetisation, and over-the-air (OTA) device firmware management.

Our main technical components: Flutter, Supabase, TypeScript and Bluetooth Low Energy (BLE).

Why Flutter?
  • Rapid Time-to-Market

    Flutter allowed us to build, iterate, and validate the product with real users and stakeholders as quickly as possible. Having a single codebase was essential for maintaining high development velocity.
    ‍
  • Widgets & Reusable UI

    Using Flutter's flexible widget architecture, we created a polished, reusable component system ensuring design consistency across both iOS and Android.
    ‍
    ‍
  • Hardware & Native Integration

    Flutter easily integrates with low-level native platform APIs, allowing seamless communication with Bluetooth stacks and background services.
    ‍
Why Supabase?
‍
  • PostgreSQL Power & Reliability

    Supabase provides a battle-tested PostgreSQL database capable of handling growing user data and trigger logs with robust performance and Row Level Security (RLS).
    ‍
  • Authentication & Storage

    Supabase offers seamless out-of-the-box user authentication and secure storage for user assets and files.
Why TypeScript?
‍
  • Type Safety & Code Reliability

    TypeScript brings static typing and advanced autocomplete to backend logic and the web admin panel, significantly reducing runtime errors.
    ‍
Why Bluetooth Low Energy (BLE)?
‍
  • Ultra-Low Power Consumption

    BLE is essential for the physical key fob button, allowing a single replaceable coin-cell battery (CR2032) to last up to a full year of everyday use.
    ‍
  • Instant Responsiveness

    BLE ensures fast connection and minimal latency, translating a physical click into an immediate trigger on the companion device.
    ‍
  • Over-the-Air (OTA) Updates

    Enables secure wireless delivery of firmware updates to physical buttons already in users' hands, continuously improving device stability and features.
    ‍

Deliverables

Our team developed and delivered two cross-platform mobile applications for iOS and Android alongside a comprehensive web admin panel. In-app subscriptions and paywalls were powered by RevenueCat, giving users a frictionless path to premium features and seamless cross-platform billing.

To maximize user activation, we crafted an intuitive onboarding experience that smoothly walks new users through device pairing, essential OS permissions, and key feature discovery. The engineering team architected and integrated the backend infrastructure using Supabase and TypeScript, setting up PostgreSQL database schemas, authentication, and serverless Edge Functions for call and SMS triggering.

On the hardware side, we engineered a resilient Bluetooth Low Energy (BLE) bridge, enabling background event capture when the phone is locked alongside over-the-air (OTA) device firmware updates. Our team conducted extensive performance testing to ensure a smooth, instant user experience. We optimized Bluetooth connection latency, minimized battery impact, streamlined API requests, and optimized database queries for maximum responsiveness.

For continuous integration and delivery, we configured Codemagic to fully automate the build, code signing, and release deployment pipelines to the Apple App Store and Google Play Store.

Engineers created a suite of unit tests focused on testing various application components, including business logic in view models, logic within repositories, entity methods, and utility functions.

Our team conducted extensive performance testing to ensure smooth and responsive user experiences. We optimized app loading times, minimized network requests, and utilized database query optimization to improve overall performance.

As for continuous integration and delivery, we employed tools such as GitHub Actions and CodeMagic to automate the build and deployment process.

fluxx details imagefluxx details imagefluxx details imagefluxx details image

Prototypes, not presentations

Advertise a freight request and have your goods delivered quicker and cheaper using the Fluxx geolocational algorithm to match your delivery with a peer travelling to your location.

Subsidise your cost of travel and earn money by delivering freight to others on your route. Freight sizes are categorised, so no matter what you drive, there's something that you can carry.

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.
‍
Why Flutter?
‍

  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
    ‍
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
    ‍
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
    ‍
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
    ‍
Why Firebase?
‍
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
    ‍
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
    ‍
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
    ‍
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
    ‍
  • Firebase Cloud Messaging
    ‍
    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
‍
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
    ‍
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
    ‍
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.
    ‍

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

We configured and tested a couple of Firebase environments for development, testing and production. Created a set of security rules for Firebase to protect the data along with a set of security rules tests to ensure that they cover every possible scenario of how users can interact with the platform.

Our team configured a two-sided platform inside Stripe. We made custom integration using Firebase Cloud Functions between Firebase and Stripe (now Stripe has a special extension for Firebase that can speed up development even more).

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.
Flutter
Firebase
fluxx details imagefluxx details imagefluxx details image

Prototypes, not presentations

Advertise a freight request and have your goods delivered quicker and cheaper using the Fluxx geolocational algorithm to match your delivery with a peer travelling to your location.

Subsidise your cost of travel and earn money by delivering freight to others on your route. Freight sizes are categorised, so no matter what you drive, there's something that you can carry.

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.
‍
Why Flutter?
‍

  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
    ‍
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
    ‍
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
    ‍
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
    ‍
Why Firebase?
‍
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
    ‍
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
    ‍
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
    ‍
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
    ‍
  • Firebase Cloud Messaging
    ‍
    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
‍
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
    ‍
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
    ‍
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.
    ‍

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

We configured and tested a couple of Firebase environments for development, testing and production. Created a set of security rules for Firebase to protect the data along with a set of security rules tests to ensure that they cover every possible scenario of how users can interact with the platform.

Our team configured a two-sided platform inside Stripe. We made custom integration using Firebase Cloud Functions between Firebase and Stripe (now Stripe has a special extension for Firebase that can speed up development even more).

fluxx details imagefluxx details imagefluxx details imagefluxx details image

Prototypes, not presentations

Advertise a freight request and have your goods delivered quicker and cheaper using the Fluxx geolocational algorithm to match your delivery with a peer travelling to your location.

Subsidise your cost of travel and earn money by delivering freight to others on your route. Freight sizes are categorised, so no matter what you drive, there's something that you can carry.

Scope of the project 

The task was to create a two-sided peer-to-peer general freight platform that will match the user’s freight delivery requirements with someone heading to the user’s location. To test the client’s idea, we needed to create two apps: iOS and Android.

Our main technical decisions: Flutter, Firebase and Stripe.
‍
Why Flutter?
‍

  • The single code base for all platforms

    Gives an opportunity to build, test and deploy mobile applications for different platforms from a single codebase.
    ‍
  • Application performance

    Great performance because it compiles native code. While other cross-platform frameworks do not compile and/or have other restrictions that directly affect application performance.
    ‍
  • Ample UI features

    Everything is a widget and it comes up with a wide variety of high-quality pre-existing widgets that can easily be added to your app and create visually appealing apps that that most of the users like.
    ‍
  • Google Maps integration

    Google Maps has 99% coverage of the world and 1 billion monthly active users. That’s why we chose this map provider. With the Flutter plugin that provides a Google Maps widget, it was allowed to integrate it in no time.
    ‍
Why Firebase?
‍
  • Backend-as-a-service

    Firebase is the BaaS that provided us the possibility to not implement essential features like Authentication, Data storage, database, and push notifications and don’t spend time on various environments, their management, and scaling. So we didn’t need a separate backend team and fully concentrated on the Frontend part.
    ‍
  • Integrations

    Firebase provides a feature-rich client for Flutter that is easy to use and integrate. It gives a possibility to connect Flutter with all the services we needed: Cloud Firestore, Firebase Authentication, Firebase Cloud Messaging.
    ‍
  • Cloud Firestore

    We used Cloud Firestore because it’s a scalable database that allows real-time data exchange and data subscriptions for reactive UI updates.
    ‍
  • Authentication

    Firebase offers a simple and quick authentication process that allowed us to integrate authentication in our apps via Facebook, Google, and email sign-in.
    ‍
  • Firebase Cloud Messaging
    ‍
    This feature helps to configure push notifications on both platforms (Android and iOS) and implement important and necessary notifications such as informing about the acceptance of the request, successful completion of the order, and payment for it.
Why Stripe?
‍
  • Quality and Reliable Reputation

    Stripe is one of the leading solutions for internet payments worldwide. During the last few years over 100k businesses in Australia started using Stripe to proceed with their payment process. It’s one of the very few platforms that provides the possibility to create a two-sided peer-to-peer platform.
    ‍
  • Payment methods integration

    Allowed to accept cards (and potentially Apple Pay/Google Pay), and securely store payment data to make payments easily.
    ‍
  • Two-sided payments

    Stripe provides conditions under which the application collects payment and pays out only after a successfully completed order.
    ‍

Deliveries

We built mobile apps for iOS and Android platforms using the Flutter framework with perfect quality and performance. In this project, our state management was Redux, as it was used by the founding team engineers, and they had experience with it.

We configured and tested a couple of Firebase environments for development, testing and production. Created a set of security rules for Firebase to protect the data along with a set of security rules tests to ensure that they cover every possible scenario of how users can interact with the platform.

Our team configured a two-sided platform inside Stripe. We made custom integration using Firebase Cloud Functions between Firebase and Stripe (now Stripe has a special extension for Firebase that can speed up development even more).

cub line

Launch Success

Fluxx became a notable phenomenon in regional Australia: the mass media wrote several articles about it and, without any marketing efforts, the project's page on social networks received about 2 thousand fans in a short time. The demand was so great that in geo expansion we added 80 new towns.

apps:
2
components:
7
towns:
88
states:
2

Launch Success

Currently, Worklog is in its beta stage. With very low effort we received the first subscribers.

Launch Success

The Bye Bye Button mobile applications, built with Flutter, successfully launched on the Apple App Store and Google Play Store, providing users with a discreet, reliable way to navigate uncomfortable social and professional situations.

Here are the key results achieved through our collaboration:
Devices Activated:
1.3K+
Simulated Calls:
9.5K+
Views on TikTok:
2.9M+
SMS Messages Sent:
750+
Final thoughts

A startup’s success fundamentally relies on its ability to move fast, validate product hypotheses, and swiftly adapt to real-world user feedback. When building an ecosystem that bridges physical Bluetooth hardware, cross-platform mobile apps, and cloud backends, engineering agility becomes a decisive competitive edge.

Staying lean with technology is paramount. Modern cross-platform frameworks and a unified programming language eliminate redundant development efforts, saving vital time and financial resources.

By leveraging Flutter, we maintained a single, maintainable codebase across iOS, Android, and the web admin panel — enabling seamless low-level Bluetooth background execution, integrated subscription monetization, and rapid feature delivery.

That is why Flutter, coupled with scalable cloud services, is an ideal choice for startups seeking to turn innovative hardware-connected concepts into reliable, market-ready products.

year:
2026
solid software.
cross lines
comment photo
Adam Lamb
Engineer, Inventor, Serial Entrepreneur, Co-Founder & CEO of Bye Bye Button

"Working with IoT hardware requires extreme attention to detail, especially when dealing with Bluetooth connectivity, background state execution, and instant responsiveness. Solid Software brought both remarkable development speed and deep technical precision to the table. They tackled complex hardware-to-mobile challenges effortlessly while keeping our release cycles fast and predictable. If you're building a connected device product, Solid Software is the engineering partner you want in your corner."

Looking for your project done right?

next project

arrow icon
also you can:

Select languages

Dart

Technologies

Flutter, Firebase

check it out
arrow icon
Metrics

Metrics

Metrics is a set of software components to collect and review software project metrics like performance, build stability, and codebase quality.