A vision pass that reads a listing photo down to the note on the counter.
Each phone photo is compressed, then a vision pass names the object and where it sits. Personal notes, mail, and identifying photos are flagged on their own, even when the rest of the room is ready. $19.99, no login.
- Real estate · AI
- Live product
- Custom
- Live
- Next.js / React / Supabase / Stripe

- 4
- vision passes, one photo at a time
- Privacy
- notes, mail, and identifying photos called out on their own
- $19.99
- one payment, then a link by email and text
Techtribe built ListGreenLight as a computer-vision product for the hour before a listing shoot. Four phone photos are processed, read, and turned into a checklist that names the object and the spot, including personal notes and photos that should never be published with the house. An agent pays $19.99. The seller opens a link with no account. The product is live at listgreenlight.com.
What challenge did ListGreenLight need to solve?
A listing photo fails in two different ways. The room is still cluttered, and the frame still contains things that identify the people who live there: a handwritten note, a stack of mail, a diploma, a family photo on the fridge. Saying that out loud is a critique of someone's house. Missing it means a reshoot, or a private detail published with the listing.
The input is a phone photo, not a studio file. It can be huge, slightly tilted, and full of a second room through a doorway. A useful check has to tell a pot on the island from the island itself, ignore the dining room in the background, and still catch a small piece of paper. "Tidy the kitchen" is not a result. Four rooms only: kitchen, living room, primary bedroom, and primary bathroom. A room that is already fine should stay fine. The realtor clears the listing before anything is shared.
What did Techtribe build for ListGreenLight?
Seven steps, and no password. The hard part is what happens to the image.
Image processing on the phone. Each photo is drawn to a canvas in the browser and exported as JPEG. If it is still over the size cap, quality steps down, then the frame itself is scaled down, until the file will upload. The upload retries if it fails. Supabase stores that frame with the property. The vision pass never sees the original camera file.
A vision pass per room. Kitchen, living room, primary bedroom, and primary bathroom are analyzed on their own. The pass walks the frame from far left to far right, then from the back of the room to the foreground, and it is not allowed to stage a second room visible through a doorway. It has to name an object from what is actually visible, and bind that object to the surface it sits on: the pots on the island, the stool on the bathroom floor, the tag on the window ledge. Permanent furniture and fixtures stay. Advice that only says "declutter" or "tidy up" is thrown out. The response has to come back as structured data: pass or needs work, a narrative, a checklist, condition and touch-ups, a polish line, and a privacy note. If the first model returns nothing usable, a fallback model retries.
Sensitive objects are their own check. Clutter and privacy are not the same problem. The same pass looks for personal notes, mail, calendars, diplomas, certificates, medication, contact details, and photographs that show a name or a face. Those are called out to be put away. A privacy note can appear even when the rest of the room passes. A diploma is not treated as decor.
Only the failed rooms come back. Passing rooms lock as Looks Good. The seller replaces the ones marked Reupload Required, and those new photos go through the vision pass again. The last step is labeled for the realtor: GreenLight Approved, Minor Adjustments, or Approved As-Is.
The app is Next.js and React. Payments use a Stripe card field.
What were the results?
An agent hands over a link instead of a staging conversation. Each photo is reduced to a frame the model can read, then read for the specific object and for the private ones. Rooms that are already fine stay locked. Personal notes, mail, and identifying photos are flagged before the listing is shared. The listing is $19.99, paid once.


- Client
- ListGreenLight
- Timeline
- In production
- Our role
- Computer vision and full-stack engineering
- Stack
- Next.js, React, Supabase, Stripe