Inspiration
Ever since I began my first year at the University of Waterloo, I noticed how many amazing deals students can get from buying each other's items, rather than buying from the stores themselves. However, a big issue is that there is no single platform where UW students can come and buy and sell to one another. Some ping their discord servers, some use snapchat, and some oldheads use facebook marketplace. It is time for a unified platform where only students can buy and sell to each other.
What it does
UW Marketplace is an exclusive buy-and-sell platform for University of Waterloo students. Students verify their identity through their @uwaterloo.ca email, ensuring a trusted community marketplace.The platform features two innovative AI integrations: AI-Powered Descriptions: Users upload a photo of their item, and Claude AI analyzes the image to automatically generate compelling, student-friendly product descriptions in seconds. Smart Pricing: The AI analyzes historical pricing data from similar items sold on campus and recommends an optimal price range with reasoning, helping students price competitively without leaving money on the table. Additional features include real-time chat between buyers and sellers, category filtering, search functionality, and a clean, mobile-responsive interface designed specifically for student needs.
How we built it
Tech Stack: Frontend: Next.js 14 (App Router) with TypeScript and Tailwind CSS for a modern, fast user experience Backend: Next.js API routes (serverless functions) for authentication, listings, and AI integration Database: Supabase (PostgreSQL) for storing users, listings, messages, and price history data Storage: Supabase Storage for product images AI: Anthropic Claude 3.5 Sonnet API with vision capabilities for image analysis and description generation, plus pricing intelligence Email: Resend API for verification code delivery Real-time Chat: Supabase Realtime subscriptions for instant messaging UI Components: shadcn/ui for polished, accessible components Deployment: Vercel for seamless hosting and automatic deployments
Development Process: I used Claude Code (Anthropic's agentic coding tool) to accelerate development, providing structured prompts to build each feature incrementally. This allowed me to focus on architecture and user experience while leveraging AI assistance for implementation.
Challenges we ran into
1. University Authentication Integration The biggest challenge was authentication. UWaterloo's SSO system (Shibboleth/WatIAM) requires institutional approval for integration. As a workaround for this demo, I implemented email verification - validating that users have a @uwaterloo.ca email and sending 6-digit codes. This maintains the "verified students only" principle while being demo-feasible. 2. AI Prompt Engineering Getting Claude AI to generate consistently good product descriptions required multiple iterations. Early attempts were too formal or generic. I refined the prompts to emphasize casual, student-friendly language and specific item details. Similarly, pricing suggestions needed careful prompt design to consider the student market context (used items, budget-conscious buyers). 3. Real-time Chat Architecture Implementing real-time messaging was technically complex. I had to set up Supabase Realtime subscriptions, handle message persistence, manage read/unread states, and ensure messages displayed instantly for both parties. Debugging WebSocket connections and subscription lifecycles took significant time. 4. Image Upload & Storage Configuring Supabase Storage with proper security policies (authenticated users can upload, public can read) while maintaining good UX for image previews and optimization was tricky. I also had to handle various image formats and file size limits. 5. Solo Development & Time Management Building a full-stack marketplace with AI integration solo in a hackathon timeframe required aggressive prioritization. I focused on core features first (auth, listings, AI) and saved polish for later. Some features like user profiles and advanced search were simplified to meet the deadline. 6. API Rate Limiting & Costs During testing, I had to be mindful of API costs for Anthropic and Resend. I implemented proper error handling and loading states to gracefully handle API failures during live demos.
Accomplishments that we're proud of
Building a Complete Marketplace Solo in Record Time As a solo developer, I'm proud of shipping a fully functional two-sided marketplace with authentication, real-time chat, AI integration, and a polished UI within the hackathon timeframe. Every feature from database design to frontend components was built from scratch. Meaningful AI Integration (Not Just a Gimmick) The AI features aren't just tacked on for the buzzword - they genuinely solve real problems. The image-to-description feature saves students 5-10 minutes per listing, and the smart pricing removes the guesswork that often leads to items sitting unsold or being underpriced. I'm proud that the AI adds real value. Real-time Chat That Actually Works Getting WebSocket-based real-time messaging working reliably was challenging, but the result is smooth, instant communication between buyers and sellers. Messages appear instantly, read receipts work, and the UX feels like a polished messaging app. Clean, Professional Design Despite the time constraints, the UI doesn't look like a typical hackathon project. The interface is intuitive, mobile-responsive, and uses modern design patterns that make it feel like a real product students would actually want to use. Solving a Real Campus Problem This isn't a solution looking for a problem - every UW student has struggled with Facebook Marketplace's lack of trust and verification. Creating a verified, student-only space addresses a genuine pain point in our community. Technical Achievement: Claude Vision Integration Successfully implementing Claude's vision API to analyze product images and generate contextually relevant descriptions was a significant technical win. The prompt engineering required to get consistent, high-quality outputs taught me a lot about working with multimodal AI
What we learned
AI Prompt Engineering is an Art Form I learned that getting good results from AI isn't just about asking questions - it's about crafting precise prompts with context, examples, and constraints. For the pricing AI, I had to iterate multiple times to get recommendations that understood the student market (used items, budget-conscious buyers, campus-specific context). Supabase is Incredibly Powerful This was my first deep dive into Supabase, and I'm amazed at what it offers: PostgreSQL database, real-time subscriptions, storage, and authentication all in one platform. The real-time features especially impressed me - setting up WebSocket chat would have taken days with a custom solution, but Supabase made it straightforward. Next.js 14 App Router Changes Everything Working with the new App Router taught me how Server Components and Client Components work together. The mental model shift from pages to app directory was challenging initially, but the benefits (better performance, simpler data fetching, built-in loading/error states) are worth it. MVP Thinking Under Pressure Building solo under time constraints forced me to ruthlessly prioritize. I learned to identify which features are "must-haves" (auth, listings, AI) versus "nice-to-haves" (advanced search, user profiles). Shipping a working core product beats a half-finished feature-rich app.
What's next for UW Marketplace
Proper Verification As of right now, UW uses Duo Security to verify their students, and only applications run by the university can access this. Getting university authorization to utilize their implementation of Duo Security is critical for this start-up to move forward. Moderation Students must have the ability to report someone if they are selling something inappropriate, or if they are being inappropriate in the DMs. So a moderation team is needed to handle this. Map feature for meetups Maybe use google maps API but somehow limit it only to the UW campus so in the chats between students, they can pick a spot to meet.
Built With
- claude
- next.js
- postgresql
- resend
- supabase
- tailwind
- typescript
- vercel

Log in or sign up for Devpost to join the conversation.