Architecture
Rubrion Store is a Turborepo monorepo built on Medusa + Mercur.
Project structure
├── apps/
│ ├── admin/ # Admin dashboard extensions
│ ├── vendor/ # Vendor portal extensions
│ └── storefront/ # Next.js B2C storefront + Sanity Studio
├── packages/
│ └── api/ # Medusa backend
│ ├── src/
│ │ ├── api/ # Custom API routes
│ │ ├── jobs/ # Background jobs
│ │ ├── links/ # Module links
│ │ ├── modules/ # Custom modules
│ │ ├── scripts/ # CLI scripts
│ │ ├── subscribers/ # Event subscribers
│ │ └── workflows/ # Business workflows
│ └── medusa-config.ts
├── blocks.json # Mercur blocks configuration
└── turbo.json
Services
| Service | Tech | Port |
|---|---|---|
| Medusa backend | Node.js (packages/api) | 9000 |
| Admin dashboard | React + Vite (apps/admin) | 7000 |
| Vendor portal | React + Vite (apps/vendor) | 7001 |
| B2C Storefront | Next.js (apps/storefront) | 3000 |
Extending with Mercur Blocks
Add pre-built marketplace features using the Mercur CLI:
bunx @mercurjs/cli add block-name
Configure block sources in blocks.json:
{
"aliases": {
"workflows": "packages/api/src/workflows",
"links": "packages/api/src/links",
"api": "packages/api/src/api",
"modules": "packages/api/src/modules"
},
"registries": {}
}