Case study · Stack

How QuintoAndar built a housing marketplace on React, Flutter and Databricks

QuintoAndar connects owners, tenants, buyers and agents to rent and sell homes in Brazil. Its stack pairs a React web app and a Flutter mobile app with a monolith being split into services and a heavy data and ML platform on Databricks and AWS.
Copy this stackquintoandar.com.br Home rental and sales marketplace · Brazil · founded 2012

QuintoAndar's stack

Open in the stack builder

Language

  • Pythonmedium.com

    Main language for data, ML and the multi-agent AI backend.

UI library

  • Reactcloud.google.com

    Builds the web app, first shipped as a progressive web app.

    Why: It let developers focus on one main stack and still give users a great web experience.

Full-stack framework

Hosting

  • AWSmedium.com

    Cloud behind the data clusters, including Graviton instances.

    Why: Picking the right instance type, like Graviton, made processing faster and cheaper.

Database

  • Delta Lakemedium.com

    Storage layer for the data platform tables.

    Why: They adopted it for its performance and cost-saving features.

Mobile framework

  • Fluttermedium.com

    Builds the iOS and Android apps from one Dart code base.

    Why: Moving off the PWA webviews cut the performance and quality problems they caused.

Build and runtime

  • Pantsmedium.com

    Build system for the QuintoML Python monorepo.

    Why: In their evaluation it was the best option for Python-heavy monorepos.

  • Fastlanemedium.com

    Signs, builds and submits the iOS app to the store.

    Why: It makes iOS signing, building, uploading and review submission simple.

Data fetching

  • Cloud Firestorecloud.google.com

    Syncs favorite lists and negotiations between tenants and owners in real time.

    Why: They needed real-time sync for back-and-forth features like negotiations.

  • Apache Airflowmedium.com

    Orchestrates the hundreds of pipelines that build the data models.

  • Databricksmedium.com

    Runs every ETL job and the per-team Spark clusters.

Backend framework

  • Javamedium.com

    Powers the communication backend that receives every chatbot conversation.

Testing

  • Maestromedium.com

    Runs end-to-end UI tests on the mobile app.

    Why: Its declarative YAML syntax makes writing a UI test flow easy.

File storage

  • Amazon S3medium.com

    Holds the generated DAG files that Airflow reads.

AI model

  • LangGraphmedium.com

    Orchestrates the supervisor that routes chats to specialist agents.

    Why: They wanted a robust way to orchestrate LLM agents instead of one rigid flow.

How they built it

From one PWA to a Flutter app

QuintoAndar first went all in on a progressive web app written in React, so developers could focus on one main stack and ship features once for every platform. Next.js runs the web, and Firebase with Cloud Firestore keeps favorites and negotiations in sync in real time.

The webviews eventually showed their limits. The team moved the app to Flutter to cut the performance and quality problems those webviews caused, and now keeps its Cozy design system in sync between Figma and React.

Sources:cloud.google.com medium.com

Breaking up the monolith

The core product grew as one big system holding users, homes and rental management. In 2021 the team mapped the bounded contexts inside it and planned a phased decomposition, starting with contexts that could be pulled out in parallel.

The services that came out of it lean on events instead of polling. One example: a central Reminder service replaced cronjobs that scanned large tables over and over, so work now spreads out over time instead of piling into batch spikes.

Sources:medium.com medium.com

Data and ML on Databricks

Apache Airflow orchestrates hundreds of data pipelines, and a DAG builder generates the DAG files and drops them in Amazon S3 for Airflow to read. Every ETL job runs on Databricks clusters, and the team reviewed instance types (including AWS Graviton) and moved to Delta Lake to save money and speed things up.

On top of that sits QuintoML, a Python monorepo managed with Pants, with remote dev environments on Kubernetes and Cursor as the recommended editor. Butterfree, the team's own ETL library for ML features, is open source.

Sources:medium.com medium.com medium.com

AI agents and fast app releases

Customer chat runs on a multi-agent platform: a Java backend is the entry point for conversations, and a Python backend built with LangGraph uses a supervisor to route each request to specialist agents. The data team also runs Tars, an analytics agent that works as a Claude Cowork plugin.

For mobile releases, a single monorepo holds all the Dart and Flutter code. Fastlane handles iOS signing, builds and store submission, and Maestro runs UI tests written in YAML.

Sources:medium.com medium.com medium.com

Also detected on their website

Found on the homepage with the open Wappalyzer rules (HTML, scripts and headers). It shows what runs in the browser, not the whole backend.

  • Amazon CloudFront
  • Amazon Web Services
  • Envoy
  • HSTS
  • HTTP/3
  • Webpack