THE JOURNEY IN BUILDING A TTRPG MARKETPLACE
FAIR FATE MARKETPLACE
Hello World, My name is Martin, and I'm currently solo-deving this project. I've made this blog section of the website mainly to keep track of all updates I'll be pushing out. Also, to have some accountability on my part (I also really, really, really wanted a neobrutalism blog). In this pilot, I'll be talking about these four points.
NAMING OF THIS PROJECT
First and foremost, the name! I had a few ideas, but none of them really embodied what I wanted to do for this project in particular. I came up with this pun reposiSTORY, a repo for stories. It was a pun, and I love puns. Unfortunately, it was geared towards developers more so than TTRPGs, so I was never really committed too the name for this project. Then came along an old college friend, Nick! We were discussing the current state of discovery for indie games and how it honestly is not all that great. As much as we enjoy scrolling through a "physical games" tag for something to try out or using a clunky, dated interface to navigate through years worth of RPGs. Then he suggested something along the themes of a fair die. A balanced market, where content that you want to actually see is easily accessible. You aren't pressured to have that "I need to do well in the first X amount of days or my game won't see the light of day" mentality. All the tools will be there to help you get started, and best of all, a community that will help you grow. Honestly, this is all super idealistic, and realistically, there will be a lot of pain and testing to see what's actually performant or not. Hopefully you guys will come along for the ride, because after all it's not about the journey or whatever, but the NAKAMAS YOU MAKE ALONG THE WAY.
FEATURES CURRENTLY BUILT
SEARCH, TAGGING, AND FILTERING ARCHITECTURE
I labelled this as one of the higher priority tasks that should be included in the MVP. In order to get the most out of tags, I decided to mimic Evernote's take on tags. Tags can have an overarching category that groups all of them together. Tags can also be sub-tags of other tags. Through these associations I will most likely be able to corroborate algorithms that will be utilized in crafting the feature people seem to want the most, the Discovery Queue. This is actually going to be the first feature I build after the MVP. Now... ON ANOTHER NOTE, I spent HOURS, HOUUUUURS!! writing out as many TAGS, GENRES, GAME SYSTEMS, PRODUCT TYPES, and FORMATS as I possibly could. Actually mind-numbing. I believe I'll need a line editor for these, though; I'll probably make a post soon.
SHOPPING CART AND PAYMENT FLOW
I mean nothing too special here regarding the cart. Interestingly enough, Stripe doesn't allow for multiple pay-what-you-want (pwyw) items in a transaction. I suppose it makes sense considering how their API works with price IDs and the interaction with a product (if it's a PWYW item, it uses payment links instead of selling an actual product). In any case, I made a workaround custom payment flow where the user puts the item into the cart, assigns the PWYW item's price, and then I assign the price ID object, and Stripe essentially treats it as a regular product, allowing you to purchase multiple PWYW products in one go. If I end up using Stripe Tax, you enter your zip code, and then it collects the correct tax amount based off your location (includes VAT/GST).
!IMPORTANT NOTE!
I am working with my tax partners in regard to if I can even collect and remit taxes if I just start out like this. Apparently I may need to hit economic nexus with EACH state or get close to it before they allow me to register to collect in that state. If that's the case, we will still automatically charge the tax, but you (the seller) will be in charge of remittance.
STRIPE INTEGRATION & ONBOARDING SELLERS
In order to make actual sales through the platform, you have to have a Stripe-connected account. Prior to that, though, you can still host your TTRPGs and offer them for free. But once you have a connected account through the onboarding flow, everything is submitted, and the documents are verified (on Stripe's side), you guys can go get that bread. Platform fees are sitting at 7%; 1%, however, goes towards a community pool, where maybe weekly or monthly, creators can vote on a project to fund using this pool! The other 1% goes towards a scholarship fund, and you guys choose who gets the fund! 5% mostly going towards site maintenance and upgrades if need be.
ORDER HISTORY & ORDER DETAILS
Another essential piece is order history and order details. Buyers are able to request a refund per line item or for the whole purchase on this view. Not really much else to say; it's pretty straightforward.
DRAG AND DROP STORE PAGE BUILDER
Dear, f---, Lord, why did I do this to myself? Originally I was just going to have three templates that you guys could choose from, but I wanted all of you to have more creative freedom with the look and layout of your stores. Soon you can also build what your product page is going to look like (if not, your page will just use our default template just use our default product page). This feature is where I'm going to need a lot of help from beta testers. I feel like there are going to be so many edge cases considering the drag-and-drop functionality is just inherently already buggy. I fixed, or maybe fixed, a bunch of bugs already, but at what cost? I ended up spending a few extra days on this, but I think it was worth it. ON THAT NOTE THOUGH, I can totally edit this drag-and-drop site builder to be a layout editor if you guys would want it later on. I already have an easy idea on how to transition this tool.
OAUTH & AUTHENTICATION
I'm using Supabase for this part since I am already using their DB. It's natural to also use their auth. I got SSO to work with Discord, then kind of just left it there till later. Additionally, I will be allowing you guys to OAuth to Itch.io, and you should be able to pull all of your game data. We'll read the game data and auto-create the game on our end, so you guys don't have to do a bunch of repetitive data entry. You will have to fill out some details at a later date, since my system is much, much more comprehensive than itch's. As for DriveThru, I mean, I guess I could brute force their API to get your game library. But yes, or if you have maybe a CSV or something, you can use that to upload your data too.
USER GAMES LIBRARY
When you have successfully purchased a game, and it's not refunded/cancelled. In your dashboard you are able to view your games! You can view the game; there's a hover preview that cycles through all the game's screenshots. Finally, if you press the game, you'll head on over to the product download view (not the products page build that you made).
FEATURES IN THE PIPELINE
DRAG AND DROP PRODUCTS PAGE BUILDER
Probably a quick build; just need to differentiate between store and products.
SALES DASHBOARD AND ANALYTICS
I have a lot of columns in the database ready to collect data but still need to make some APIs or event listeners to record and collect for the analytics. I'll go into more detail once I start building.
COLLECTIONS
You can favourite games, tags, and even other creators. On the back end we'll actually use these to build out what your discovery queue is going to look like.
DISCOVERY QUEUES
Ok, this will probably be an ongoing experimental feature with loads of A/B testing for a while. Once I finish the core features for the marketplace, this is up.
WHY I AM BUILDING THIS
I saw a need for it, so I'm building one based off of various complaints I've read from people. There was even a suggestion sheet that that noted a quite a few improvements to be made on that I found on X. Almost none of it was implemented. My friend Scott and I were talking about making niche marketplaces and I had just bought so many things from Pocketopia. Then the tariffs hits and I was like dang what could I do to help. Combine those stars aligning and well here I am.