Confidential (student housing marketplace) · Property technology
A bidding-based marketplace for off-campus rentals. Live updates are scoped per listing, so 1,000+ people can bid at once.
Category
Marketplace
Year
2024
Industry
Property technology
Optimization
Only the needed context


How it is optimized
Only the needed context
Every screen receives only the bids it is watching.
Real-time subscriptions are scoped per listing, so a client never processes updates for listings it is not looking at. Bid order is decided once, in a serialised server-side transaction, and clients reconcile to the committed result. The platform holds 1,000+ concurrent bidders with updates in 200 ms.
What keeps it lean
- 01Subscriptions scoped per listing
- 02One authoritative decision on the server
- 03Access enforced by row-level security
Each request, user or agent gets the data it needs and nothing more.
The challenge
Student housing is dominated by fixed-price listings with no room to negotiate, scattered across platforms nobody trusts. Parents pay for most of these rentals and have no way into the process at all. The market needed a place where the price could be found openly, where every bidder saw the same number, and where a parent could act on a student’s behalf.
The work
We designed and built a live bidding marketplace over WebSockets, with bid acceptance serialised on the server so there is one authoritative order, and real-time subscriptions scoped per listing so each screen receives only the bids it is watching. Students, parents and landlords each got a dashboard built for their role, with messaging, service booking and notifications on top.
Inside the product
More than one screen.
The product name and data have been changed at the client's request; these screens recreate Bidnest as it was built.

Listing and live bid
Bid history updates in under 200 ms, with a parent co-signer on the bid.

Student dashboard
Active bids, lease progress and services booked from partners.

Messaging
Students, landlords and providers in one thread, with bookings on the record.
On the phone

Home

Listing and live bid

Student dashboard

Messaging
How it is built
Architecture
Next.js over Supabase and PostgreSQL. Bids flow through a WebSocket channel and are validated server-side before commit, so a client can never post a winning bid it did not earn. Role access is enforced by row-level security.
Key features
Challenges & solutions
Challenge
Simultaneous bids on the same listing raced each other and could both be accepted.
Solution
Moved bid acceptance into a serialised server-side transaction so ordering is decided authoritatively, with clients reconciling to the committed result.
Challenge
Broadcasting every bid to every connected client saturated the socket layer at peak.
Solution
Scoped subscriptions per listing so clients only receive updates for what they are watching.
The impact
What became easier, better or more effective.
Bidnest went live for a semester rush and held. A thousand students can bid on the same listing at once and all of them see the same price within a fifth of a second. Parents can bid and message on a student’s behalf for the first time, and landlords let the market find the price instead of guessing it.
“We had a hard launch date tied to the semester. They planned around it from day one, cut scope honestly instead of quietly, and shipped on the day. Launch week was boring, which was the point.”
1,000+
concurrent bidders without a conflict
Bid acceptance is serialised on the server, so there is one authoritative order and no listing is ever awarded twice.
200 ms
from a bid to every screen updating
Students, parents and landlords are looking at the same number at the same moment, which is what makes an open auction fair.
3
dashboards, one per role
Students, parents and landlords each get the actions and information that matter to them, and nothing else.
Stack
Frontend
- Next.js
- TypeScript
Styling
- TailwindCSS
- ShadCN
Backend
- Supabase
- PostgreSQL
Real-time
- WebSockets
Payments
- Stripe
Notifications
- Resend
- Twilio
Analytics
- PostHog
Optimization
Only the needed context
Each request, user or agent gets the data it needs and nothing more.
Conscious AILet's talk
Tell us where you are. We'll say plainly what we would do next, and whether we're the right team for it.