EGGY

Universal work & life admin app for enterprises/SME's and their employees

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

Summary


Eggy is a universal work & life admin app for enterprises/SME's and their employees that helps users stay organized and efficient.

Our development team operated in a full-stack capacity, taking responsibility for both the front-end and back-end aspects of the project.

The Eggy app utilizes a powerful tech stack, consisting of Flutter, MongoDB, the AWS Serverless Framework, and TypeScript.

This combination offers numerous advantages that contribute to the app's overall performance, scalability, and flexibility.

Summary Section line

select languages:

Dart, TypeScript

location:

Australia

technologies:

Flutter, MongoDB, AWS

year:

2023
image grid

Background

The idea for the Eggy app originated from a personal experience that co-founders Kate Morgan and Kirk Reynoldson (former National Rugby League star) faced when they received a substantial fine for forgetting to renew their family's car registration.

This led them to create a startup, became proud Startmate alumni, and one of the fastest growing fam- and worktech companies in Australia and New Zealand.

Eggy’s vision is to simplify life administration by providing suggested categories for organizing information while also allowing users the flexibility to customize their system.
Creating complex applications like Uber or Lyft requires a significant investment of time and resources. But the work doesn't end with the initial launch - ongoing testing is critical to ensure these apps continue to run smoothly and meet the needs of their ever-growing user bases.That's where Flank comes in. The powerful testing helper tool works with Firebase Test Lab and enables parallelizing a massive number of tests, drastically speeding up the testing process and ensuring that new features are ready for prime time.Though, Flank was missing a graphical user interface (GUI), making it difficult to monitor and analyze testing results with ease.
  • No-code

    Webflow is a no-code platform with an easy entry threshold. It means that even non-technical specialists may edit any part of the web page.
  • Faster path to launch

    Instead of pulling software engineers from product work, the marketing, and design team can implement all the key ideas on the landing page.
  • Great SEO Support

    Webflow provides the ability to specify semantic details that search engine indexing bots can easily parse.

In Media

Request

main task

Eggy was looking for engineers who were outstanding team members and could fit straight into their agile development project management delivery rhythms. This included high levels of effective communication.

Accurate project estimation, combined with proven sprint delivery was essential for budgeting purposes, and to deliver confidence with stakeholders. This supported our speed to market and ability to allocate resources efficiently.

Engineers who could work autonomously and lead discovery on new POC projects so we could get initial concepts to market asap to test & validate. The ability to think laterally around project use cases using our tech stack was essential.

Engineers with an ability to use an ‘easiest implementation’ approach to leverage business efficiencies, avoiding ‘rabbit holes’ at all costs

High level of transparency and communication around tracking weekly tasks, projects and hours for team members to support budget deliverables.

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
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 application development.

Delivery of Eggy Work mobile workforce use cases leveraging API integrations for partner and customer worktech.Project discovery scopes for new concepts using worktech integrations to optimise UX/UI experience

We used an existing stack that included MongoDB for data storage and retrieval, AWS Serverless Framework for serverless computing, and TypeScript for efficient and type-safe backend development.

Our main technical components: Flutter, MongoDB, AWS Serverless Framework, and Firebase.
Why Flutter?

Flutter is one of the few technologies that allow to create and test an MVP as quickly as possible. It was very important for gaining initial traction and showing it to potential investors, in the context of the client’s request.
  • Widgets

    Using Flutter's widget system, we can create reusable UI parts, like headers and sidebars, ensuring consistent design.
  • Clear UX

    We can ensure a consistent and cohesive user experience across different platforms. Users will feel familiar with the app's interface and navigation, regardless of their device.
  • App Maintenance

    The app's main functionalities, such as user authentication and data handling, stay the same across platforms with Flutter. Even if authentication methods vary, we can keep a single logic for all platforms, making maintenance easier.
  • Integration

    Flutter also helps integrate calendar services like Apple, Google, and Outlook into our apps with less effort.
Why MongoDB?
  • Scalability

    MongoDB is known for its scalability, allowing apps to handle growing amounts of data without sacrificing performance. Combined with the serverless architecture provided by AWS, the app can easily scale up or down based on demand, ensuring a seamless user experience.
  • Flexibility

    MongoDB's flexible document-based data model is well-suited for mobile app development. It’s possible to store and retrieve complex data structures easily, accommodating the diverse needs of the app.
Why AWS?
  • The AWS Serverless Framework eliminates the need to manage and provision servers, reducing operational overhead. It automatically scales resources based on demand, and gives the possibility to focus on app development rather than infrastructure management.
  • AWS offers various backend services that seamlessly handle databases, user management, and file storage.
  • AWS gives the possibility for the Flutter app to interact with a backend via an API.
Why TypeScript?
  • TypeScript brings the benefits of strong typing and enhanced tooling for backend development. It improves code maintainability, catches errors at compile-time, and enables better developer collaboration.
  • The existing team had a good knowledge of TypeScript and already used it.
Why Firebase?
  • Authentication

    The app offers multiple authentication methods to users, including Apple Sign-In, Google Sign-In, and traditional email/password authentication. This provides users with flexibility and convenience when accessing the app.
  • Firebase Messaging

    Through Cloud Messaging we configure and send targeted messages to users across various platforms, including iOS, Android, and web applications, helping to engage and retain users with timely and personalized notifications.
  • Dynamic Links

    Firebase Dynamic Links are employed to create and manage deep links within the app. These links direct users to specific content or actions, enhancing user engagement and facilitating seamless navigation within the app.
  • Firebase Functions

    Firebase Cloud Functions are deployed to execute server-side logic triggered by various app events, such as user account creation or deletion.
  • Analytics

    Firebase Analytics is integrated into the app to gather insights into user behavior, app performance, and engagement metrics.
  • Hosting

    Firebase Hosting is utilized to host the Flutter web app, providing users with a fast and reliable web experience.

Deliverables

Our team helped to develop two mobile apps for iOS and Android platforms and a web app.

We integrated and configured RevenueCat payments for a smooth transition for users who want to use the Pro version of the Eggy application.

The engineering team has configured the integrated MongoDB and AWS.

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.

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

Eggy's mobile and web apps, built with Flutter, launched successfully in Australia, New Zealand, and the USA. Here are the current results of the Eggy and Solid Software collaboration:
Number of users:
40K
The number of apps:
3
App Store rating:
4.5
Countries:
3
Final thoughts

Startups depend on how quickly they can move and adapt to the market. Speed is one of the major factors in deciding whether a startup will be successful or not.

It's crucial to be lean with technology. Cross-platform tools and a single programming language can streamline development, saving time and resources.

By leveraging frameworks like Flutter, which utilizes a single codebase for both iOS, Android and Web, it’s possible to get products to market faster.

That’s why Flutter is an ideal choice for startups to implement their vision and ideas.

year:
2023
solid software.
cross lines
comment photo
Kate Morgan, PhD
Founder & Co-CEO

"Trust & confidence only comes from successful execution & delivery as a team. Working together through challenges in implementation and improving your process. Solid Software has been 100% committed in understanding our processes and delivering a product that meets stakeholder expectations. We always trust Solid Software to deliver the solution we need."

comment photo
Kirk Reynoldson
Founder & Co-CEO

"We wouldn’t be in market if it weren’t for Solid Software. They’ve exceeded all our project expectations, and more importantly, will be our tech partner pushing forward as we execute our long term mission to the world. They’ve given us the confidence to deliver a high quality product that our customers love using. They’re fast. They’re efficient. But more importantly, they’re one of us now. They’re ‘Team Eggy’!"

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.