Programming
In 2012 I wrote an idea on a sheet of paper: a single online store, fed by the management systems of real shops. Everything was missing. On 5 September 2026 the first shelf filled itself, in four minutes and twenty-four seconds. Its name is MioEmporio.
Full image ↗
In 2012 I wrote an idea on a sheet of paper, the kind that ends up in a drawer: one big online store that owns nothing. Every product on sale comes from the management system of a real shop, with its real stock, and every order goes back to that shop as an ordinary order, ready to be fulfilled. The shop takes the sale, the platform lives on a commission, and nobody retypes anything.
The sheet stayed in the drawer for a simple reason: everything was missing. There was no synchronisation able to keep a website glued to the management system, there was no website, there was no way to split a payment among several sellers without becoming a bank, and there was no network of shops willing to try. In 2012 I would have had to build four things, and I had time for none.
Fourteen years later I realised those four things existed. I had not built them for the marketplace: they had arrived one at a time, for other reasons, in other summers. The synchronisation that carries catalogue, photos, variants and stock to the web in thirty seconds I wrote for the shops’ own websites, and I told that story here. The in-house e-commerce site, with its checkout and the loyalty card that crosses over to the web, has been in production since July. Split payments are offered today by payment networks as a service, with no banking licence required. And the network is there: more than a thousand shops in Italy run MyShop, and since 19 August the ones on the Cloud run on my servers.
I reopened the drawer and did the sums: seventy per cent of the marketplace was already written, scattered across four folders on my disk. The project was no longer «build a marketplace». It was «put together the pieces that exist, and write the thirty per cent that is missing».
The decision everything else follows from took me five minutes, and it is the same one I have never betrayed in thirty years: the management system is the source of truth. For every MyShop, MioEmporio is simply a second website. On the marketplace server each shop has its own database, identical to the one behind its website; the management system fills it with the very same synchronisation it uses today; the marketplace reads all the databases to build the single catalogue and, when an order comes in, writes it into the database of the shop that has to fulfil it. On the next cycle MyShop finds it and creates the document, exactly as it does for an order from the shop’s own site.
Practical consequences: no duplicated records, no new import code in the management system, the price is always computed by the shop with its own rules, and the stock you see is the stock in its warehouse, refreshed every thirty seconds. Sell a piece at the till in Nuoro? On MioEmporio it can no longer be ordered. A shop that never had a website comes in with the same procedure the technicians already know, minus the hosting steps.
There was a single obstacle, and it was in my own code. The synchronisation was born to handle one web database per shop: it took the first one it found and locked the door with a padlock that had only one name. A shop that already had its own website could not have added MioEmporio.
I made the fix this morning, with Claude at my side as has become the habit: the class now receives the number of the database, serves one at a time, and each database has its own padlock, so the initial load of one does not hold up the orders of the other. Same change in the Cloud. One morning, plus testing. The build tripped only once, on a library for fiscal printers that had nothing to do with any of this: it was sitting in the right folder, I was the one compiling in the wrong one. By 11:40 the program was ready.
Then I did the thing I had been waiting to do since 2012. In my MyShop I added a second web database, type «MioEmporio», pointed at the server. I created the warehouse, restarted, and pressed «Reset and reload». The report came back after four minutes and twenty-four seconds:
Catalogue published in 4 min 24 s. Products: 26 (combinations: 115). Categories: 8. Brands: 16. Images: 66 (3.7 MB). Customers: 9.
Sixty-six photos uploaded over my home line, a hundred and fifteen sizes and colours, sixteen brands. Two minutes later the marketplace indexer came by, read the database and wrote its line in the log: «25 products, 114 items». Not 26: one product had no price, and a serious shop does not sell without a price. I liked that the code knew that on its own.
I opened the page. The logo at the top, the search box, and underneath: «MyShop demo · Nuoro (NU) · 25 products, 114 items · catalogue updated just now». The categories lined up like labels on a shelf: Clothing 12, Food 3, Beauty 1, Footwear 2, Stationery 1, Home and kitchen 3, Electronics 1, Sports and leisure 2. The cotton shirt at 40 euros with 49 struck through beside it, eight variants; the leather jacket with sixteen sizes; the thermal bottle; the earbuds. And two cards with an orange placeholder instead of a photo, because those two products never had one. That, too, is information: one day it will be the shop’s own portal that tells them, «you have two products without a photo», before a customer finds out.
It was not a mockup, not a drawn demo. It was my management system that had filled a shelf on a server a thousand kilometres away, by itself, and a shelf that will refresh every two minutes for as long as the shop exists.
For those who buy: real shops, in one place. Not an endless catalogue of faceless sellers, but the neighbourhood shop with its name, its town and its real stock. «Available three kilometres away, pick it up within the hour» is a sentence the giants cannot say and a local customer understands at once. The same product sold by five shops becomes a single page with five offers, sorted by price or by distance.
For those who sell: no website to build, no records to retype, no monthly fee. The catalogue is the one already at the till; orders arrive where the other orders arrive; the shop’s loyalty card works there too. You pay only on what you sell.
I chose the name at the desk, but it came from the heart: MioEmporio. «Mio» as in the My of MyShop, and the emporio is the shop that has everything. The domains are already mine; the public site will come when there are real orders behind it, not before.
I want to be honest, with myself before anyone else: the technical part is the easy one, and today I saw it. The real risk of every marketplace is the chicken and the egg: without buyers the shops do not sell, without shops the buyers do not come. The rare advantage I have is that the shops are already there, they already have loyal customers with cards and points, and each of them can bring its own customers to its own storefront inside MioEmporio. The first traffic does not have to be bought: it can be inherited.
That is why we start narrow. Five pilot shops, ideally in the same trade or the same area, and over the coming months the things that are truly missing: a basket that holds several shops together, a single payment split at source, the order flowing back into each management system, the tracking flowing up. The goal of the phase that starts today is not a pretty website. It is one real order, paid with real money, shipped by a real shop, with the commission credited. One. Then we think about the rest.
If you run a shop on MyShop and want to be among the first five, write to me: the form is at the bottom of the home page.
Fourteen years to fill one shelf. I have a feeling the second will take far less.