IN THIS ARTICLE
Subscribe to Our Newsletter
This Valentine’s Day, we’re celebrating love at PubNub.
Instead of our normal Internet of Things, we’re talking today about Internet of Love aka dating apps.
Have you seen these around and been curious how difficult they are to build? We are here for you.
Though the destination is the same for these apps (a first date!), the journey for each is unique and innovative. There are common underlying technologies for a dating app, and in this post, we’ll talk about the major technologies and designs for building a dating app.
Before we dive in, let’s start with expectations.
What Features Will Your Users Be Expecting?
Log In -
Obviously, users will expect a safe log in method to protect their personal data and account information. Some apps (like Tinder) use information from Facebook for an easier login method.
You can get creative here, make it your own and include what information you think your users will find most interesting. Generally, this includes a name, pictures, and interests.
Ideally, most users would like to be able to find matches in areas that are close to them. We’ll get a little deeper into this topic later in the article.
Users can find fellow users by a variety of criteria. Some common options include location, interests, age, and gender.
There are a lot of options for matching. Tinder uses geographic location, and of course the classic swipe left/right.
Other ideas include matching people based on interests, age, and reasons for joining the app.
The chat function is an essential function for dating apps and there are lots of ways to do it. You can start off based on matching, or allow users to view social profiles before initiating the chat. Some apps only allow one party to initiate the chat. The possibilities are endless.
No matter what you decide, there is one basic framework, which is why we’re here. So, without further ado…
Step 1 - The Dating App Chat
Messaging APIs and Infrastructure
The most important part of any dating application is the chat. After all, this is where the magic truly happens. You need to ensure a seamless and secure messaging experience for your users, and this requires three parts:
- UI - is your interface beautiful and easy to operate?
- Messaging APIs - what features have you built into your chat feed?
- Messaging Infrastructure - how do you send and receive messages between users?
Step 2 - User Interface
This could literally go an infinite amount of ways. But in a nutshell, you must determine:
- How will users discover other users (swipe right!)
- How will users connect with other users
- How will users chat with other users
Step 3 - Messaging APIs
Messaging APIs enable you to build both the core features and the bells and whistles to your dating app.
Core features include being able to create chatrooms and send/receive messages in realtime, see the online/offline status of users in the chat, typing indicators to see when people are typing, unread message count, and emojis (so many emojis).
If you’re building the app from scratch, you’re responsible for building each one of these core features yourself. If you’re using a chat service provider or chat SDK, their messaging APIs will most likely include a number of plugins for adding these features. So the amount of work you put in is up to you!
Beyond core chat features, there are a number of ways you can set your chat apart from the rest.
- Programmability is increasingly becoming a core differentiator for certain chat service providers.
What is programmability? In a nutshell, programmability is the ability to make your chat app “event-driven”, meaning that you have complete control what happens to a message between when it is sent, and when it is received. This could be adding business logic, alerts, triggering a 3rd party application, or mutating the message in-flight.
- You can also bring geolocation and chatbots directly into the chatfeed. Say a user asks “where should we meet?” This can trigger a chatbot to assist in making recommendations based on the conversation. From there, the chatbot can deliver a map with realtime updates in the chatfeed, leveling up the experience for the chatters.
- Lastly, you can customize your app to thwart trolls, the romance killers. Using content moderation APIs, your chat app can analyze and filter profanity or explicit images before they reach the end user.
Step 4 - Messaging Infrastructure / Backend
From a messaging standpoint, the other component is the backend infrastructure, the means of sending realtime messages.
In its most basic sense, your infrastructure should be able to send and receive small messages at realtime speed.
Expanding on that, at scale, your infrastructure needs to be globally redundant to ensure that your app performs no matter where your users are located. There’s a reason Tinder works as seamlessly in Paris as it does in Chattanooga.
Security is also essential. You need to ensure that your users information, and the messages they are sending, are safe from end-to-end.
There’s a couple of ways you can ensure that the infrastructure you choose is secure at the network, message, channel, user, and key level, spanning multiple categories.
Here they are:
- Encryption: Point-to-point network TLS encryption and end-to-end message AES encryption.
- Authorization: Granular read and write access control with optional TTLs and the ability to revoke permissions.
- Legislative: Infrastructure should be compliant with the major global regulations. This includes things like the EU-US Privacy Shield compliant, geographical limitations on where messages are stored, and SOC II.
- Attack Prevention Measures: Ensure that there are no inbound open ports, and all connections to the infrastructure are outbound from the client. Should have intelligent data center routing to thwart regional attacks.
Step 5 - Mapping APIs
Mapping APIs, like Mapbox, Google Maps or Esri, allow you to build custom maps and integrate geolocation functionality into web and mobile apps. From a UI perspective, you can embed beautiful maps with textures, illustrations, custom markers, and more. However, functionality is equally important for dating applications.
Mapping APIs allow you to build core features into your app, like geocoding, geohashing and proximity awareness. This is how daters can set their ‘radius’ to a defined area, and connect with other daters based on geolocation. Seems simple, but it can actually be very challenging.
Using a mapping API with nearby connections capabilities is a great place to start. Nearby connections allows users to discover users and exchange data (chat) with them. This takes the burden of developing your own proximity aware system, allowing the API that’s integrated with your maps to do the heavy lifting while creating a seamless experience for your end users.
Step 6 - Matchmaking
You’ll also have to figure out how you’re going to connect your daters, and that is done through your matchmaking algorithm. It could be as simple as connecting users based on mutual interests, mutual friends, city of residence, or any other inputted data.
We’ve written a tutorial on matchmaking (for gaming), but the design pattern is similar. You can check that tutorial out, but for reference, here are the quick steps:
- Adding a “Find Match” Button and A Header
- Using the PubNub here_now() API
- Finding a Match
Registration and Authentication
And last but certainly not least, registering users, and ensuring they are who they say they are.
The first option for registration is the classic method - using their personal email and password to create an account and login in. This option is okay, but definitely not the best option, as anyone can simply create an email address, and there’s a good chance your users aren’t who they say they are.
- A better chance they are who they say they are
- You can use their profile data to better match users
Well, for one, get building! Dating apps are a $2.5 billion business in the U.S. We can definitely help you out on the messaging side of things, and point you in the right direction for the other key components. Reach us here, we’d love to chat!