Estudo de caso · Stack

Como o QuintoAndar montou um marketplace de imóveis com React, Flutter e Databricks

O QuintoAndar liga proprietários, inquilinos, compradores e corretores para alugar e vender imóveis no Brasil. A stack junta um app web em React e um app mobile em Flutter a um monolito que vem sendo quebrado em serviços e a uma plataforma pesada de dados e ML em Databricks e AWS.
Copiar stackquintoandar.com.br Plataforma de aluguel e venda de imóveis · Brasil · fundada em 2012

A stack da QuintoAndar

Abrir no montador

Linguagem

  • Pythonmedium.com

    Linguagem principal de dados, ML e do backend de agentes de IA.

Biblioteca de interface

  • Reactcloud.google.com

    Monta o app web, lançado primeiro como PWA.

    Por quê: Deixou o time focado numa stack principal sem abrir mão de uma boa experiência na web.

Framework full-stack

Hospedagem

  • AWSmedium.com

    Nuvem por trás dos clusters de dados, incluindo instâncias Graviton.

    Por quê: Escolher o tipo certo de instância, como Graviton, deixou o processamento mais rápido e barato.

Banco de dados

  • Delta Lakemedium.com

    Camada de armazenamento das tabelas da plataforma de dados.

    Por quê: Adotaram pelos recursos de desempenho e economia de custo.

Framework de celular

  • Fluttermedium.com

    Faz os apps de iOS e Android a partir de um só código em Dart.

    Por quê: Sair das webviews do PWA reduziu os problemas de desempenho e qualidade que elas causavam.

Build e runtime

  • Pantsmedium.com

    Sistema de build do monorepo Python do QuintoML.

    Por quê: Na avaliação do time, era a melhor opção para monorepos com muito Python.

  • Fastlanemedium.com

    Assina, gera o build e envia o app iOS para a loja.

    Por quê: Facilita assinatura, build, upload e envio para revisão no iOS.

Busca de dados

  • Cloud Firestorecloud.google.com

    Sincroniza em tempo real as listas de favoritos e as negociações entre inquilinos e proprietários.

    Por quê: Precisavam de sincronização em tempo real para recursos de ida e volta, como as negociações.

  • Apache Airflowmedium.com

    Orquestra as centenas de pipelines que geram os modelos de dados.

  • Databricksmedium.com

    Roda todos os jobs de ETL e os clusters Spark de cada time.

Framework de servidor

  • Javamedium.com

    Move o backend de comunicação que recebe toda conversa do chatbot.

Testes

  • Maestromedium.com

    Roda testes de interface de ponta a ponta no app.

    Por quê: A sintaxe declarativa em YAML deixa fácil escrever um fluxo de teste de interface.

Arquivos

  • Amazon S3medium.com

    Guarda os arquivos de DAG gerados que o Airflow lê.

Modelo de IA

  • LangGraphmedium.com

    Orquestra o supervisor que distribui as conversas entre agentes especialistas.

    Por quê: Queriam um jeito robusto de orquestrar agentes com LLM em vez de um fluxo único e rígido.

Como montaram

De um PWA para um app em Flutter

O QuintoAndar apostou primeiro num PWA escrito em React, para o time focar numa stack principal e lançar cada recurso uma vez só para todas as plataformas. O Next.js cuida da web, e o Firebase com o Cloud Firestore sincroniza favoritos e negociações em tempo real.

Com o tempo, as webviews mostraram seus limites. O time levou o app para Flutter para reduzir os problemas de desempenho e qualidade que elas causavam, e hoje mantém o design system Cozy alinhado entre Figma e React.

Fontes:cloud.google.com medium.com

Quebrando o monolito

O produto principal cresceu como um sistemão com usuários, imóveis e gestão de aluguel. Em 2021, o time mapeou os contextos de negócio lá dentro e planejou a quebra em fases, começando pelos que podiam sair em paralelo.

Os serviços que nasceram disso trabalham com eventos em vez de consultas repetidas. Um exemplo: um serviço central de lembretes substituiu cronjobs que varriam tabelas enormes sem parar, e o trabalho agora se espalha ao longo do tempo em vez de se acumular em picos de lote.

Fontes:medium.com medium.com

Dados e ML no Databricks

O Apache Airflow orquestra centenas de pipelines de dados, e um gerador de DAGs cria os arquivos e joga no Amazon S3 para o Airflow ler. Todo job de ETL roda em clusters do Databricks, e o time revisou tipos de instância (incluindo AWS Graviton) e adotou o Delta Lake para gastar menos e ganhar velocidade.

Por cima disso fica o QuintoML, um monorepo Python gerenciado com Pants, com ambientes de desenvolvimento remotos no Kubernetes e o Cursor como editor recomendado. O Butterfree, biblioteca de ETL para features de ML feita pelo time, é open source.

Fontes:medium.com medium.com medium.com

Agentes de IA e apps lançados rápido

O atendimento por chat roda numa plataforma multiagente: um backend em Java é a porta de entrada das conversas, e um backend em Python feito com LangGraph usa um supervisor para mandar cada pedido ao agente especialista certo. O time de dados também roda o Tars, um agente de análise que funciona como plugin do Claude Cowork.

Nos lançamentos mobile, um único monorepo guarda todo o código Dart e Flutter. O Fastlane cuida da assinatura, do build e do envio do iOS para a loja, e o Maestro roda testes de interface escritos em YAML.

Fontes:medium.com medium.com medium.com

Também detectado no site

Achado na página inicial com as regras abertas do Wappalyzer (HTML, scripts e cabeçalhos). Mostra o que roda no navegador, não o backend inteiro.

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