Realtime commerce

Live when you start it

Live Auction Salesroom

Run a live auction: your camera on stage, lots on the block, bids landing in order and a countdown that extends on a late bid. Open a bidder link on your phone and bid against yourself.
  • WebRTC host stage
  • Server-ordered bidding
  • Explicit teardown
Free · no account · runs in this browser
Nothing starts until you press something. You can run the whole thing as a guest — no account, no setup, and any room you launch expires on its own. Just opening this page creates no room, no session and no charges.
Your path through this room

Try it in 4 moves

0 of 4
  1. Open the salesroom

    Allow your camera when asked: you are the auctioneer.

  2. Place a bid

    Price, countdown and lot list move together.

  3. Bid from your phone

    Open the bidder link on a second device and outbid yourself.

  4. Run the clock

    The lot settles at zero, if the reserve is met.

Try it in two stepsThe salesroom below already works — bid on it now if you like. The steps add the part MediaSFU actually provides: live media between real people.
  1. 1
    Launch the private auction room

    Turns the auctioneer tile into a real camera and microphone. No account and no setup — it is a guest room, and it ends when you do. The bidding logic does not change, which is the point: media is a capability you attach, not a rewrite.

  2. 2
    Create a bidder link and open it elsewhere

    Open it in a second browser or on your phone to see both sides of the same room at once — the auctioneer's view and a bidder's. That two-way view is the whole demo.

Advanced · auction setupRoom capabilities for testing. Defaults match the plain showcase.
Where this runsIN YOUR BROWSERBidding runs locally · nothing saved · closes with this tab

Live camera and mic are off. The auction still runs — everything below works without them.

MediaSFU Live SalesroomSEEDED994

Lot 1 of 3

Vintage camera

$0

0:45 remaining · 0 bids · reserve $109

Reserve not yet met

Bidding, anti-snipe and lot progression all run for real, here in your browser. Payments, inventory and fulfilment stay in your own systems.

For developers: what's running behind this UIThe SDK calls that produce everything above
useMediasfuHeadless()
One hook for the whole room — streams, controls, moderation — with no MediaSFU UI rendered at all. The auction layout is entirely app-owned.
getRemoteVideoStreams()
Resolves who is on camera: merges the SDK's stream lists, dedupes by producer id, drops your own self-marker, and checks each track is live.
getAudioGridComponents()
Every participant's audio, all of it. Rendering a subset silences whoever falls off the end while they are still visibly present.
selectBidderPanel()
Seats the bidding floor. A seat is held by publishing, not by being approved, so an approved-but-silent bidder never blocks the floor.
attachPlayback()
Streams the salesroom over HLS to a large audience. Those viewers never join the room, so they cost a CDN request instead of a media connection each.

Add ?floor=1 to this URL to seat bidders on camera with everyone else on the stream. &seats=2, &role=viewer and &viewer=webrtc exercise each view without a second device.

Real hereBid ordering, countdowns, anti-snipe and teardown all run for real. With a room launched, so does the media.
Not includedPayments, inventory, fulfilment and settlement records are your systems — this preview deliberately stops at the boundary rather than faking them.