Case study

MM Motorsports

A complete management system for Mohamed El Marnissi's luxury vehicle showroom, from the online catalogue to the sale.

MM Motorsports
  • Software & ERP
Year
2026
Services
  • Business Applications & ERP
  • Custom Websites & Platforms
Technologies
Next.js, React, TypeScript, tRPC, Zod, PostgreSQL, Prisma, Tailwind CSS, Radix UI, Recharts

01 / Context

Overview

MM Motorsports is Mohamed El Marnissi's luxury vehicle showroom in Tangier, covering sports cars, motorcycles, jet skis, boats and off-road vehicles. We designed and built its management system. The online catalogue shows every vehicle from every angle through 360° views, while the back office brings together the stock, incoming enquiries, customers and transactions.

02 / Starting point

What the project had to solve

A vehicle at this level is chosen with the eyes first, so the site had to show each model almost as well as the showroom floor does, across five vehicle families that are not described the same way. Behind the shop window, the showroom needed a single tool to follow each vehicle from arrival in stock to sale, and each enquiry from first contact to its outcome. The catalogue also had to be updated with every new arrival, without a developer.

03 / Scope

Scope

We built the whole thing, from the public catalogue and its vehicle pages to the 360° viewers, the back office and its dashboard. Each vehicle family has its own data model, because a jet ski isn't described with the specifications of a sports car. The back office also covers customer relationships, with enquiries, customers, stock and transactions, as well as user accounts and site settings.

04 / Decisions

Decisions

The 360° views are built from series of photographs taken around the vehicle, which the visitor turns on screen. The team uploads them from the back office, up to seventy-two views per vehicle, and the server checks the type and size of every file before accepting it. Every vehicle in stock carries a status (available, reserved, sold or in maintenance), and every transaction is tied to the customer and the vehicle concerned. Catalogue changes are written to a log within the same operation, so the history cannot drift from the data.

05 / Build

What we built

Visitors browse the catalogue by family, open a vehicle page and turn it through 360° before leaving an enquiry, which lands straight in the back office. There the team adds a vehicle with its photos and 360° views, then follows each enquiry until it is converted or lost. A sale, a purchase or a reservation is tied to the customer and the vehicle, and successive payments are added to it until it is paid in full, with the matching invoice. The dashboard shows the value of the stock, its breakdown by family and by brand, and the activity of the last two weeks.

MM Motorsports brand image

06 / Technology and integration

Technology and integration

The system is built with Next.js and React, in TypeScript end to end. Its API runs on tRPC, so the interface and the server share the same types, and every input is validated with Zod before it reaches the database. Data sits in PostgreSQL with Prisma, while photographs and 360° views are served from dedicated object storage. The back office is accessed by email and password, and roles keep management tasks, such as uploading views, to administrators. The dashboard is built with Recharts and the interface with Tailwind CSS and Radix components.

07 / Results

The results

The online catalogue presents five vehicle families, with 360° views.

  1. Every vehicle is tracked from arrival in stock to sale, with its status and its transactions.

  2. Every enquiry sent from the site reaches the back office and is followed through to its outcome.

  3. The team updates the catalogue, photos and 360° views included, without a developer.

Let's discuss your priorities

A comparable project in mind?

Tell us about your context, and we'll tell you how we would approach it.

  • The call lasts thirty minutes, by video.
  • You speak directly with a Claro expert.
  • Afterwards, we email you the next step we recommend.

Free initial consultation