Custom Coding a Home Search as a Realtor & Non-Developer

As a Realtor, I’ve always focused on finding new ways to bring value to my clients. But when my website’s third-party software provider raised their prices by over 50%, I faced a crossroads: continue paying exorbitant fees with limited customization or take matters into my own hands. I chose the latter, embarking on an ambitious project to build my own custom real estate search tool. 

Over the past 2.5 months, I’ve learned to code and created a custom home search solution from scratch, and I’m excited to share the journey with you.

Joe's Homes Custom Home Search
The custom created home search on desktop showing map & listings

Why I Went This Route

The Cost of Staying the Same

When my previous software provider increased their fees while adding useless features, it became clear that continuing down that path wasn’t sustainable—especially with plans to expand into multiple markets. Each additional website required its own subscription, and the costs added up quickly.

The Freedom to Customize

Custom coding offered an unparalleled opportunity to create a platform tailored to my needs. Unlike generic third-party solutions, I could design features and functionality specific to how I work and what my clients need.

A Foundation for Growth

This custom system isn’t just a tool for my current website. It’s the start of something much bigger. With over 25 domains, I can now build unique websites for different markets without the restrictions of costly software subscriptions. This project has opened the door to opportunities I never thought possible.

The Unique Challenges I Overcame

Taking on this project meant venturing into unknown territory. Here’s a look at the major hurdles I faced:

Learning JavaScript and PHP

When I started, I had no real experience with JavaScript or PHP—the backbone of this project. Every step involved learning something new, from syntax and functions to debugging complex code.

Styling Raw JSON Data

Working with API data was another steep learning curve. Real estate data comes in raw, unformatted JSON, and I had to figure out how to transform it into a polished, user-friendly interface. (See Sample ->)

Google Maps Integration

Syncing map boundaries with listings was one of the most technically challenging parts of the project. I also had to implement clustering for grouped listings, ensuring the map remained responsive and informative.

Example of map markers & clusters on Google Maps

Adding User Authentication

Building a functional yet simple sign-in process was critical. I decided to use Firebase, allowing users to log in with just their email—no passwords required. This approach simplified the user experience while allowing me to let users favorite listings, save searches, & request information without continuously having to enter their information.

Example of raw JSON data for 7 Edward Ave in Lynnfield

				
					{
  "mlsNumber": "73292691",
  "resource": "Property:7000",
  "status": "A",
  "class": "ResidentialProperty",
  "type": "Sale",
  "listPrice": 2275000,
  "listDate": "2024-09-19T00:00:00.000-00:00",
  "lastStatus": "New",
  "soldPrice": null,
  "soldDate": null,
  "originalPrice": 2399900,
  "assignment": null,
  "address": {
    "area": "Essex",
    "city": "Lynnfield",
    "country": "US",
    "district": null,
    "majorIntersection": null,
    "neighborhood": null,
    "streetDirection": null,
    "streetName": "Edward Ave South",
    "streetNumber": "7",
    "streetSuffix": null,
    "unitNumber": null,
    "zip": "01940",
    "state": "MA",
    "communityCode": null,
    "streetDirectionPrefix": null
  },
  "map": {
    "latitude": 42.529052,
    "longitude": -71.066404,
    "point": "POINT (-71.066404 42.529052)"
  }
				
			

Creating Custom Property Types

The Repliers API provided multiple parameters that needed to be combined for me to accurately display and filter by property type. For example, defining property types like “Condo” or “Single Family” involved mapping numerous data points to make searches accurate and intuitive. Just when it comes to property type there’s: Class, Type, Property Style, & Property Type which depending on how they were combined determined how I’d display something simple like “House”, “Rental”, or “Condo”.

Setting Up Email Listing Alerts

Email functionality involved more than just sending updates. I configured DNS settings and implemented token-based authentication, so users can automatically log in when they click on a link in an alert. Surprisingly important! Think about when you click on an email from your favorite retailer, I can almost guarantee they sign you in behind the scenes so adding to cart & going to checkout is seamless!

How to Use it

This tool isn’t just a technical achievement—it’s a functional system designed with users in mind. Here’s how it works:

Home Search Page

On the home search page, you’ll find an interactive map. You can zoom, pan, and watch as listings update dynamically based on the map boundaries. For mobile users, the map is disabled to simplify navigation.

City Search on Joe's Homes

City Search and Filters

Start typing a city name, and you’ll see aggregate results to refine your search. You can add multiple cities to your search, displayed as removable bubbles for easy adjustments.

25 Hancock St, Newburyport Listing Card

Favorite Listings

Click the heart icon to favorite a listing, but first, sign in or sign up. My streamlined authentication system means you only need your email to log in—no passwords required.

Saved Search on Joe's Homes

Save Searches

Once signed in, you can save a search that includes at least one city. This allows you to revisit your preferences anytime.

Listing Detail Pages

Each listing has a dedicated page. On desktop, you’ll find a sidebar for contacting me, requesting info, or scheduling a tour. For mobile users, a slightly modified page layout to work for the screen size & I’m still working on a streamlined solution to integrate the contact functionality.

Listing Detail Page
A Sample of the detailed listing page for 168 Orchard St in Newbury

Account Management

Your account page is the hub for managing favorites, saved searches, and personal information. It’s all about keeping your home search organized and efficient.

What's Coming Next

Building this custom system has unlocked incredible possibilities for the future. Here are just a few ideas I’m excited to explore:

AI-Powered Image Search

Using the Repliers API, I could integrate AI to scan listing photos for specific features—like fireplaces or swimming pools. Imagine narrowing down your search based on what you want to see in your next home.

Example of Saved Searches on "My Account" Page

Real-Time AI Chatbot

A chatbot powered by real-time Massachusetts data could answer questions like, “What’s the average price for a 3-bedroom in this area?”, or “I’m willing to spend $x/month, which neighborhoods should I consider for a 2-bedroom condo?” This could create a dynamic, interactive experience for users.

Multi-Site Expansion

This project was built with scalability in mind. With over 25 domains, I can now create unique websites for different markets, each powered by this custom home search solution.

This is Just the Beginning

Custom coding this system has been one of the most challenging and rewarding experiences. While there are still a few quirks to work out, I’m proud of what’s been accomplished so far and excited for what’s to come. If you notice anything unusual or have suggestions, I’d love to hear your feedback.

Stay tuned—this is just the beginning of something larger… much larger!