2025-03-28

shops - the interoperatable marketplace

potion store

since covid, i have been working on an idea to design my own marketplace software on the fediverse. the reason for designing such software came from my unpleasant experience dealing with multiple marketplace platforms, especially after a wire fraud scam incident from a certain large raspberry pi vendor here in the us. well... it's unfortunate way to learnt a lession from this incident. i lost a few hundred dollars, but that also made me rethink about the ecommerce market.

not so fun fact: when a "reputable" business commits wire fraud here in the us, there is no way to investigate since both parties' banks will be on the side of the business than a small account holder, such as myself.

thereforce i write my own marketplace

i am building shops, my own marketplace software to bundle everything about ecommerce in 1 project.

why fediverse?

i was a small contributor to mastodon's ruby on rails repository. back then i didn't have in-depth understanding on the mastodon's software architecture and the codes around encoding & decoding json-ld. but as i kept contributing to the app, i started understand the beauty of an open protocol where instances of software based on the same protocol can communicate freely beyond the boundary of server.

this open protocol design allows users to chat and move freely between many different servers & communities.

for example, imagine if facebook users can freely chat or comments on posts from twitter users. for these 2 particular servers, they can not. however, if i change the example companies from facebook & twitter to fosstodon and chaos social, now suddenly they can.

this is all thanks to the 2 servers are running on activitypub for their server-to-server communication layer. this design practically links 2 total unrelated software together, giving users a universal home for a social experience without checking all different social media websites individually.

local first features

not all ecommerce features should be on fediverse. in fact, some features are sensitive to users that are best kept unfederated. for example, seller inventory, buyer's receipts, shipments, etc.

in some situation, whether to federate or not is a decision to be made by system administrators. the software writer such as myself should provide the options for both scenarios, so that people can enjoy the freedom of choice.

why marketplace?

i don't know ¯\_(ツ)_/¯. i cannot explain why i like this particular feature of software. similar to how i cannot explain why enjoy kfc chickens even though there are many other different food around to eat.

what happen when mixing marketplace software with activitypub?

well... there are many benefits. for example:

i can follow and subscribe updates from vendors about their products regardless which server they are from, either be from a large marketplace or a single personal self-hosted mom-and-pop shop.

payments are universal. shopers no longer need to register multiple online accounts for different stores. cleaning up a lot of hazzles & mess.

servers can be federated together based on trust.

sellers are no longer at the mercy of their marketplace platform's random fees. based on my personal experience of selling on both amazon and ebay, depending on the category of the products, sometimes fees can go as high as 20%, and that is largely non-transparent to sellers as fees themselves go up and down depending on the shopping season and whatever mood the marketplace platform is having on each day 🙈. for small sellers, platform specific fees have been the most difficult challenge to overcome for growing a business.

and many more goodies which i won't list them all here.

rust?

i am an enjoyer of the rust language, so i like to write my software in rust, besides the fact that rust is more performant than ruby or python or swift (these are the 3 languages i used the most).

final words

at the time of writting this, im still in the middle of working on this project. it will take me a bit longer to make the ios client functional before i can honestly announce my project more openly.

keeping an eye on my blog here will sure help me in a long way though.