DEV Community

Cover image for How to Develop a Real Estate App That Stands Out
Django Stars for Django Stars

Posted on • Originally published at djangostars.com

How to Develop a Real Estate App That Stands Out

Standing out isn’t just a problem for apps – it’s something every product struggles with. But, like mortgage or financial applications, an app that deals with real estate needs to be easy to use, transparent (as not all of the users are knowledgeable in the subject, or good with numbers), and absolutely bulletproof in its handling the confidential personal and financial information of its users.

So, how do you do that?

Main Problems In Your Market

Traditions are hard to break. In some industries, it’s hard to introduce something new and disrupt something else that’s been functioning for decades. For example, the financial and banking markets are slowly giving way to fintech, yet still some countries aren’t ready for it. People are just used to the way things have always been.

Another industry that struggles to accept innovation is real estate. For instance, in Germany, it’s hard to find a well-functioning real estate platform that will satisfy the needs of both property owners and buyers. There are some popular websites, but they don’t work properly. Listings only work if they’re posted by brokers. The service is free of charge for owners, but quite costly for buyers. Consequently, buyers lose money. So do owners, who could have sold their property at a higher price instead of paying a commission to somebody else.

Also, the existing platforms don’t provide property valuations. Owners don’t know how much their property actually costs, and have to accept the broker’s price. In turn, brokers tend to suggest more customer-friendly prices so the properties will sell faster. This problem was elegantly solved by Scoperty – a service that connects owners, buyers and realtors, and provides up-to-date valuations.

scoperty-main

Another problem that both sides of a traditional property transaction encounter is the duration of the closing process. Shuffling paperwork back and forth can take weeks or even months. Private Exchange Australia (PEXA), for instance, has solved this problem in an innovative way. They use the cloud to fast-track this process and complete financial settlements digitally. Their solution even allows for electronic signatures.

To offer buyers a better view of the property, some companies now use 3D and VR. One of the leaders in this is Matterport, which offers “immersive” real estate tours using photographs, videos, and 3D experiences.

What you may learn from this is that to make a difference, you need to find a pressing real estate problem, and solve it.

How to Communicate With Your Customers

Our life is connected to the web at every turn. And it’s understandable, because digital processes make our lives easier. However, if you want to create a product that people will love, you need to know who your customers are and pay close attention to the customer journey. Users of real estate platforms usually can be lumped into in three groups, and you need to develop functions necessary for each of them.

Owners and realtors should be able to create listings, fill out property information, upload images, manage offers, and schedule meetings and open houses. At the same time, buyers should be able to filter and choose properties, get information on location and neighborhoods, add favorites, get alerts for their searches, and contact the owners.

The product team decides what the customer journeys for these roles should look like. Will the interface be different right after the user logs in? Or will the interfaces for both user types be similar, but with different functionality for each user type? For example, the “property owner” profile should provide functionality for uploading photos of the property and its description, while the “buyer” profile may provide advanced search and additional filtering options for more relevant search results. It all depends on the user’s role.

As a service provider, you have to find ways to efficiently communicate with your customers and let them communicate with each other. Be sure to provide access to all the platform’s functionality across all channels, web and mobile, and customer support either online or over the phone, or both. Create a direct and secure communication channel inside the platform that allows buyers to contact owners or realtors.

You’ll Need More Than Just Valuations

Why is valuation important? Because when it comes to real estate, large amounts of money are involved, and buyers want to be sure the property is worth it. In other words, it’s all about trust and transparency. Providing valuations for property shows your customers that you care about them and strive for being in step with real market prices. To get this done, you may integrate your product with third-party services that’ll provide necessary information about property value on the market.

This way, buyers and owners get more precise estimates than those that might be given by realtors, as the way they get paid often depends on how fast they sell a house.

To make the choice easier for buyers, PriceHubble, for example, uses criteria like street noise and shopping opportunities to value property. Scoperty, in its turn, provides a visual that shows whether the property in question is in an expensive part of town or not.

pricehubble

Showing additional information like this is your chance to get closer to your target audience, which will appreciate it. This is what a customer-oriented approach looks like, and it’s vital to any successful startup, real estate web and mobile app development in particular, and business in general.

For instance, another client of ours, Moneypark, which is the largest European mortgage advisory platform, also uses similar partner data for valuations.

The one thing you have to remember is that the market prices change regularly. If you’ve chosen to integrate with the third-party service that provides you evaluations, you should find out how often they update prices. On the other hand, if you’ve decided to go along with a self-developed algorithm, you should keep track of new data (find a reliable source for it) and keep the algorithm model relevant to real market prices.

This means that if a crisis like the one in 2008 is repeated, you’ll be able to re-evaluate all the properties and update prices. This is just not possible without the latest information.

Сontent Is King

It might be a challenge at the start, but you need as much content on your platform as possible. To bring buyers to the platform, you need owners and their listings – and owners won’t come if there are no buyers.

One of the challenges with content on a real estate platform is that users don’t always provide recent information.

For instance, owners and realtors don’t often update their property status or information. They can denote a status for their listing – Open for offers, or For Sale (with a defined price) – but may forget to fill out all the information fields or upload enough images showing the property. For that reason, be sure to remind users to fill the listings properly or show a progress bar which will encourage users to put more information as it increases their chances to be sold.

Another great example of the importance of content is Moneypark. It’s a mortgage platform where users can choose property from offers presented and either a) choose a property on their own and ask for a mortgage, or b) provide criteria for what they want, and let the platform find matches.

In both cases, it’s important to provide as much information as possible so the system can find the right property. In the first case, the more information about a property that a seller provides, the better the chances that it will catch the eye of a customer. In the second case, potential buyers should provide as much information as possible about their criteria and about themselves. This will make the property search easier, and the customer will get an answer concerning the mortgage faster.

scoperty2

Think About Security

Along with banking and financial applications, proptech platforms need solid security for privacy and customer data protection. For instance, when developing similar services, you might be interested to host it in the cloud, like AWS, because they provide everything what you need – starting from encrypted easy-to-scale RDS instances in Virtual Private Cloud (VPC) to user authentication services like Cognito which handles sign-up, sign-in, email and phone verification almost out of the box. But even perfect tooling might be badly configured, especially a tremendous AWS cloud stack. That’s why you have to ensure that the responsible person who sets up your infrastructure really knows how to deal with it. As there’s no need to remind you that in terms of data security the stakes are very high.

Ever since the EU introduced the General Data Protection Regulation (GDPR), the game rules have changed. It has affected not just EU-based businesses, but businesses around the world. The GDPR applies to anyone who offers a service or a product to an EU-resident and plans to collect and use or share their personal information.

On one hand, the GDPR is a guarantee that platforms won’t be able to share or store user information without the user’s consent. Everything that can identify a person (e.g., name, email, phone number, etc.) is protected under GDPR. Users can edit or erase their information, whereas previously businesses were allowed to simply stop communicating with customers while keeping their data.

On the other hand, all this causes companies to make some extra moves concerning data processing and storage. For a real estate company, a data audit may be necessary to determine the legal or business rationale for collecting and storing data from buyers, owners, and realtors.

You Need A Map

Obviously, for a real estate platform, a map is a crucial element. This is the first thing any user sees – whether they’re an owner, a buyer, or a realtor. I can’t stress enough how important it is to carefully choose a map based on the price and on available tools and features, especially when you have a large number of users.

For instance, for product development you may use Google Maps as it has a great satellite view. But there are few drawbacks you should know before starting to work with them.

First, their API isn’t compatible with libraries that can work with any map. Which is why, if you don’t like the pricing or the map itself, you can’t just go and replace it with little effort and no changes to the application itself. Which isn’t really convenient.

Another drawback can be that, due to Google Maps’ use policy, it’s not permitted to use any other geographical services (like finding coordinates using an address). And using Google Maps features is costlier than it is with others. Thus, you may go for Google Maps if the satellite view is of a high priority for your product, but if it’s not, there are also numerous alternatives you can choose from.

Scalable Technology

At some point, any startup should be ready to scale. This means it needs to prepare for both changes in technology and in business. Here are some general recommendations from my experience, which might be helpful for the development of any product not necessarily related to real estate.

Learn to Use Third-Party Services

Don’t be afraid to get help from external services that can solve your problems. You can integrate with a CRM tool for your back-office, or use authentication and authorization services, business analytics, a chat, or anything else you can think of.

Having third-party services handle recurrent everyday tasks for you will win you some time, help you focus on the unique and authentic features of your product, and allow you to work on what really brings value to the market. This will also help you understand your product and your needs better, and, consequently, develop your own solution, or migrate to another service provider.

At the implementation level, make sure that there’s a certain interface that allows for easy changes to the client code that communicates with the external service. Note that some services have a vendor lock, which means you won’t be able to switch the services that are integrated with your app.

The authentication and authorization service AWS Cognito, for instance, is one of those services. It doesn’t support exporting user functionality via UI. You can still export it via aws-cli, but not the user password hashes. This means that if you decide to migrate from Cognito, you’ll have to move all existing user data to a new service or database and ask them to set up new passwords. Otherwise, clients won’t be able to log in anymore.

Calculate Expenses on Tech Stack Beforehand

Before committing to an outside service, review your financial capabilities. You don’t want your tech-stack bill to destroy your future business plans. Dip your toes into the market. There are services (for instance, authentication and authorization) that are convenient to use, when you don’t have many customers. They provide email/phone verification and reset password functionality out of the box – you can simply pick any of them and use their cheapest plan. But when your audience starts growing, this might put you in a tight spot.

I’ve already mentioned issues that may arise with Google Maps. To get into more detail, they significantly increased service prices since July 16, 2018. With about one thousand user sessions per day, the bill would reach approximately $1500 per month (the exact amount depends on which API you use the most – Places API, Geocoding API, or Map API). If you’re aiming at a minimum of 10,000 users per day, you have to be ready to pay about $15,000 per month.

You can save costs by caching requests or combining different geo/map providers, but be sure to check their terms of use and legal limitations before you do. It’s worth mentioning one more time: Google Maps doesn’t allow that.

Think About Bottlenecks

Imagine waking up one morning to discover that a prominent media outlet has written about your product. This might spark public interest in your app, and this is the chance you can’t miss. A good publication or a mention can cause a big spike in app usage, and it would be a pity if your product fails to handle all the requests.

To prepare yourself for a big workload, you’ll need to take a short break from feature delivery and have your tech gurus focus on product reliability. For a load test, you can use a wonderful tool called Locust. Depending on the results you get, there are several ways to go:

  • Refactor or simplify SQL queries. Check the ORM-generated SQL, but be careful with DISTINCT, ORDER BY, JOIN, and COUNT, which are time- and resource-consuming. Use the EXPLAIN command to see how a query planner is going to execute a query.
  • Move more calculations to the DB level. This might be more effective than iterating over retrieved data and applying adjustments to a code layer.
  • Create a read replica of the database. If you have a map where each user produces a lot of requests (which are mostly for retrieving data), they all could be propagated to a read-optimized replica and not slow down other app functionalities.
  • Move CPU-intensive tasks to serverless solutions. If you feel it’s necessary, you can use solutions like AWS Lambda, which is endlessly scalable. If it proves tricky to understand which code is the one that’s slowing down your product, try using Profiling tools.
  • Use auto-scaling of application instances. AWS Beanstalk might spawn more EC2 instances when it suspects a big load. It doesn’t happen immediately, and depends on thresholds you configured. But if frequently used parts of your application produce lots of requests to the server, it would be a good idea to have a tool like this in the stack. But first of all, you have to…
  • …use caching! If you properly configure the Cache-Control HTTP headers, only the first request will hit your server. All the identical subsequent requests will be handled by CDN, for example, AWS CloudFront. This means you won’t even need to configure auto scaling.

Caching for maps. If you’re returning data that dependent on the user’s viewport boundaries, consider passing “slippy map tilenames”. These are defined rectangles for each zoom level, versus unique coordinates of a user’s screen position. In the first case, the URL to obtain data would be the same for multiple users who observe the same region on the map. This allows you to leverage HTTP caching. However, these users may have additional filtering parameters which may be unique. But it would also make sense to generalize them. For instance, if a user filters properties by price or size, you can replace text input with a slider. Thus, instead of typing in their own prices or floor space, users will select ranges with predefined ‘steps’, which are easier to cache.

airbnb

Consider Decoupling

When designing every new feature, developers should consider one thing: functionality has to be decoupled. Put another way, there should be boundaries between components. Why is this important? Later on, when you scale, you most probably will want to split a monolithic system. With boundaries, this will be easier to do.

On top of this, the codebase will be easier to maintain. Often, people stop working on legacy systems because they cannot be incrementally refactored. They decide to build a new app from scratch, which is actually bad for business, because a lot of money is spent only to get the same features they already have. Also, it means no new features can be developed before a new app is ready.

Last but not least, make sure the team understands the importance of the Build-Measure-Learn feedback loop. I’ve seen talented engineers who were passionate about coding and perfect architecture, but a lack of such understanding might hurt your project’s success. To get into the right mindset, I highly recommend reading The Lean Startup by Eric Ries. I’m sure the book will help to look at the product from another point of view and find the proper balance between speed and quality. Startups are not about coding and technologies. It’s about putting business goals first.

UX/UI

“Design is not just what it looks like and feels like. Design is how it works,” said Steve Jobs. Of course, in this day and age, visual content has to be more compelling than ever. If users don’t like what they see in the first seconds, they will just ignore whatever good content they’re offered. But the design, the way an app or a platform functions, makes all the difference. If users can’t figure out how to use your product, you won’t be able to solve their problems.

darpedia

In real estate, bigger things are at stake. Buying property can be the decision of a lifetime for many people, which is why you have to make sure that your platform has a clear and intuitive interface and understandable texts. Even users with little technical or financial knowledge should be able to find their way around it.

Some startups place a lot of value on building a mobile app, but it’s only up to you. However, a mobile-first layout of the platform is a must. Those who look for good deals or properties in very particular locations will definitely want to use your app on the go, chasing their dream house or office as they travel or run errands.

In my opinion, development of a mobile app for real estate isn’t a priority, as it means you’ll have twice as much developing to do and spend twice as much money on marketing. So, an app probably makes sense only when your platform already has a large audience.

darpedia2

Stand Out In the Crowd

Wrapping up the guide, let’s come back to one of the most important topics in business in general. As I’ve said before, you have to stand out. The competition is high, as are the requirements and expectations both from the industry and from the customers. Which means, you have to deliver. To do so, you have to understand:

  • Your product’s goals, and
  • Why customers need your product

What I’m talking about isn’t even the USP – the unique selling proposition. It may be there, but it’s more about how the USP is realized in the product, and how it’s being presented to the customers. For instance, if you’re offering commercial property for young creatives or society startups, a web version of, say, Internet Explorer isn’t your priority. What you can do, though, is use a less conservative design, follow modern trends and experiment, which a younger audience will definitely appreciate.

To conclude, let’s look back at what we’ve learned. Real estate is a highly traditional industry, but this shouldn’t discourage you. If you correctly define the problems of the market and what potential customers really need, you can offer a product that people are going to use.

Here, the next step would be to learn more about your customers and the best communication channel to reach them. When you do that, fill your product with valuable and useful content, offer security that users can trust, and make sure your product has a clear and intuitive design. This way, you’ll create a product that people will not only use, but love doing so.

Last, but not least, make sure you choose a technology that’s easily scalable and maintained, so that you can keep doing the good work as the number of users grows.

This article about How to Develop a Real Estate App That Stands Out was originally published on Django Stars Blog. Written by Gleb Pushkov - Senior Software Developer at Django Stars

Top comments (1)

Collapse
 
marcellahaller profile image
marcellahaller

In the article gapsystudio.com/blog/real-estate-m..., based on the popular Zillow and Trulia applications, a list of components has been created, the functions of which should be included in the real estate application for easy search, registration, viewing the database , receive notifications, etc.
I recommend that you study if you are planning to create an application.