Production Notes
Sublet-Me
“Behind the Scenes”
2026
Synopsis
Sublet-Me is an AI-assisted subletting platform for students and young renters. Hosts can create a listing, upload a walkthrough video, and get an auto-generated gallery, highlight clip, ranked tenant matches, chat, and tour scheduling in one flow.
The Problem
Housing is already brutal for students, and it gets even worse when someone is paying for a place they are not even using. With OSAP cuts and rising rent, we kept coming back to the same problem: students going on co-op, exchange, or summer work terms need a better way to sublet their place without losing money or getting buried in low-quality leads.
Starring
Production Challenges
Reliable Media Uploads
Early on, routing walkthrough videos through the app server caused request-size and parsing failures. We redesigned the flow around direct signed uploads to Cloudinary so the rest of the pipeline could run from a stable asset reference instead of raw bytes.
AI Pipeline Quality Control
The gallery pipeline needed more than a single pass. We built a reviewer-curator loop that can reject weak frame selections, request more source frames, and rerun the curation step until the listing gallery actually feels polished.
Product Reliability Around AI
The assistant, matching engine, chats, and tours all depend on persistence and predictable contracts. We spent a lot of time making sure the surrounding UX has honest loading states, fallbacks, and Mongo-backed data flows so the AI features feel like part of a real product.
Production Design
We built Sublet-Me with the Next.js 16 App Router for the frontend and product-facing API layer, backed by MongoDB and Mongoose for users, listings, matches, conversations, and tours. We went with Next.js API routes over a standalone backend because it kept the auth context, middleware, and data fetching in one place, reducing the surface area for bugs in a product where landlords and renters need seamless, authenticated flows. Cloudinary powers the entire media pipeline: landlords upload property walkthrough videos directly from the browser using signed uploads, then the platform generates gallery-ready stills from URL-based video transformations, enriches those frames with AI object tags, and creates an eight-second branded highlight clip for the public listing page. We chose Cloudinary over self-hosted FFmpeg because video transformation at scale is expensive to maintain, and Cloudinary gives us URL-based transforms, CDN delivery, and AI tagging in a single integration. The tradeoff is vendor lock-in on the media layer, but the development speed and reliability were worth it for a product-stage app. On the AI side, three Backboard assistants collaborate in a thread-based pipeline: a Curator selects the best frames, a Reviewer quality-checks coverage and can request more inputs, and a Copywriter turns selected media plus listing metadata into titles, descriptions, amenities, and neighbourhood summaries. We split the AI into three specialized agents instead of one monolithic prompt because single-prompt approaches kept producing inconsistent quality. Smaller, focused agents with clear contracts were easier to debug and gave us better output at each stage. A separate FastAPI "SubletOps" service handles profile memory, assistant turns, history, and recommendation flows. We broke this into its own service because the AI orchestration has different scaling and latency profiles than the CRUD-heavy Next.js layer, and isolating it let us iterate on the AI logic without risking the core product. An agentic matching system scores tenant-listing compatibility across budget, term alignment, location, lifestyle tags, and university proximity. The result is a real landlord and renter workflow with persistent chat, activity-triggered notifications, Google Meet tour scheduling, and media-rich listing pages generated from a single uploaded video.