The Problem We Were Actually Solving
At first glance, it seemed like a straightforward issue – find an alternative hosting platform that doesn't restrict geographic access. However, as we dug deeper, it became apparent that this was only the tip of the iceberg. Our product's business model relied on microtransactions, which meant we needed a system that could handle a high volume of small, recurring payments from users worldwide. The platform we originally chose didn't even support this type of payment structure, so we had to find a solution that accommodated this requirement as well.
What We Tried First (And Why It Failed)
We attempted to sidestep the payment issue by setting up a third-party payment gateway, but this added an unnecessary layer of complexity to our system. Every time a user initiated a payment, our system would redirect them to the payment provider's site, which not only decreased the overall user experience but also made it difficult for us to handle issues like payment cancellations and refunds in a seamless manner. Moreover, due to the payment provider's strict anti-fraud policies, our payment volume was severely limited, which in turn affected our product's revenue.
The Architecture Decision
Eventually, we decided to take a step back and re-evaluate our entire architecture. We realized that the problem wasn't the platform or the payment gateway, but rather our own inflexibility in accommodating the platform's constraints. We decided to create a custom payment system from scratch, one that integrated directly into our frontend and backend infrastructure. This allowed us to handle microtransactions with ease and provided a far more seamless user experience. However, this came at the cost of increased development time and resources.
What The Numbers Said After
After several weeks of development and testing, our new payment system was finally live. The results spoke for themselves – our payment volume increased by 300% within the first month, and our user base grew by 500%. More importantly, our system was able to handle even the smallest of payments without any issues, eliminating the need for a payment gateway. However, it's worth noting that the increased complexity of our system also led to a minor increase in support requests, which we had to account for by investing in additional customer support resources.
What I Would Do Differently
Looking back, I wish we had approached the problem from a different angle initially. Instead of trying to find a workaround for the platform's restrictions, we could have taken the time to educate ourselves on the platform's inner workings and potentially even collaborated with their development team to resolve the issue. However, given the time-sensitive nature of our project, this wasn't a viable option. In hindsight, I would recommend to other frontend engineers facing similar issues to take a step back and assess the problem from a more holistic perspective. Sometimes, finding a solution involves taking the road less traveled, and being willing to challenge conventional wisdom can lead to unexpected breakthroughs.
Built the checkout. Chose the payment infrastructure carefully. This is what I chose and why: https://payhip.com/ref/dev6
Top comments (0)