GEMORA.
A full-stack auction platform built around real-time bidding, live auction updates, and a structured marketplace experience.
An auction cannot feel live if users have to refresh.
Traditional web interfaces are built around request-and-response interactions. That works for most content, but an auction creates a different problem: multiple users can interact with the same auction at the same time.
When one user places a bid, everyone watching that auction needs to see the new price immediately. The platform therefore needed real-time communication between the server and connected clients, rather than relying on page refreshes or repeated requests.
Build the auction around real-time interaction.
Discover
Users can browse active auctions, search listings, filter results, and open individual auction pages.
Bid
Authenticated users can place bids through a focused bidding interface while the server validates the action.
Update
A successful bid is broadcast through Socket.IO so connected users receive the updated auction state instantly.
Every bid becomes a live event.
Socket.IO connects the auction interface with the server in real time. When a bid is successfully processed, the new auction state can be emitted to the users currently connected to that auction.
Socket.IO
Instead of waiting for another request, connected clients can receive auction updates as soon as the relevant server event occurs.
No manual refresh
The interface is designed around the assumption that auction data can change while the user is looking at the page.
A frontend connected to a real backend.
GEMORA was structured as a full-stack application with React and TypeScript on the client and an Express/Node.js backend handling API requests, authentication, auction operations, and real-time events.
PostgreSQL and Prisma provide the data layer, while Supabase Storage handles uploaded auction imagery. The application was deployed with the frontend and backend working as a connected system.
Everything needed to participate.
Live auctions
Active listings with countdowns and continuously updated bidding information.
Search & filters
Users can quickly narrow the auction catalog and discover relevant listings.
Protected bidding
Authenticated users can access bidding functionality while protected routes handle restricted actions.
Roles
Different user capabilities are handled through authentication and role-based access.
From static auction listings to a live marketplace.
Real-time communication
Implemented Socket.IO events so auction changes can be distributed to connected clients without requiring page refreshes.
Auction state
Connected bidding actions, countdowns, current prices, and auction status into one consistent application flow.
Full-stack flow
Connected the UI, API, authentication, database, file storage, and real-time layer into a single working product.
An auction platform built for real-time interaction.
GEMORA brings live bidding, authentication, auction management, search, filtering, and persistent data together into one full-stack application.
Previous project
Lumé Beauty Studio←Next project
Weston Renn→