• Portretfoto van Kees Hink
    Kees Hink
  • Portretfoto van Casper Timmers
    Casper Timmers

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.

Dome Auctions Homepage
Dome Auctions Homepage

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.

Dome Auctions Favorites
Dome Auctions Favorites

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.

We love code