Inspiration

Art is powerful — it sparks emotion, tells stories, and challenges norms. But we asked ourselves: What if art could also give back? That question became the spark for link, a platform where artists can showcase their creations and donate a portion of their auction proceeds to charitable causes. It's where creativity meets impact.

What it does

Kalai is a full-stack web platform that empowers artists to list their work for auction, engage with art lovers, and support charities. Artists can create profiles, upload artwork, set auction parameters, and choose a cause to support. Buyers can bid on pieces, explore artist profiles, and follow auctions in real time.

How we built it

Kalai was built using:

  • Frontend: React + TypeScript with Vite, styled using Tailwind
  • Backend: Node.js, Express, MongoDB (Mongoose)
  • AI Integration: Google Gemini for generating artwork descriptions
  • Authentication: JWT-based auth system with protected routes
  • Cloud Deployment: Render for backend and Vercel for frontend deployment

Challenges we ran into

🔴 Major Challenge: Real-Time Bidding with WebSockets

One of our biggest challenges was to implement a real-time bidding system to allow buyers to see live updates during an auction — bid placements, countdown timers, and dynamic UI transitions.

We explored using WebSockets via Socket.IO, and while we managed to establish bid broadcasting between clients and the server in a test environment, several obstacles emerged:

  • Handling concurrent users and race conditions when two bids arrive simultaneously
  • Managing authentication over socket connections to ensure only verified users could participate
  • Building a smooth, reactive frontend animation flow during active auctions

Due to these complexities, we chose not to deploy the real-time features to production just yet. Instead, we opted to finalize the auction creation flow and focus on stability and core features. Real-time bidding is our next major milestone, and we’ve already laid the technical foundation to get there soon.

🟡 Minor Challenges

  • 📸 Image Uploads to Base64
    We needed to allow artists to upload artwork images easily. Managing local file uploads and converting them to base64 strings for backend storage was tricky at first, especially with multiple image support. We solved this by implementing a reusable handleImageUpload function and validating image size and type on the client.

  • 🔐 Decoding JWT on Frontend
    Extracting the authenticated user’s ID from a JWT for associating artworks or auctions caused some hiccups. We used the jwt-decode library and safely extracted the userId at the start of each form to simplify downstream logic.

Accomplishments that we're proud of

Building Kalai was about more than just shipping features — it was about creating an end-to-end platform that empowers artists to sell their work to a global audience. We’re incredibly proud to say: Kalai is now a fully functional, production-ready art auction marketplace.

From the ground up, we architected an application where:

  • 🧑‍🎨 Artists can easily upload their artwork, add auction details, set donation percentages to charities, and receive AI-powered help writing descriptions.
  • 💰 Buyers can explore artwork, view artist profiles, and soon will be able to place bids on pieces in real-time.
  • 🤝 Every auction created on Kalai gives back — with charity support built directly into the listing flow, ensuring that art has both beauty and impact.

This wasn’t just a prototype. Kalai includes authentication, database integration, dynamic forms, image processing, and scalable UI components. It’s clean, modular, and already integrated with AI and charity logic — a product ready for the real world.

What we learned

Building Kalai taught us what it really means to take an idea from 0 → 1 — not just in code, but in listening to users and translating that into meaningful features.

🧠 Building for Users First

Early on, we realized that building something "cool" isn’t enough — it has to be useful. So we did informal customer discovery on Friday, tapping into our local network of artists at UCSC and we asked:

“What’s hard about selling your art online?”
“Would you ever donate part of your sale to a cause you care about?”
“Here's our idea? Would you use it? If not, what would you want so you would use it?”

💻 Full-Stack Web Development, End-to-End

  • ⚛️ React + Tailwind UI System
    Built reusable, responsive components with react-hook-form and zod powering complex, validated form flows.

  • 🖼️ Image Upload Pipeline
    Artists upload multiple images, which are base64-encoded client-side and sent to MongoDB—no external storage needed yet.

  • 🔐 Role-Based JWT Auth
    Used token decoding to separate artist and buyer workflows across the stack, enforcing access control with Express middleware.

  • 🤖 Gemini AI + Prompt UX
    Integrated Gemini via Axios; prompts dynamically combine system templates with user instructions, returning personalized descriptions inline.

  • 🧠 WebSocket-Ready Auction Logic
    Laid foundation for real-time bidding with socket.io, scoped by auction ID, including emit/listen patterns for reactive updates.

What's next for Kalai

We’re just getting started.

Kalai is already usable today—but our vision goes far beyond a simple auction site. We’re building a vibrant, creator-first platform that elevates digital art and social impact simultaneously. Here's what's on our immediate roadmap:

🧠 Real-Time Bidding with WebSockets

We're finalizing our socket.io integration to support live auction updates, countdowns, and bid placements without refreshing. This will make bidding feel as dynamic as a real gallery room.

💳 Stripe Integration

To enable real transactions, we’re integrating Stripe for buyer payments and automated payouts to artists and charities. We want every auction to feel safe and seamless.

🏛️ Artist Portfolios & Follower System

Artists will soon have portfolio pages showcasing their past and active pieces, with a follow system to keep collectors engaged and notified.

🧬 AI-Powered Search & Personalization

We're exploring ways to leverage Gemini and embeddings to build semantic search and collector-style recommendations—think Spotify Discover Weekly, but for fine art.

📱 Mobile-Optimized Views

The current UI works on mobile, but we’re redesigning parts of it for a touch-first experience, especially for last-minute bids on the go.

Share this project:

Updates