Estudo de caso · Stack

Como o Cal.com montou o agendamento em código aberto e depois fechou

O Cal.com é uma plataforma e API de agendamento que empresas usam para as pessoas marcarem horário com elas. Por cinco anos o código foi público: um monorepo em TypeScript com Next.js, tRPC, Prisma e Postgres, além de uma API em NestJS, até a produção ir para um repositório privado em 2026.
Copiar stackcal.com Infraestrutura de agendamento · Estados Unidos · fundada em 2021

A stack da Cal.com

Abrir no montador

Linguagem

Biblioteca de interface

  • Reactgithub.com

    Monta as páginas de reserva e a interface do app.

Framework full-stack

Banco de dados

Login

Pagamentos

Estilo e kit de interface

Build e runtime

  • Turborepogithub.com

    Coordena builds, servidores de dev e testes no monorepo.

ORM

  • Prismagithub.com

    Define o esquema e cuida das migrações e consultas ao banco.

Busca de dados

  • tRPCgithub.com

    Chamadas tipadas entre o app web e o back-end.

  • Redisgithub.com

    Sustenta as filas da API v2, via Bull e ioredis.

Framework de servidor

  • NestJSgithub.com

    Framework da API pública v2.

  • Trigger.devtrigger.dev

    Roda os efeitos de cada reserva, a sincronização de agendas e as checagens de fraude como tarefas duráveis.

    Por quê: A experiência de uso: documentação clara, painel fácil e encaixe simples no monorepo com Prisma.

Testes

  • Playwrightgithub.com

    Testes de ponta a ponta, com Vitest nos testes de unidade.

Erros

WhatsApp e SMS

  • Dailygithub.com

    Chamadas de vídeo das reuniões marcadas pelo Cal.com.

Como montaram

Um monorepo todo em TypeScript

O código público lista como base Next.js, tRPC, React, Tailwind CSS e Prisma em cima do PostgreSQL, tudo num monorepo com Yarn e Turborepo.

O app web principal conversa com o back-end via tRPC, e a API pública mais nova (v2) é um app separado em NestJS, que usa Redis e Bull para filas.

Fontes:github.com github.com github.com

Trabalho em segundo plano foi para o Trigger.dev

Desde 2024, o Cal.com roda milhões de tarefas por mês no Trigger.dev: tudo o que acontece depois de uma reserva, sincronização de agendas e checagens de phishing e fraude.

Um engenheiro do Cal.com contou que o que decidiu foi a experiência de uso: documentação clara, painel fácil e encaixe simples no monorepo com Prisma, com fluxos em produção em poucos dias.

Fontes:trigger.dev

Código fechado em 2026

Em abril de 2026, o Cal.com levou o código de produção para um repositório privado. O argumento: ferramentas de IA deixaram barato vasculhar código aberto atrás de falhas, o que põe em risco os dados dos clientes.

O repositório público virou o Cal.diy, uma edição comunitária com licença MIT e sem os recursos de empresa. O Cal.com diz que a produção já mudou bastante, com reescritas grandes em partes como autenticação e tratamento de dados, então a stack abaixo vem do código aberto e pode não ser exatamente o que roda hoje.

Fontes:cal.com github.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.

  • Cloudflare
  • Cloudflare Bot Management
  • Google Tag Manager
  • HSTS