A unified platform for real-time auctions with multi-role accounts, auto-bidding, payments, and full data control.
A web platform where users register, join organizations, browse active and upcoming auctions, place bids in real time, and pay for winning lots online. A single user can act as a private individual or on behalf of multiple companies, create auctions of their own, and manage them from a personal account. While an auction is running, the interface updates live: new bids, auto-bids, lot status changes, and auction-close events update instantly for all participants. The platform owner has a dedicated admin panel with a full view of auctions, users, bids, payments, and exception cases.
The client runs auctions across multiple categories — real estate, vehicles, and other asset types — operating across France and Spain. Revenue comes from sales commissions and service fees, so trust in the platform, bidding transparency, and uninterrupted auction sessions are critical. The previous setup was a fragmented set of basic tools, manual lot updates, and separate processes for payments and reporting. That limited scale made it harder to launch new auction formats, and required heavy manual involvement from the team. The client wanted a real product: a managed platform built for both buyers and sellers, capable of handling a large number of simultaneous participants.
Different auction types under one platform
The platform had to support different asset classes — real estate, vehicles, other categories — each with its own rules, while still operating as one coherent product.
Complex multi-organization role model
A single user could belong to several organizations, act on their behalf, create auctions, and manage them — which required a complex permissions and access model.
Real-time response under peak load
During active sessions, dozens to hundreds of participants bid at the same time, expect instant feedback from the system, and rely on the platform to determine the winner correctly.
Auto-bid logic
The system had to support scenarios with automatic bid increases up to a set limit, with priority rules and consistent result display for every party.
Reliable payments
Payments for winning lots had to settle reliably, with commissions, transaction states, and possible payment-provider errors all handled correctly.
Operational control
The owner and the internal team needed a full management surface — auction monitoring, event logs, the ability to correct individual cases, and tools for unwinding non-standard situations.
We built a headless architecture around Directus as the backend core, with custom modules for auction logic, bidding, and payments. On top of that, we built a React application for the customer-facing product and a separate interface for the admin panel. Real-time behavior runs via a WebSocket layer that synchronizes bid and status updates across all participants.
Domain modeling
We mapped auction types, user roles, lot states, and the events that move an auction forward. From that, we defined the business rules the system has to support and the boundary between automation and manual moderation.
Data model in Directus
In Directus, we designed entities for users, organizations, auctions, lots, bids, auto-bids, and transactions. For non-trivial scenarios, we also designed custom extensions: validation of whether an action is allowed in the auction's current state, recording of key events, and locking changes to historical data.
Customer-facing interface
The React application handles personal accounts, auction browsing, lot detail pages, bid history, and switching between organizations. The interface is structured so a participant could quickly see the auction's current state, their own limit, the actions available, and the consequence of each bid.
Admin panel
On top of Directus, we built a separate UI for the platform team: lot moderation, auction management, activity review, and exception handling. We implemented search and filtering across users, organizations, bids, and transactions, plus tools for manual intervention in individual cases — with mandatory event logging.
Auction engine
On the backend, we built a dedicated module to process bids, auto-bids, and auction close-out, taking priorities and time constraints into account. The WebSocket layer broadcasts lot-state changes to all subscribed clients so participants always see the current state.
Payment system
We designed an integration with payment providers (Mangopay as the marketplace-grade provider with built-in escrow and split payments, plus a backup processor for fallback) covering payment-session creation, callback processing, and linking transactions to winning lots. Payment statuses are recorded so completed operations, disputed cases, and frozen payments stay clearly separated.
Infrastructure, security, and monitoring
We deployed services packaged in Docker and deployed in the cloud (AWS Frankfurt, for EU data residency) with separate staging and production environments. The setup included HTTPS, access control, key-event logging, and baseline performance metrics — including monitoring of WebSocket connections and the payment integrations.
At the start, we mapped the client's business into concrete scenarios: asset types, the typical auction lifecycle, the platform's revenue model, and the situations that most often caused problems. Separately, we mapped the difference between B2C participants and companies bidding on behalf of multiple legal entities. In working sessions, the business owner used real cases to show where auctions had failed, where auto-bids had not behaved correctly, and when the team had been forced to drive payments manually. Out of that, we built one list of must-have scenarios for the first release and a second list of items to push to later iterations, so the initial scope wouldn't blow up. The result was a discovery document that clearly stated what the platform had to handle from day one.
The new platform gave the client a managed foundation for growing the auction business across France and Spain. Running auctions, complex auto-bid handling, payment intake, and exception management are now consolidated in one system with a clear role model and transparent processes.
replaced with a modern platform
the "one user, multiple organizations" scenario fully supported with clean permissions
auction and bid state stay accurate, with no visible delay
for the owner and the team through the new admin panel
without rebuilding the platform from scratch
running steadily across real estate, vehicles, and other categories
onboarded since launch
sustained on peak real-estate auctions
WebSocket update latency end-to-end
with disputed and frozen cases routed to operators automatically
Or send us a message and we'll get back to you within 15 minutes during business hours