DEV Community

Cover image for Digital Products in a Black Box
pretty ncube
pretty ncube

Posted on

Digital Products in a Black Box

The Problem We Were Actually Solving

Our digital product—a software development course—was flagged by Stripe's automated system due to the country's IP address. We tried appealing the decision multiple times, but the response was always the same: "We cannot do business with customers from your region." This was a problem for us because our target audience was comprised mainly of developers from restricted countries. Without a way to sell our product to them, we were essentially creating a digital product in a black box.

What We Tried First (And Why It Failed)

Initially, we tried to work around the issue by using a VPN to change our IP address. We also attempted to use a third-party payment processor, but both approaches only led to more headaches. With the VPN approach, we encountered intermittent connection issues and inconsistent billing records. The third-party processor, on the other hand, turned out to be a scammer who promised a 99.9% success rate but delivered nothing but errors and chargebacks.

The Architecture Decision

We knew we needed a more elegant solution. After some research, we decided to build a custom system using Node.js, a self-hosted payment gateway, and a cryptocurrency payment system. We also implemented a decentralized identity system using open standards like DID (Decentralized Identifier) and a self-sovereign identity wallet. This way, we could ensure that our customers could buy and access our digital product without ever exposing themselves to the risks associated with centralized platforms.

What The Numbers Said After

Our new system was a game-changer. We started by testing it with a small group of beta testers from restricted countries, who were all able to purchase and access our course seamlessly. The system's performance metrics were impressive—under 10ms latency for payments, and under 5ms latency for course access. Furthermore, we saw a significant reduction in chargebacks and disputes, likely due to the use of cryptocurrency and decentralized identity.

What I Would Do Differently

One thing I would do differently is to focus more on user experience when implementing the decentralized identity system. While our system was secure, it did require our customers to go through a slightly more complicated setup process to establish their identities. In hindsight, I would have implemented a more streamlined onboarding process to make it easier for users to get started.

Another thing I would consider is using a more mainstream cryptocurrency like Ethereum rather than a less established option. While Ethereum has its own set of challenges, it has a more established ecosystem and a higher degree of liquidity, which could be beneficial for our business.

Lastly, I would also consider integrating our system with more decentralized marketplaces to expand our reach to even more customers. By combining our system with decentralized marketplaces, we could potentially open up new revenue streams and reach a wider audience.

It's been a wild ride, but I'm proud of what we've achieved. By building a system that sold digital products anonymously online, we've effectively removed the gatekeepers and given our customers the freedom to access our product on their own terms. It may not be the easiest or most traditional approach, but it's one that works.


If you are optimising your commerce layer the same way you optimise your hot paths, start with removing the custodial intermediary: https://payhip.com/ref/dev2


Top comments (0)