Building a Digital Product Store: Lessons from PrestigeWeb
We built a full e-commerce platform for digital products from scratch. Here is what we learned about payments, licensing, downloads, and everything that can go wrong.
Why We Built Our Own Store
When we decided to sell digital products — SubPilot, AI Studio, BillForge, BlitzFunnel — we had a choice. Use an off-the-shelf platform like Gumroad or Shopify, or build our own.
We chose to build because none of the existing platforms handled our specific requirements well: PayFast as the primary payment gateway, license key generation with tier-based encoding, Supabase as our database, and full control over the customer portal.
The Payment Flow That Took Three Iterations
PayFast uses a redirect-based payment flow. Sounds simple. It is not.
The first iteration had a race condition. The second failed to handle PayFast's IP whitelist correctly. The third finally worked reliably. The key insight was building the entire flow to be idempotent.
License Key Generation
For SubPilot, we needed a licensing system that encodes the product tier into the key itself. The format is SUBPILOT-PXXX-XXXX-XXXX-CHECK, where the first segment encodes the tier and the last four characters are a SHA256 checksum.
The Download System
Our approach uses Supabase Storage with signed URLs. When a customer clicks Download, we generate a time-limited signed URL valid for 60 minutes. We also log every download.
What We Would Do Differently
- Start with a simpler admin dashboard
- Build email templates earlier
- Test with real money sooner
The store is now live and processing orders reliably.