In 2019, Ryan O’Connor was a mere university student when he started exploring the world of Korean popular music, or K-pop. One of the areas within the K-pop fan ecosystem that caught his interest was the concept of photo cards. For those new to the K-pop community, K-pop photo cards are artist-specific collectible cards that are possessed and traded similarly to sports or Pokemon trading cards. These photo cards are produced and distributed by K-pop record labels and have developed a substantial interest and following over the last few years.
As Ryan immersed himself more in this ecosystem, he observed that the K-pop community needed a platform that helped them track, manage, and share their photo cards. Being a developer, Ryan decided to take on this challenge and thus began the journey of his product for K-pop photo card management, K-Collect.
Challenges faced with product development
In 2019, the first iteration of K-Collect, an application that lets you find new artists, organize music collections, track orders, and show off K-Pop photo cards, was developed. However, K-Collect’s choice of technology stack led them to face multiple challenges.
Knowledge gaps around building mobile apps and backend
Initially, K-Collect built native mobile applications for their product's client-side apps and a Node.js + Express API for the server-side app. The decision to develop mobile apps was made due to the high number of mobile app users in the K-pop ecosystem. However, Ryan happened to be a web developer by skills and trade. His lack of experience with native mobile applications and server-side apps led to several problems, such as:
State management on Android and iOS,
Cache handling and invalidation in mobile apps,
Sustaining high concurrency in Node.js APIs,
Managing database bottlenecks and overloading,
Backend API security, etc.
Cost of managing application infrastructure
Since K-Collect was building a proprietary server-side solution, it had to maintain and manage its infrastructure, featuring servers for its API, storage, and database. The various moving parts of the application led to the necessity of costly infrastructure to sustain even a small mass of consumers. This created a substantial financial burden for the product in the pre-revenue stage.
To decrease these costs and remove the burden of building an efficient and secure backend, K-Collect started exploring Backend-as-a-Service (BaaS) platforms to implement a solution. They tried various options, including established BaaS platforms like Firebase; however, expensive pricing structures and the lack of transparency in the underlying code prevented them from implementing the same.
The power of an entire team
Eventually, to increase K-Collect users' access to desktop-based clients and enable them to leverage their existing skill set, they pivoted to developing a SaaS-like web platform built with Next.js in January 2023. It was at this point that Appwrite was discovered. Adopting Appwrite provided several benefits:
Abundance of features impacting the product
One of the most important aspects of any BaaS platform is the features and offerings it provides a developer. Appwrite was a boon for K-Collect, as it offered several features for their product. Currently, K-Collect is leveraging Appwrite Authentication to manage identity (and relevant functionalities) for the entire web platform. All information related to K-pop albums, stars, and photo card metadata that K-Collect uses is stored in Appwrite Databases. The photo cards themselves are stored and consumed through Appwrite Storage. K-Collect also implements Appwrite Functions to integrate external 3rd-party services (such as sending emails) and other event-driven tasks related to the other Appwrite offerings being used.
At the moment, Ryan is developing an internal trading platform that will allow users to communicate with each other and buy/sell photo cards. For these features, Ryan will be returning to Appwrite Functions for transaction management with a payments gateway and using a combination of Appwrite Databases and Appwrite Realtime for an internal chat platform.
Improved developer productivity due to easy SDK access
Transitioning to Next.js made the K-Collect codebase consistent with one primary programming language, JavaScript. Since Appwrite offers SDKs for both JavaScript/TypeScript-based web applications and Node.js-based server-side applications with consistent interfaces, Ryan swiftly and smoothly transitioned his application from native mobile apps to a web platform.
Additionally, having to not focus on developing a proprietary backend allowed Ryan to focus on new application functionality (such as the upcoming trading platform), improving the application’s user interface and experience, as well as building a team of 30 contributors who help with research and aggregation of upcoming K-pop music albums to maintain a release calendar.
Decrease infrastructure costs by ~700%
In an internal meeting with the Appwrite team, Ryan shared that initially, with K-Collect’s initial proprietary solution, even after having implemented database replication and sharding with read-only nodes for a more reliable and scalable architecture, K-Collect’s infrastructure was costing them £2000 per month while still running into bottlenecks, which was unsustainable for him as the sole developer. Since switching to Appwrite, including costs for storage, bandwidth (3.5TB of bandwidth served per month and 28 million monthly requests), and web app hosting, K-Collect’s infrastructural costs have decreased to £200-£300, which is approximately a 700% decrease in costs, while being able to triple their load-managing in terms of active users and helping scale total users to over 50,000.
Conclusion
Overall, Appwrite has helped substantially improve software performance for K-Collect while simplifying its application architecture, increasing cost savings, and helping the K-Collect team scale to over 50,000 users from scratch since January 2023. Ryan and K-Collect strongly recommend Appwrite Cloud to other developers and teams looking for a simple-to-implement, robust, cost-effective Backend-as-a-Service solution.
In Ryan's own words,
"The switch to using Appwrite brought infinite value that I'm still discovering today, but a major impact that it made was the amount of time and stress that it saved me as it simply just works. There's no struggling with writing backend code and working with databases, as that's already taken care of."
Learn more about K-Collect by visiting their website, and connect with their founder, Ryan O’Connor, on Twitter and GitHub.