Building a service for a mobile first gaming community

Swappo
Hungary
2-10
2023
3 months
6 mins to read
Example screens of Swappo app with the text Collect Connect Play
tech stack
Laravel logo laravel
React Native logo react native
TypeScript logo typescript
IGDB API logo igdb api

Connecting people through gaming

Gaming is a passion many people share, whether it is on PC, console, or mobile. The gaming industry as a whole is growing each year as more and more people grow up playing video games in some shape or form. Swappo is a mobile application meant to bring gamers together, encourage sharing their gaming experiences with friends, and save money while doing it. This was a rare project where we built a complete software service from the ground up with no constraints on creativity.

The concept

There were two defining feature sets for Swappo: friends and collections.

Collection manager

Give users an intuitive and semi-gamified way to manage their physical game disc collections digitally, tracking the whereabouts of games and the size of their prized collections.

Friend circles

Connect friends and allow them to see each other’s physical disc collection so they can exchange games easily. Users can open their friend circle, which means they are open to being a middleman between their unconnected friends for a disc exchange, increasing their disc pool exponentially.

Software design choices

Software architecture is often defined as “decisions that are hard to change in the future”. Greenfield startup projects often make the mistake of optimising for the grand vision of the stakeholders rather than the initial, more realistic uses of the system.

We work with startups and scaleups in a practical way. For example, we rarely suggest starting with a microservice architecture despite the vision being described as an infinitely scalable, globally available service serving millions of users daily. “We cross that bridge when we get to it” is a phrase we say often. This does not mean that we are negligent and don’t consider the future in our design choices; it simply means that we align software architectural decisions to the partner’s budget, current metrics and traction, realistic growth rate and project time constraints. The result is rarely a highly complex architecture with considerable maintenance costs.

Laravel as backend

Laravel is one of the most established web frameworks out there, with a toolset so robust you can barely find a problem that does not have an (opinionated) solution built right in. This makes it extremely powerful and effortless to work with. The problem domain itself was not particularly complex either; there was no need for specialised tools or programming languages. For those reasons, we built the entire web service and a REST API with Laravel 11.

React Native for cross-platform mobile development

Swappo is a mobile-first application with a web-based interface that is only planned for future releases. We made the decision to use a cross-platform development tool because:

  • The application is basically a feature-rich UI for the web service; there are no hardware-specific features, such as using the camera or Bluetooth connections.
  • Having a shared codebase for iOS and Android halved the scope and cost of the mobile app and made deployments a lot easier.
  • Performance was not a critical system characteristic.

Our framework of choice was React Native since the team had initial experiences with web-based UI frameworks like React and Vue.js.

Last-minute dark mode

During development, we only had a light-themed version of the design to work with. We were almost at the end of the development when we agreed we couldn’t launch the app without supporting dark mode.

With clever refactoring, we included switchable theme support for the app in a matter of hours, only requiring a replacement colour palette for the original colours and a handful of images tweaked for dark screens from our UI designer. With our solution, we only had to fine-tune a couple of components to perfect the final result.

Frictionless login for increased conversion

Building a social application is no small feat, and user acquisition and conversion are critical. We had this preconception of users being tired of signing up for the millionth time for a service, so we decided to make the sign-in process as frictionless as possible.

Among the many opportunities such as social login (google, apple, twitch, etc.), we decided to implement a magic link login where users receive a link to their email inbox, which gives them the opportunity for a single-use sign-in. This way, we not only made the login process more accessible than traditional username/password combinations, we deferred security responsibilities to the email providers, which not only saves cost but gives a smaller surface area for cyber attacks since the system does not store user passwords at all.

Seamless friend invitation system for user growth

Another big challenge for startups is growing the user base. We wanted a zero-cost way of building the user network and came up with the idea of implementing a friend invite system where users could send an invite to their friends by providing their email addresses.

We used deep links sent out as email invites. When users used such a link to register, the system automatically connected them to their invitee, so after successful registration, their game pool was immediately filled with the games of the friend who invited them.

IGDB as a game database

We needed a way to help users manage their game collections as quickly as possible without requiring them to manually fill out information about their games. We decided to use a third-party database where users can search for their game titles and add them to their collections.

We ended up with IGDB since they had the best quality of structured data we needed for the platform. Their API is totally free to use, but there is a catch: it is rate-limited to 4 requests per second.

Since Swappo is meant to be a community platform where high traffic can be expected, we didn’t want to risk being locked out of the API due to too many requests. For this reason, we only use IGDB when a user searches for games to extend their collections.

Anytime a game is added to a collection, a copy of all relevant data is made and created as a new entry in our database or updated if the game is already present. This allowed us to show game collections on most screens with lightning speed without worrying about rate limits.

The result

Designing a software system requires a considerable amount of experience and strategic thinking to avoid optimising for the wrong things, keep the scope within budget and deliver on schedule.

Swappo’s development took 2-3 months from concept to launch, with the most crucial features ready on day 0 and a few last-minute additions to make the user experience even greater.

Share this on

Url copied to clipboard.
Impact in numbers
3 months

From concept to delivered MVP

7.8k USD

Saved on game discs in the first month

673

Friend connections in the first three months

Swappo

Swappo's mission is to preserve physical game media and promote its benefits over digital formats. Their platform empowers gamers to connect, exchange physical game discs, and enjoy cost-effective gaming, fostering a community that values ownership and connection through physical collections.

Need a software team that can deliver?

Schedule a meeting with no commitment and let
us see if we can help you realise your vision.