How to build a rental booking platform with v0
Build your rental marketplace UI-first with v0. Generate search, listing, and checkout pages in live preview before touching any backend code. Once the design is ready, connect your database to save bookings and enforce guest, host, and admin security roles, all within the same chat.
v0
$ Sketch a rental marketplace: a search page and a listing page for guests, a dashboard for hosts to manage their listings and payouts, and an admin view for disputes. Once those exist, connect a database and lock every table down so each role only reaches what it should.
- Screens sketched in the live preview
- Database connected and routes written
- Ready for a pull request
What a rental booking platform actually is
A rental booking platform, the shape Airbnb popularized, is where guests search and book a stay, hosts list a property and get paid for it, and someone in the middle keeps the whole marketplace honest.
Before a platform like this, a host runs bookings over email, a shared calendar, and a bank transfer, so double-bookings happen, payouts get delayed, and disputes have nowhere to go. A rental marketplace pulls all three sides into one system.
The genuinely hard parts are the availability calendar, which can never double-book a night, and the booking-and-payment lifecycle that holds a guest’s money, confirms the stay, and eventually pays the host their share. The listing pages are the easy part. Get those two right and the rest of the marketplace is mostly screens on top.
Three sides, one system
Guests, hosts, and admin all work off the same data: a booking a guest makes is the same row a host gets paid against, and the one an admin sees if something goes wrong.
A calendar that can’t lie
Availability has to be enforced in the database, where it can’t be gamed, rather than hidden in the UI, or two guests can end up confirmed for the same night.
Money that moves twice
A booking payment is held, confirmed, and then split into a host payout and a platform commission. Model that lifecycle once, and every screen that touches money reads from the same truth.
A market moving fast
$219.9B
in global short-term rental bookings in 2025, growing at a 5.3% clip toward $270.6B by 2029, per Phocuswright’s 2026 market-sizing report.
Phocuswright Research, 2026 (Global Short-Term Rentals 2026 report) · checked August 2026
The parts every rental platform is built from
Before you build, it helps to know the pieces. Almost every rental marketplace comes down to these six. Each one is something you can ask your AI coding tool to build or extend in plain words.
Listings and search
Hosts create listings with photos, amenities, and pricing. Guests search and filter by location, dates, and price. Everything else in the marketplace hangs off a listing.
An availability calendar that can’t double-book
Each listing’s calendar blocks a date the moment it’s booked, so two guests can never be confirmed for the same night.
The booking and payment lifecycle
A guest requests dates, pays, and gets a confirmation. The booking moves through hold, confirmed, completed, or cancelled without anyone editing a spreadsheet.
Host payouts and commission
The platform takes its cut and pays the host the rest, on a schedule the host can see, rather than a manual transfer you run yourself.
Reviews and messaging
Guests and hosts message each other about a booking and leave reviews afterward, so trust builds the way it does on any real marketplace.
Admin moderation and disputes
An admin has to step in when a listing is misrepresented or a booking goes wrong. Moderation tools and a dispute queue are what make that possible.
Own your marketplace or rent the software forever
Most people building a rental business reach for hosted booking software, then watch the bill climb with every listing they add. Owning your platform flips that. Here’s the trade-off, side by side.
Build your own
Your own rental platform is a one-time build you shape exactly to how you run bookings, and with an AI coding tool writing the plumbing, that build is days, not a quarter.
- Pay to build it once, then only your own infra bills: no per-listing or per-booking fee
- A booking flow, cancellation policy, and payout split that match exactly how you run stays
- Add unlimited listings and hosts without jumping to a bigger tier
- Keep 100% of your booking revenue: no revenue-share cut to a vendor
- Add your own AI features on the model you choose: guest replies, pricing suggestions, listing copy
- Full ownership of the code and data: export anytime, zero lock-in
Buy hosted booking software
Lodgify · Guesty · Hostaway · SharetribeHosted booking software, or a no-code marketplace builder, is faster to switch on, but the bill scales with every property, listing, or transaction you add, and you work inside their calendar and payout rules.
- Live in minutes: sign up and start, nothing to build or host
- Channel sync to Airbnb and Booking.com on Lodgify, Guesty, and Hostaway, but not on Sharetribe, which is its own marketplace rather than a channel manager
- Support and onboarding included
- Per-property, per-listing, per-reservation, or (on Sharetribe) a subscription plus per-transaction fees past a free quota. Every shape climbs as you grow
- Their booking flow, cancellation rules, and payout schedule: not yours to change
- Deep customization is capped or unavailable
- Your guest and payout data live on their servers
Basic and Starter are hard-capped at 1-2 properties, so a real multi-property operator lands on Professional or Ultimate, from $42/mo (1 property, annual) up to $270/mo (10 properties, Ultimate, monthly). Lodgify’s own FAQ, verbatim: “No, there’s no setup fee when joining Lodgify. Free onboarding is included,” and “No. Lodgify does not take a cut of your bookings. You pay a flat subscription fee and keep 100% of your rental income.”
lodgify.com · checked August 2026
Lite carries a flat 1% per-reservation fee on top of the subscription. Guesty’s page doesn’t say whether that continues once you’re quoted into Pro. Our three-sided marketplace competes with a multi-listing operation, which is Guesty’s Pro tier: no public price, quote only.
guesty.com · checked August 2026
Hostaway’s pricing page is a lead-gen funnel: it asks how many listings you manage, then asks for contact details to “get a free quote.” No price is published anywhere on the page, at any tier.
hostaway.com · checked August 2026
Build is the test-only plan, so a live marketplace starts at Lite. Lite has no custom domain, which is why Pro is the tier most marketplaces actually launch on: it adds a custom domain and third-party integrations, and includes 250 free transactions a month, then $0.19 or less per transaction beyond that. The page publishes yearly rates only, so no month-to-month figure is quoted here. Payment processing is not included: Sharetribe’s own FAQ says, verbatim, “Typically, this is around 1.5-3% of the transaction size,” charged by Stripe on top. Setup fee: none. The FAQ states, verbatim, “All of Sharetribe’s fees are outlined on this page.”
sharetribe.com · checked September 2026
Rule of thumb: if you run more than a handful of properties and want the booking flow, cancellation policy, and payout split to match exactly how you operate, building your own pays for itself within months of what a per-listing subscription would have charged. If you need built-in OTA channel sync today and would rather not touch a codebase, buy, then revisit once the bill outgrows the value.
Why build with v0
v0 starts with the screens: forms, tables, dashboards, whatever the interface needs, generated in React and Next.js from a plain description. That’s the part most people notice first, because it’s fast and it looks finished immediately.
The backend isn’t automatic in the same way. v0 can write it too, meaning Next.js routes and server logic that read and write real data, but you ask for it, usually once the UI already exists and there’s something real to connect it to:
Sketch
Describe the screen or component you want.
Preview
See it rendered live, and select any part of it to adjust directly.
Connect
Add a database and the routes that read and write to it, once the UI needs somewhere real to save.
Iterate
Prompt again for the next screen or the next piece of logic.
The order matters here more than with a full-app builder: v0 gets you a finished-looking interface fast, and the data underneath doesn’t show up until you ask for it and give it somewhere to live.
One clickconnects a database
Supabase, Neon, and Upstash are integrations you add from the project menu once a screen needs to hold onto something real, and v0 provisions the credentials and writes the routes that use them.
Live preview is the feedback loop
Every prompt updates the working interface right there in the chat, so you see the actual screen changing instead of imagining it from a description.
Design mode edits without a prompt
Select an element in the live preview, adjust its style directly or type a plain-language instruction, and v0 applies the change back to the real source code as a new version.
Pay a developer, or do it with AI
Two ways to get the same app built: pay a developer for their hours, or spend your own describing it to an AI coding tool. Here is what each one costs to build, and what it costs to keep running once it is live.
Hire a developer
Custom build, from scratch- Developer
- ~$15k-$58k
- Supabase (backend)
- Free tier · $25/mo (Pro plan)*
- Hosting
- $0 free tier
- Build time
- ~290 hrs of their work
~$15k-$58k to build, then ~$25/mo after launch
That range is our ~290-hour estimate priced at market dev rates: North American freelance rates run about $40-$150/hr depending on seniority, and agencies add another 20-40% on top, so roughly $50/hr at the low end up to ~$200/hr for an agency, all spent just to get listings, bookings, payouts, and admin moderation working before launch. After that, your only ongoing costs are Supabase and hosting.
Build it with v0
From scratch, with v0- v0
- $0 ($5/mo of credits) to $30+/month (Plus)
- Backend (Supabase)
- Free tier · $25/month (Pro plan)*
- Hosting (Vercel)
- Free on Vercel’s Hobby plan
- Your time
- ~139 hrs
Free to try the idea, ~$30+/month on Plus while you build a real one, then whichever plan you keep using
v0 bills in dollars of credit rather than a flat fee, so cost tracks usage: importing the pre-built template can fit inside Free’s $5 a month, while a from-scratch build runs into Free’s 7-messages-a-day cap quickly and usually needs Plus, at $30 per user per month with no annual discount shown. Because v0 generates the interface and the backend as separate steps rather than one pass, expect more prompts to reach the same result than a tool that writes both together.
* Supabase is free while you build and for light use, though projects pause after 1 week of inactivity, and the free tier caps you at 500 MB of database and 2 active projects. The Pro plan, from $25/mo, keeps your database running around the clock for real guests and hosts.
Either way you own the code outright, so there is no per-listing subscription and every new host account costs you nothing. The one cost neither column shows is the payment processor’s fee on each booking, because a guest’s money has to reach a host somehow. That fee is a percentage of what you take rather than a monthly bill, so it grows with your bookings and not with your listings. The payments section below prices the three usual ways to move it.
Prices and rates from supabase.com, developex.com, v0.app, v0.app and vercel.com, checked August 2026.
Decide before you build
Get these right before you start building, and the rest is smooth sailing. Each is a decision to make, not code to write.
What a listing is
Every booking starts here: title, description, location, photos, amenities, base nightly price, and any extra fees (cleaning, pet, weekend). Decide what a listing needs before you write the schema, because it is the one table everything else links to.
Availability and pricing model
Price nightly, weekly, or both. Add a minimum-stay rule, blackout dates a host blocks by hand, and whether price varies by season or day of week. Settle this early, because it shapes the calendar table and the booking form both.
Who takes payment, and how payouts split
Decide whether your platform account takes the guest’s payment and pays the host their share afterward, or the host’s own connected account takes it directly. Either way, settle your commission percentage before you build the payout logic, not after.
Three-sided roles
Guest, host, and admin, plus whether one person can be both a guest and a host on the same account, which is the normal case on a real marketplace. Decide this before you write the access rules, because it changes what a role even means.
Cancellation policy
Flexible, moderate, or strict, plus how much of the guest’s payment gets refunded at each cutoff. This is a business decision as much as a technical one, and it drives the refund logic in the payment lifecycle.
Which payment provider
Stripe Connect is the standard choice for a marketplace that splits one payment between the platform and a host, because it is built for exactly that. Decide this up front, because it shapes the payments schema and the payout screens both.
Comparing your build options
Where you start decides whether these hours go into wiring a backend from nothing, or into the screens guests and hosts actually use. Here’s the same rental marketplace, three ways: by hand, with a UI kit that never gets past the front end, or in v0, sketching the interface fast, then connecting it to a real database once there’s something to save.
Weeks of setup (three sets of accounts, an availability calendar, payments, and payouts) before writing your first real feature. Full-stack complexity, entirely on you.
You get front-end screens for guests, hosts, and admin, but nothing behind them: no database, no booking logic, no payouts. The entire backend is still yours to build.
Sketch the screens first, then connect a database and ask for the API routes that make them real. The same list of tasks, split into two deliberate passes instead of one continuous build.
Estimate your exact build timeframe
Tick the features your marketplace actually needs and get an instant, realistic estimate tailored to your exact scope, so you stop guessing at a timeline.
Your estimate
139 hrs
start to finish
Based on the 6 of 6 features you’ve selected, plus ~34h of groundwork. Toggle any on the left to watch the number move, and open the groundwork row to untick what you have already, such as a database that is already running or going live if you are only building a mock-up for now.
A rough estimate, not a quote. Real time depends on how much you customize and how clean your data is.
Let’s set up the tools you need
v0 runs entirely in the browser too, so there’s no download and no terminal. Before step 01: sign up, pick a plan, and know that a database is one click away once a screen actually needs to save something. GitHub is the last piece, and it’s what turns the chat into a project you can hand to someone else.
v0 account
Sign in with a GitHub, Google, or email account and you land in a chat where you describe the interface you want. There’s nothing to install.
Sign up for v0v0 subscription
Free includes $5 of credits a month, capped at 7 messages a day, which is fine for trying a few screens and thin for a real build. Plus is $30 per user per month, billed monthly only (v0’s pricing page shows no annual option), and it’s the realistic floor once you’re iterating past a handful of screens.
Compare v0 plansDatabase (Supabase, Neon or Upstash)
Where your project keeps its data, added when a screen needs one. v0 generates the interface first. A database is a one-click integration you add from the project menu once a screen needs somewhere real to save to, with Supabase, Neon and Upstash as the options, and connecting one lets v0 write the routes that use it.
Connect a database in v0GitHub connection
Not needed to build anything, since v0 keeps its own history of every change. Connect a repository from the chat’s Git panel and v0 also commits every code-changing message to its own branch, ready to merge as a pull request. That is the step that turns the chat into a project other tools, and other people, can use.
Connect v0 to GitHubThe database step is the one worth not skipping once your screens need real data. Everything else here takes a couple of minutes, and after that you’re just describing what you want.
Build your marketplace core: screens first, backend behind them
v0 generates a working interface before it generates a backend, so the order below runs the opposite way from a tool that writes both at once: sketch the screens that need real data, connect a database, then build the rest against it. Send one message, check the live preview, then send the next.
- 01
Sketch the search and listing screens, no backend yet
Start a new v0 chat and describe the two screens every visitor sees first, before a database exists behind them. v0 generates a working Next.js interface you can click through right away, filled with placeholder listings. The real data comes in the next step.
PromptSketch the first screensBuild a Next.js app with Tailwind for a rental marketplace. Start with two screens: a searchable listings page (cards showing photo, title, location, and nightly price, with filters for location, dates, and price) and a listing detail page showing photos, amenities, and an availability calendar. Use realistic placeholder data for now. We’ll connect a real database in the next step.
Placeholder data is deliberate here, because it’s faster to see the shape of a screen before there’s a schema underneath it.
- 02
Give those screens something real to save: connect Supabase
Connect a Supabase project from the project menu, then ask for the two tables the screens from step 01 actually need: a listing, and a calendar that can never double-book it.
PromptConnect Supabase and model listings and availabilityConnect this project to a Supabase database from the project menu. A listing needs an owner (the host), a name and a description, a place, a list of amenities, what it costs a night, and a set of photos. Store the photos in Supabase Storage rather than the database row itself. Alongside it, track which date ranges are already booked on each listing, and stop a new booking from landing on one that already exists with a database-level constraint, not a check in the interface. Once that migration is applied, write the routes that read from it, and swap the search and listing pages over to them instead of the placeholder data from step 01.
This is the one migration worth reading end to end, because a listing page that shows an already-booked night is worse than one that just loads slowly.
- 03
Turn on sign-in, then split guest, host, and admin
Add sign-up and login through Supabase Auth, then a role model that lets one account be a guest on one booking and a host on another, the normal case on a real marketplace.
PromptAdd auth and rolesAdd Supabase Auth email-and-password sign-up, login, and logout, called from Next.js route handlers with the session available to the rest of the app. Then create an app_role enum for 'guest', 'host', and 'admin', and a user_roles table linking a user_id to a role, letting one account hold more than one. Add a has_role(_user_id uuid, _role app_role) SECURITY DEFINER function reading from user_roles, so the routes we write next can check it without recursing.
Keep roles in that table, never on the Supabase user object itself. A role a user can edit is a role they can grant themselves.
- 04
Add bookings and payouts, then lock every row down
Add the table that turns a stay into a real booking and the one that tracks what a host is owed, then let row-level security decide who can reach which rows.
PromptAdd bookings, payouts, and RLSCreate a bookings table (a listing, the guest, check-in and check-out dates, a status, and the total price) and a payouts table that links a host to one of their bookings, with the platform’s commission already split out as its own column. Then turn on row-level security: a guest can read and insert only their own bookings, a host can read and manage only the listings and payouts tied to their account (checked with has_role), and an admin (also checked with has_role) can reach every row. Name the WITH CHECK clause on every insert and update explicitly, so nobody can create a booking or payout under someone else’s name. Write the routes for creating a booking and viewing payouts next, then show me how you’d prove a second guest can’t read the first guest’s bookings.
Read this one closely before merging the pull request it lands on. A mistake in these policies means one guest reading another guest’s booking history.
- 05
Connect checkout, the host dashboard, and admin to real data
Sketch the remaining screens the same way as step 01 (checkout, a host dashboard, an admin dashboard), then connect each one to the routes and tables that already exist, instead of building them against data you’d have to redo later.
PromptBuild and connect the remaining screensBuild a checkout flow that creates a booking and takes payment through Stripe, a host dashboard covering listings, bookings, and payouts, and an admin dashboard covering listings, disputes, and transactions. Connect all three straight to the routes and tables from the earlier steps. These have no reason to start on placeholder data the way the first two screens did.
- 06Destination
Wire in reviews and messaging, then open the pull request
Two more tables round out the marketplace, reviews and a booking-scoped inbox, then open a pull request for this chat’s work and try the real flow before you merge it.
PromptAdd reviews, messaging, and testA review only means something once the stay is actually over, so tie it to a completed booking and hold it back from view until both sides have submitted one. Alongside it, add a messages table scoped to a single booking, so a guest and host talk about that stay and nothing else. Then connect this project to GitHub, open a pull request from this chat’s branch, and walk me through testing the full flow before we merge it: search, book, pay, message the host, leave a review after checkout.
Built-in security for guests, hosts, and payouts
Security isn’t an afterthought when a booking moves someone’s payment and personal details. Here is how your data stays protected, in simple terms, and the core rule that keeps it secure.
Proven logins, three ways in
Guests, hosts, and admins all sign in through the same battle-tested system. You don’t build login security yourself. Email and password works out of the box. Social sign-in is a small add.
Overlapping user roles
A guest books, a host lists and gets paid, an admin moderates the whole marketplace. On a real platform, the same person is often a guest on one booking and a host on another. Decide the access rules with that overlap in mind, not as three separate user types.
Guest data and payout details stay protected
A booking platform holds two kinds of data that matter more than most: guest personal details tied to a real stay, and a host’s bank or payout information. Both need the same row-level protection as everything else. Neither should be reachable by a role that has no reason to see it.
Row-level security across a three-sided model
The template ships 121 row-level security policies precisely because three roles reaching the same tables from different angles is harder to get right than two: a guest reaches their own bookings, a host reaches their own listings and payouts, an admin reaches everything, and the database enforces all three at once.
Administrative keys stay protected
Your app only carries a “public” key that’s safe to share. The keys that can bypass access rules or move money live on the server only, never in the app or a public code repo: the database’s service key and the payment provider’s secret key.
Automatic daily backups on Pro
Daily backups are a paid feature: the free tier has none, so while you are building, your database is the only copy. Supabase Pro (from $25/mo) adds a daily backup with 7 days of history. Move to Pro before real bookings and real payouts depend on that data.
Review the access rules (row-level security policies) on every table. For each one, tell me in simple terms who can view, add, edit, and delete records, confirm that people can only reach their own data while the right roles can reach more, and flag anything left open that shouldn’t be.
Paste this into the chat before launch so v0 checks nobody can see data they shouldn’t.
The one rule that matters: never put a secret key, database or payment provider, in the app or a public repo. If one ever leaks, reset it right away.
What speeds the build, and what slows it
Speeds the build
- One screen per message, checked in the live preview before you ask for the next one
- Adding a database as soon as a screen needs to remember something, so v0 wires it up as it builds
- Clicking the thing you want changed in Design mode, rather than describing where it sits
- One feature per chat, so its history reads as a straight line you can walk back
- Sending a finished chat over to GitHub before starting the next feature, rather than stacking several together
Slows the build
- Asking for the whole app in one message instead of one screen at a time
- Building screens for data the database does not hold yet
- Describing which button to change when you could just click it
- Letting one chat run for weeks, so going back to an older version undoes everything built after it
- Approving several messages in a row without looking at the preview after each one
Connecting GitHub (Optional)
Every change in v0 is saved automatically without any technical setup. You only need to link GitHub if you want a private copy under your own control or plan to hand the codebase over to external developers.
Every message is a version
Each time a message changes your code, v0 saves it as a new version. Restoring an older one adds it back as the newest version instead of branching, so the history stays one straight line.
Versions, v0 docsUndo from the chat itself
Scroll back through the conversation and click the revert arrow on any earlier reply, or open the version number in the top right to jump straight to a specific one.
Connecting GitHub creates a real repository
From the chat’s Git panel, connect an existing repository or create one. v0 never writes straight to your main branch: every code-changing message is committed to its own working branch first.
GitHub integration, v0 docsA pull request is how it gets merged
When you’re ready, publish and open a pull request from that working branch into your base branch, review it like any other, and merge it. Starting a new chat picks up a fresh branch for the next round of changes.
This can also be v0’s deploy path
If the branch your pull requests merge into is also the linked Vercel project’s production branch, merging one triggers a production deployment. If it isn’t, the merge just follows whatever branch behavior that Vercel project is already configured with.
GitHub integration, v0 docsChoosing the right hosting for your rental platform
The site is just a bundle of ready-made files, so it runs on almost any hosting you like, free options included. Your data and logins live separately in Supabase (more on that below).
| Host | Best for | Notes | Free tier |
|---|---|---|---|
| Vercel | One-click deploys | Connect your project and it publishes itself. Standard Vite setup, so it just works. Note the free Hobby tier is for personal, non-commercial projects only: a live rental marketplace needs Pro, from $20/user/mo. | Pro from $20/user/mo (Hobby is non-commercial) |
| Netlify | Drag-and-drop or Git | Connect your project or drag the built folder in. Live in a couple of clicks. | Free tier |
| Cloudflare Pages | Cheapest at scale | Connect your project once for fast, worldwide delivery on Cloudflare’s network. | Generous free tier |
| GitHub Pages | Free Git-based hosting | Publishes straight from your GitHub project. Needs one small tweak so page links work. Catch: publishing from a private repository needs a paid GitHub plan, and this guide tells you to keep yours private, so this one is free only if you make the repo public, which for a marketplace handling real bookings and payouts you should not. | Free from a public repo only |
| Firebase Hosting | Simple setup, Google stack | A short one-time setup, then a single publish command. | Free Spark tier |
| AWS Amplify Hosting | Teams already on AWS | Connect your project in the AWS console. A one-time routing setting makes page links work. | Free tier (build + hosting) |
| Surge | Publish from the terminal | Publish with a single command. No repository needed. | Free - unlimited publishing |
| DigitalOcean App Platform | DigitalOcean users | Connect your project and it builds and hosts the site for you. | Free - 3 static sites, 1 GB/mo transfer |
Any of these works. One thing to check before you settle: a free tier is not automatically free for *business* use. Vercel’s Hobby tier is the strictest here, personal projects only, so a marketplace handling real guests and hosts belongs on a paid plan. Read the plan terms for the host you pick, not just the price.
Keep your data in Supabase
Your data and backend live in Supabase: Postgres, auth, and edge functions. Whichever frontend host you pick above, everything runs here.
| Service | Best for | Notes | Free tier |
|---|---|---|---|
| Supabase | Data, auth, functions | Postgres database, authentication, and edge functions. Create a free project and your AI coding tool connects the app to it. | Free tier, then usage-based |
Choosing your payment rail
Taking the payment yourself is a decision rather than a given. A booking-request site, where the app confirms the stay and the host is paid by transfer or on arrival, costs nothing to run and is how a good many small rental sites start. Taking the money inside the app means one of the three below, and what decides between them is the split: your platform collects from a guest and pays a host out of the same charge.
Built for the exact split a marketplace makes, which is why the payouts table in the build steps above holds the platform’s commission apart from the host’s share. Two lines sit on top of the card rate and both are easy to miss. A host only counts as an active account in a month you actually send money to their bank, and every payout carries a fee of its own, so paying each host once a month costs noticeably less than paying them after every stay.
stripe.com · checked September 2026
The most expensive of the three per booking, and the one a first-time guest booking a stranger’s home is most likely to recognise. On a $900 stay that is about $32 against $26 on the row above, before the international line, which a rental marketplace runs into far more often than a shop does. Worth offering beside a card rather than instead of one.
paypal.com · checked September 2026
The interchange-plus shape, where you pay the card networks what they actually charge and Adyen its margin on top. That beats a flat percentage once enough bookings run through it for the difference to be worth the setup. Read the caveat on their own page before you budget against it: Adyen calls the published figures indicative and asks you to get in touch, so this is the start of a conversation rather than a price you can sign up to this afternoon.
adyen.com · checked September 2026
Work out one number before you connect anything: the fee on a single booking, times the bookings you expect in a year. Three hundred stays at $900 costs roughly $7,900 a year on the first row and roughly $9,600 on the second, for the same money arriving, and paying twenty hosts once a month adds about $480 in account fees on top of the first. Connecting nothing is still a real answer: the calendar, the booking and the commission you record are all correct whether or not a card is ever charged, and a site that introduces guests to hosts and lets them settle up directly pays none of this.
Power your marketplace with native AI automations
Once the core marketplace works, AI is a few more prompts. Each one hangs off a small server-side function that talks to the model, so your key stays there rather than in the app.
Guest-message drafting
Suggests a reply to an incoming guest message from the booking details and the conversation so far. The host reviews and sends, rather than staring at a blank box.
Add a "Suggest a reply" button on the host inbox that sends the guest’s message, the booking details, and the last few messages in the thread to your ai function, and returns a short, editable reply draft the host can edit before sending.
Dynamic pricing suggestions
Looks at a listing’s upcoming occupancy and how far out a date is, and suggests a nightly price for open dates, so hosts aren’t guessing or leaving money on the table.
Add a "Suggested price" panel on the host’s calendar that sends the listing’s upcoming occupancy, day of week, and how far out the date is to your ai function, and returns a suggested nightly rate with a one-line reason the host can accept or ignore.
Review summarisation
Rolls a listing’s reviews into a short summary of what guests consistently like and flag, so a new guest doesn’t have to read fifty reviews to get the gist.
Add a "Summary" block on the listing page that sends its most recent reviews to your ai function and returns a short summary of recurring praise and complaints, refreshed whenever a new review is added.
Listing-description generation
Turns a host’s bullet points about the property into a polished listing description, so a first draft doesn’t stall the listing going live.
Add a "Generate description" action on the listing editor that sends the property’s type, amenities, and the host’s rough notes to your ai function and returns a polished draft description the host can edit before publishing.
v0 doesn’t ship its own model for these prompts, so you bring an API key for whichever provider you want, and v0 writes the route that calls it. Start with a cheap model while you’re still iterating on the prompt itself, then swap in a stronger one for the version that ships, and keep every AI feature behind that one route so there’s only one key to rotate.
Get a head start with our template
The guide above shows how to build this rental platform from scratch. Prefer to skip the boilerplate? Launch with our ready-made template and spend your time customizing, not scaffolding.
Rental Booking Platform
The exact rental marketplace this guide builds, packaged so you can open it, point it at your own backend, and make it yours from there. A full rental booking platform in the spirit of Airbnb, where guests book stays, hosts manage listings and payouts, and you run the whole thing from an admin panel. It hands you the entire three-sided business instead of just a listings page.
The key benefits of starting with a template
The hard, invisible parts are already built and working: listings, availability, payments, payouts, and role-based access. Your time goes straight to what makes the platform yours.
Building the core from scratch
~139 hrs
Opening the template, already built
~1 hr
~138 hrs of building you skip
These measure different things, which is the point: ~139 hrs is what it takes to build the core yourself, and ~1 hr is how long the template takes to open and connect, because that core already exists. Customizing it to your guests, hosts, and brand is time you spend either way, so it is not counted on either side.
A working marketplace from day one
Open a functional app, not an empty folder. Listings, bookings, payouts, and dashboards for all three roles are ready to go.
Pre-configured security and access
Authentication, three-sided roles, and 121 row-level security policies work out of the box, so guests, hosts, and admins each see only what they should.
A polished UI out of the box
Search, listing, checkout, host, and admin screens come already designed, clean and responsive on any device, so it looks like a finished product before you change a thing.
Clean code that’s easy to extend
Typed, well-organized, and documented, so every change you ask your AI coding tool for stays consistent and the app is a pleasure to grow.
From founders who build on our templates
Building a complex marketplace with separate permissions normally means sinking massive effort into infrastructure, disputes, and payment flows. Since the template handled all the heavy lifting upfront, we jumped straight into perfecting the brand identity and map search.
Matt GrahamFounder & CEO, RapidDevCommon questions
No. Your AI coding tool writes the backend on Supabase for you from plain-language prompts: listings, bookings, payouts, and access rules. You create your own free Supabase project, and it wires the app to it, so everything runs on your own data.
Yes, and on a real marketplace they usually are. Roles are assigned per account rather than baked into a single user type, so one person can book a stay as a guest and list their own property as a host.
Yes. Add a small server-side ai function for guest-message drafting, dynamic pricing suggestions, review summaries, or listing-description generation. Pick the tier that fits the job, a fast model for high-volume tasks or a stronger one for judgement calls, and keep your API key on the server, never in the app.
Only the third-party services you connect with your own accounts: mainly Supabase for the backend, a payment provider, and a host for the site. Supabase and hosting both start free. For an always-on marketplace with real bookings, Supabase Pro starts at $25/mo (free projects pause after 1 week of inactivity). You pay those providers directly.
Only the people a role allows: a guest sees their own bookings, a host sees their own listings and payouts, an admin sees everything for moderation. The app runs on your own Supabase project, so for GDPR purposes you are the sole controller of that data.
Through row-level security. Only the public key ever ships to the browser, and every table is protected by Postgres row-level security, so each role can only touch the rows it is allowed to. Secret keys, the database’s and the payment provider’s, stay on the server.
No lock-in. Everything lives in a standard PostgreSQL database, so you can export it all with standard Postgres tools and move to any Postgres host whenever you want.
Yes. Whichever host you pick for the frontend lets you connect a custom domain with free HTTPS in a few clicks.
No. You describe the screen you want in the chat and v0 generates the React and Next.js code behind it. Sign up, pick a plan, and connect a database once your screens need real data. The setup section above walks through each one.
Both, but not automatically at the same time. v0 generates the interface first. The backend (a database and the API routes that use it) is something you ask for once a screen actually needs to save or load real data.
Free plan credits reset monthly, and the 7-messages-a-day cap resets every day. If you hit either limit mid-build, what you’ve already built stays put. You wait for the reset or move up to Plus to keep going right away.
References
Sources checked August 2026- 01Global short-term rental bookings reached $219.9B in 2025, PhocusWire (Phocuswright Research). phocuswire.com
- 02Pricing, Lodgify. lodgify.com
- 03Pricing, Guesty. guesty.com
- 04Pricing, Hostaway. hostaway.com
- 05Pricing, Sharetribe. sharetribe.com
- 06Pricing (Pro plan, free-tier limits), Supabase. supabase.com
- 07Web developer hourly rates 2026 (freelance and agency benchmarks). developex.com
- 08Row Level Security, Supabase docs. supabase.com
- 09Connect pricing (per-account and payout fees), Stripe. stripe.com
- 10Merchant fees (PayPal Checkout, US), PayPal. paypal.com
- 11Pricing (interchange-plus card rates), Adyen. adyen.com
- 12v0 homepage. v0.app
- 13Pricing (Plus, Business), v0. v0.app
- 14Pricing details (Free tier, credit rollover), v0 docs. v0.app
- 15Databases (connecting Supabase and others), v0 docs. v0.app
- 16Full-stack apps, v0 docs. v0.app
- 17GitHub integration, v0 docs. v0.app
- 18Deployments, v0 docs. v0.app
- 19Design mode, v0 docs. v0.app
- 20Versions, v0 docs. v0.app
- 21Pricing (Hobby plan), Vercel. vercel.com
This guide is general information. Third-party prices, plan limits, and market rates are quoted from the sources above and were last checked on the date shown. Vendors change them without notice, so confirm before you budget. Build hours and the cost estimates derived from them are our own estimates, not quotes. Testimonials are from named customers. The integration figures are illustrative. v0 is a product of Vercel. Verify current capabilities and pricing before relying on them.