The solution was built headless, with React on the frontend and Symfony on the backend, fully decoupled from each other. The frontend delivers a dynamic experience for browsing items, placing bids, and managing user accounts, while the backend handles auctions, bid registration, customer verification, and notifications.
Avanti keeps the auctions running behind the scenes
Blomqvist's staff use the ERP/PIM system Avanti to prepare each item for sale: images, contracts with sellers, and descriptions. Once an item is ready, the auction duration and reserve price are set, and the item goes live on the platform at the scheduled time.
A queue system that handles thousands of bids per second
Every item has a reserve price and an end time. An advanced queue system ensures bids are processed in the correct order even under heavy volume, and auto-bid lets bidders set an upper limit and bid automatically if outbid. All bids are timestamped and synchronized to ensure fairness, and the auction's end time extends automatically for last-second bids, just like in a physical auction.
Payment and settlement, fully automated
The platform is integrated with Nets for payment and 24SevenOffice for accounting. When an item sells, the winning bidder's card is charged, and invoices are generated automatically for both buyer and seller. Buyers and sellers can track the settlement as it happens, and sales and accounting data can be exported to Excel for further analysis.
Search and alerts built for collectors
ElasticSearch powers search across items, historical data, and contracts, with support for saved searches, filtering, and fault-tolerant search terms. Notifications go out via SendGrid for email and Systor Vest for SMS, important in an auction where every second can decide whether a bid makes it in time.
The rest of the stack is built for stability under heavy load: Cloudflare caches images and static files and protects against DDoS attacks, Strapi manages campaign content, and Fotoware ensures high-resolution images of every item are always up to date, so customers can zoom in on details without seeing the object in person.