The easiest way to add MLS search, maps and properties to React and Next.js

React IDX Plugin with CRM for React & Next.js Real Estate Websites

Buying Buddy's official React package makes it easy to add MLS search and lead capture to your React or Next.js app. Drop in components for search, listings, maps and capture - no script tags to manage.

Get A Free 30-Day Trial!

npm install

Add @buyingbuddy/react.
Wrap your app in the provider.

Drop-in Components

Render MLS properties anywhere across your React and Next.js pages.

Built for SPAs

Hooks into React's lifecycle so widgets work with client-side routing.

Give your React real estate app serious MLS authority

Add IDX to your React or Next.js website.

The Buying Buddy React package integrates MLS search, property listings, interactive maps and lead capture into your app as idiomatic components.

A single <BuyingBuddyProvider> loads the runtime for your account, then you add <BuyingBuddyWidget> components wherever you need MLS content - no manual script tags.

It is built for single-page apps, so widgets initialize correctly even with client-side navigation - the common pain point with script-based IDX in React.

One package covers Vite, Create React App, Next.js (App Router and Pages Router), Gatsby and Remix.

WordPress logo

Divi Builder logo Elementor Builder logo Genesis Framework logo Themify logo Seedprod logo Visual Composer logo Beaver Builder logo

Discover how

Real estate leads viewing a React or Next.js real estate website with IDX MLS search.
Quick Setup
Components, not scripts
Map Searching
Next.js Ready
Add the official Buying Buddy React package and render MLS search, listings and capture as components anywhere in your React or Next.js real estate website.

Create Your Real Estate Showcase

Use Buying Buddy widget components to display MLS search forms, listings, canned search results, an interactive map, capture forms and a lot more.
  • Add a quick-search or full-search to your pages.
  • Search with a radius or just close-by.
  • Interactive dynamic map search tool with polygon shape search is built-in.
  • Use various layouts such as a gallery / grid, a list view or a map to show properties.
  • Create hotsheet landing page widgets that will display any properties:
    • Your own listings, listings from your office, or listings from your team.
    • Any available listing status including for-sale / active, pending, sold, coming soon, and even rental.
    • Any MLS field such as areas like city, zip, county, or type / subtype of property or any other field.
    • Your private, off-market pocket listings can be added and displayed too.
  • Status banners highlight listings that are recently listed, have a reduced price, or have an open-house.
Learn More
MLS property listings displayed in a grid layout inside a React application.

Built for React and Next.js

Your pages, routes and metadata stay under your control with your framework's own routing and head management. Buying Buddy widgets add the live MLS data, search and lead capture.

Buying Buddy widgets render in the browser after the runtime loads, hooking into React's component lifecycle so they initialize exactly when they mount - reliable in single-page apps and with client-side navigation.

You build SEO-friendly pages with your framework as usual, then drop in widgets for MLS search, listings and capture. Four foundation routes - results, details, market reports and communities - power the full search-to-listing flow.

Learn More
React and Next.js pages and metadata you control, with Buying Buddy widgets adding live MLS data.

How To Add IDX to React

The Buying Buddy React package installs like any other npm dependency in your React or Next.js project.
  1. Run npm install @buyingbuddy/react and get your activation key.
  2. Wrap your app once with <BuyingBuddyProvider activationKey="...">.
  3. Add <BuyingBuddyWidget> components - a search form, your foundation routes (results, details, market report, communities), and the disclaimer.

Widgets are modular, so place them as needed across your pages. They are mobile-responsive and container-responsive, so they fit seamlessly into any React layout.

Learn More
Adding Buying Buddy to a React app: install the package, add the provider, add widgets.

More Properties Will Give You More Credibility

Displaying curated MLS properties across your React app is simple - configure a widget with a type and a filter.

Use the Widget Wizards in your Buying Buddy dashboard to define niche displays and hotsheet landing pages. The wizard guides you to specify what to show and gives you the configuration to use.

First, decide the widget (map, list, gallery).
Then pick the MLS criteria that define the properties to show. Map the result onto a <BuyingBuddyWidget> via its type and filter props.

Render that component on any React page or route to show your curated displays of properties.

Learn More
Configuring a Buying Buddy widget in React with type and filter props to display MLS properties.

Style and Theme

Use Buying Buddy Widget Themes to seamlessly blend IDX widget content with your React or Next.js design and brand.
  • The library holds a large collection of Themes.
  • Or, create a Theme, using the Theme editor.
  • Or, if you wish, you can also edit CSS if needed.
See Demo
Styling Buying Buddy IDX widgets to match a React or Next.js website theme.

React IDX Plugin - Common Questions

Install the official package and wrap your app once with the provider:

  1. Run npm install @buyingbuddy/react.
  2. Add <BuyingBuddyProvider activationKey="your-key"> near the top of your component tree.
  3. Place <BuyingBuddyWidget type="SearchForm" /> and other widgets wherever you want MLS content.

The provider loads the Buying Buddy runtime for you, so there are no script tags to manage. The same package works across Vite, Create React App, Next.js, Gatsby and Remix.

Yes. Because the provider loads in the browser, it lives in a Client Component. In the App Router, create a small "use client" providers wrapper and use it in your root layout; in the Pages Router, wrap the app in pages/_app.tsx.

Pages that render widgets are interactive client components - add "use client" to the page, or keep the widget in a small client component imported into a server page so your data fetching stays on the server.

Yes. Widgets will not load without a valid Buying Buddy account and activation key - there is no anonymous mode. Find your key in your welcome email or in your dashboard under Widgets > Installation and Setup, and pass it to the provider as the activationKey prop.

Don't have an account yet? Start a 30-day free trial or buy a license.

Widgets only load on domains registered to your account. localhost is not currently supported, but you can use a sandbox, staging or development domain - just ask our Help Desk to add it as an authorized domain.

Four routes, each rendering a single widget:

  • Results route (e.g. /listing-results) renders <BuyingBuddyWidget type="SearchResults" />
  • Details route (e.g. /listing-details) renders <BuyingBuddyWidget type="SearchDetails" />
  • Market Report route (e.g. /market-area-report) renders <BuyingBuddyWidget type="MarketReport" />
  • Communities route (e.g. /featured-communities) renders <BuyingBuddyWidget type="Communities" />

Keep only that one widget in the main content of each (a footer Disclaimer and header login widgets are fine), confirm the paths match the Foundation Pages tab in your dashboard, and do not put a search form on these routes.

The widgets render in the browser after the runtime loads, so their content is not part of the initial server HTML. They are ideal for interactive MLS search, listing display and lead capture inside your React or Next.js site.

Your pages, routes and metadata stay under your control with your framework's own routing and head management, so you build SEO-friendly pages and add Buying Buddy widgets for the live MLS data and capture.

No. You don't need any API credentials, tokens or keys from the MLS, and there are no databases to add to your app. Buying Buddy receives the IDX feed directly from the MLS and the widgets display that content in your pages.

An IDX license agreement and approval from your MLS is required to show live data - a standard process we help you with. Until then, widgets display data from our Demonstration MLS, and switch to your live MLS automatically once approved.

The @buyingbuddy/react package requires React 18 or 19 as a peer dependency. A manual script-based fallback works on any modern React version, but the package is recommended for virtually every project.

Or, call: 800.205.0317