All projects

Case study

MarketplaceFull-StackCloud & Automation

UniBid

Bidding-based off-campus rentals marketplace.

UniBid cover image

Students bid on off-campus housing in real time, with role-scoped dashboards for students, parents and landlords.

The problem

Student housing is dominated by fixed-price listings with no room to negotiate, scattered across unreliable platforms. Parents fund most of these rentals but have no way into the process at all.

My approach

Designed a live bidding system over WebSockets with sub-200ms updates, backed by data models tuned for listings, bids and notifications, and separate dashboards scoped to each role.

How it's built

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 didn't earn. Role access is enforced by row-level security.

Key features

  • Bidding marketplace for verified off-campus rentals
  • Parent access to bid and message on a student's behalf
  • Service booking for moving, cleaning and repairs
  • Built-in messaging between students, landlords and providers
  • In-app, email and SMS notifications
  • Listings filtered by proximity to partner schools

Challenges & Solutions

  1. Simultaneous bids on the same listing raced each other and could both be accepted.

    Moved bid acceptance into a serialised server-side transaction so ordering is decided authoritatively, with clients reconciling to the committed result.

  2. Broadcasting every bid to every connected client saturated the socket layer at peak.

    Scoped subscriptions per listing so clients only receive updates for what they are watching.

Results

  • 1,000+concurrent users with conflict-free bid synchronisation.
  • 200msbid updates, keeping every bidder on the same state.
  • 3role-scoped dashboards for students, parents and landlords.

Implementation stack

Tech Stack

  • Frontend

    • Next.js
    • TypeScript
  • Styling

    • TailwindCSS
    • ShadCN
  • Backend

    • Supabase
    • PostgreSQL
  • Real-time

    • WebSockets
  • Payments

    • Stripe
  • Notifications

    • Resend
    • Twilio
  • Analytics

    • PostHog