Building Dome Auctions
We recently launched a new online auction platform: Dome Auctions. In this post, we’ll walk you through how it came to life, what we built, and how we approached the technical side of things.
How it started
Dome Auctions came to us through our product Four Auctions. With plenty of experience in the world of auction platforms, they already had a clear idea of what they were looking for. Four Auctions seemed like a good starting point.
But it soon became clear that they weren’t just looking for a service. They wanted to own the platform. That changed everything. What they needed was a custom-built auction system, designed from the ground up, tailored to their needs.
Their priorities were clear:
- Quality
- Simplicity
- Scalability
The Project
We formed a dedicated team of five developers. An experienced Product Owner was added who worked closely with the team. In fact, they were practically full-time with us throughout the development process. This close collaboration kept the pace high and the feedback loops short.
Our director Maarten took on the role of account manager, handling contracts and financials so the team could stay focused.
Like many ambitious projects, the challenge wasn’t a lack of ideas, but too many. We couldn’t possibly build everything in six months. Keeping scope creep in check became a shared responsibility. With a clear MVP in place, we made sure we launched on time and in scope.
A strong start
The first real-world test came quickly, and it delivered. The launch auction saw over 12,000 bids from nearly 400 users across 19 countries. For a brand new platform, that kind of traction was a strong validation of all the work that went into it, supported by an extensive and strong marketing by Dome Auctions.
What we built
The first version of Dome Auctions already supports a wide range of features.
Anti-snipe
If a bid is placed in the final moments of an auction, the closing time is extended.
Proxy bids
Users can set their maximum bid. The system automatically bids on their behalf until that limit is reached.
Staggered closing times
Lots don’t close all at once. This gives users time to bid on multiple items.
Combination lots
Related lots can be grouped and auctioned together after their individual auctions.
Multi-currency support
The first auction ran in Switzerland, with everything in CHF. The platform supports 180 currencies.
Six languages (and counting)
Also for that first Swiss auction. Users can choose their preferred language.
Invoicing and pickup
Winning bidders get an invoice, including a QR code for pickup.
Real-time admin dashboard
Auction admins can see what's happening live: who's bidding, which lots are popular, and how categories are performing financially.
Pickup module
Buyers bring their QR code to the warehouse. Staff scan it and confirm the handover.
Automatic translations
Manually translating thousands of lot titles is no fun. We integrated the Deepl API to handle that automatically.
Bulk uploads
Auctioneers can upload Excel files and zip archives with lots and images. There's also a third-party app that allows offline preparation on tablets.
Marketing API
Auction details are exposed via an API to support campaigns and promotions.
User and category management
Phone number validation is required for bidding. Disruptive users can be blocked. Categories can be created and updated easily.
Followed lots
Users can keep track of lots they’re interested in.
The tech behind it
For the foundation, we used Django. We also relied on familiar packages like Celery and Pandas to handle background tasks and data processing.
To keep the frontend lightweight, we went with HTMX and Alpine.js. We’ve used heavier frameworks like React in the past, but in this case, a minimal setup was all we needed.
For pushing updates to the browser, we used Server-Sent Events. We’ve worked with Django Channels and Tornado before, but SSE offered a simpler and faster alternative here.
One new thing we tried was Django Ninja. It’s the framework we used for the marketing API. Normally we’d use Django REST Framework, but this time we gave Ninja a go, and it worked out well.
The numbers
- 21 pages of MVP documentation
- 8 months to first release
- 7 developers
- 1 product owner
- 1 account manager
- 0 project managers
- About 750 merge requests
What’s next
The platform is live (https://dome-auctions.com/), but this is just the beginning. There’s already a long list of ideas for future development. Many of them come straight from Dome Auctions' experience in the field.