The Project

Roomster is an Airbnb-like social platform for people around the world who are looking for roommates to live with. It has 5+ million active listings in different countries all over the world and 3+ million active users every month. It has a website built with .NET, Python, and ReactJS as well as native mobile applications for iOS and Android.

roomster
roomster
roomster

The Client

The client is an international room rental company with headquarters in New York. The company was founded in September of 2003 and since then has helped people to look for accommodations and roommates around the world. Currently, it operates in 192 countries and supports 18 languages, providing 24/7 customer service.

Our Tasks

While working on the Roomster project, we managed to combine the efforts of our technical specialists and marketing team, which of course sets this project apart from many others. For convenience, we have divided this case into the two aforementioned areas our specialists worked with.

Implementation

technical side

The Challenge

Our team was tasked with thinking over and developing a fast yet flexible geospatial search using open-source location data. The use of Google Maps API was not possible, and the application worked on the basis of an open-source service called Pelias. This API used the services of the world’s biggest open-source places database, WhosOnFirst, which had problems with data duplication at the time. Finally, the Roomster team wanted the user to be able to specify many different parameters when searching.

The Solution

General search flow design

General search flow design

We have optimized the search flow so that it consisted of 3 main stages:

  • The user enters freeform text in the search field.
  • This action triggers an API call to Pelias autocomplete API.
  • This city ID is sent to our search API that returns all apartments matching the ID.
General search flow design

Data schema design

We created our internal city (state, block, room, etc.) IDs and mapped them to external ones (coming from Pelias). It allowed us to get rid of data duplication while interacting with the current API and with any other geocoder in the future.

General search flow design

Choosing a database to improve performance

We chose ElasticSearch which was definitely the best choice for the sake of a high-load search. It allowed using both simple city IDs (just integers) and geopoints for fully-fledged geospatial search. By adding Kubernetes, as the most mature enterprise-ready orchestration system, our team managed to install the most configurable container orchestration system for microservices.

The Result

Choosing the right data schema, database engine and orchestration system allowed us to satisfy our client's functional and non-functional requirements. Despite using an open-source service with messy data, we managed to build a flexible, scalable, and resilient search system.

marketing

The Challenge

Our marketing team faced the following challenges:

  • 1
    Develop an effective marketing strategy
  • 2
    Create an adequate and understandable advertising budget plan
  • 3
    Optimize the landing pages
  • 4
    Identify the main channels for attracting stable and relevant traffic
  • 5
    Set up the link building process
  • 6
    Launch the promotion of mobile applications (iOS and Android)

The Solution

After a series of consultations with the client, our marketing team identified the following steps to be taken:

definition

Definition and analysis of the main competitors in the segment. (Services like Airbnb, Zillow, and Trulia were our markers)

updating

Updating the design of the main landing pages with a focus on the countries selected above (Custom texts for each of the languages & automated takeup of the newest listings from the relevant locations)

keyword

Keyword clustering with the creation of a multilingual semantic core for the following countries: USA, UK, Germany, France, and Ireland

website

Website technical audit. (Using ScreamingFrog, Netpeak Spider, and SEO Site Checkup)

creation

Creation of new advertising campaign and cross-linking strategy

The Result

All the above-mentioned actions ensured a 2-fold increase in organic search traffic, without spendings on link building. Below, you can see the screenshot displaying traffic for the same period last year, before the start of SEO optimization.

results results results

Team Structure

Designer Business Manager Project manager Front-end developer Marketing team Back-end developer iOS developer Android developer QA manual engineer QA Automation engineer

Technologies

Backend

Kubernetes Amazon EKS RabbitMQ Python Flask SQLAlchemy Celery

Frontend

React JS Redux Redux Saga (middleware) SSR (Next.js) @loadable/components Webpack REST API Websocket (socket.io) JEST Jsdoc Mapbox GL JS Dropzonejs i18next

Mobile

Android SDK Android Studio Android Support Library Java8 RxJava for Android Swift 5(5.1) UIKit Cocoa Touch SDK CoreData CocoaPods FLEX Crashlytics(Firebase) SwiftLint Fastlane Alamofire Eureka Kingfisher PromiseKit PromiseKit Branch.io Gitlab CI

DataBase

PostgreSQL+PostGIS GraphDB ElasticSearch MongoDB Cassandra

Need help with your project? Contact our developers' team!