Building a service for a mobile first gaming community
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.
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.