Inspiration

People commonly buy things that they use once and then it collects dust. To save on waste of time and money, having a convenient community renting option can be the ideal way use one time items.

What it does

Lets owners list items (optionally with an AI draft from a photo), and lets borrowers browse nearby listings, request a date range, and complete the flow through acceptance, return, and reviews. It also tracks loan issues like extension requests, late returns, or damage reports right on the loan.

How we built it

We built Lendly with Next.js App Router + server actions for writes, Supabase for auth/database/storage, and a mobile-first component system (Tailwind + shadcn-style UI + Base UI primitives). For discovery, we compute distance between two coordinates and filter by category/radius. Gemini is used in two places: drafting listing details from a photo and ranking search matches.

Challenges we ran into

  • Getting Supabase RLS and server/client boundaries right with SSR.
  • Handling “real world” messiness: late returns, extensions, and damage reports without turning it into a giant support system.
  • Handling Gemini API rate limiting.

Accomplishments that we're proud of

  • Solid end-to-end flow: listing -> request -> loan -> return -> review.
  • Overlap protection backed by DB constraints/RPC,
  • Useful non-gimmicky AI features.

What we learned

Database constraints and RLS policies are worth the effort to get right early. We also learned that AI is most useful when it’s boxed into schemas and treated like a helper,

What's next for Lendly

  • In-app messaging + notifications for requests/returns
  • Trust features (verification polish, moderation/disputes)

Built With

Share this project:

Updates