E
Produto
IdLingo

IdLingo

Um app que ajuda profissionais a construir o vocabulário em inglês a partir do conteúdo que já consomem, e a fixá-lo com repetição espaçada e IA. Aqui está como construímos: o problema, a stack, como a IA entra, as decisões e o que aprendemos.

Idiomas Repetição espaçada Quizzes com IA

Termos técnicos aparecem como um link pontilhado — como . Clique em um para a explicação em linguagem simples.

1O problema

Muitos profissionais já entendem bastante inglês — leem artigos, assistem a palestras, acompanham a área no idioma todos os dias. O que trava não é a gramática: é produzir as palavras certas na hora certa, numa reunião, num e-mail ou numa candidatura. O vocabulário de que precisam é específico do trabalho deles, e cursos de inglês genéricos raramente cobrem isso.

Há uma segunda armadilha: consumir conteúdo em inglês parece estudar, mas não basta. Ler muito constrói reconhecimento, não a capacidade de usar as palavras você mesmo. Queríamos um app que transforme esse consumo diário num repertório de verdade, utilizável — palavras que você consegue de fato produzir, não só reconhecer.

2A stack

A de um produto é o conjunto de peças de software que o sustentam. Vamos percorrer a do IdLingo e, mais importante, por que escolhemos cada peça — as decisões importam mais do que os nomes.

O app inteiro é escrito em : a tela, a lógica dos bastidores e até a descrição da infraestrutura na nuvem usam a mesma linguagem. Por quê? Porque uma linguagem só no projeto inteiro faz as peças compartilharem definições e pegarem os erros umas das outras antes de qualquer coisa rodar. TypeScript é, em termos simples, uma versão mais rígida do JavaScript que avisa dos erros com antecedência em vez de deixá-los estourar ao vivo.

Ele roda sobre um esquema na nuvem: não há servidores ligados dia e noite, o código roda sob demanda e a capacidade encolhe para quase nada quando está ocioso, então o custo acompanha o uso real. Isso vem com uma armadilha, porém — e o diagrama abaixo mostra a solução que escolhemos.

O caminho de uma requisição, com um compartilhador de conexões A requisição vai do cliente para a API Gateway, depois para as funções serverless, depois por um compartilhador de conexões (RDS Proxy, em destaque) que distribui para o banco relacional. Clientenavegador/app API Gateway Funçõesserverless Banco relacionalAurora / PostgreSQL trabalho pesado → fila
A armadilha: muitas funções podem esgotar o limite de conexões do banco. A mitigação: um compartilhador de conexões (RDS Proxy) fica na frente e divide um conjunto pequeno de conexões, para o seguir protegido.

Para o armazenamento escolhemos um (Aurora Serverless v2, rodando PostgreSQL) em vez de um de chave-valor. Um banco relacional é um conjunto de tabelas que se referenciam — imagine as abas de uma planilha, ligadas por IDs. Escolhemos ele porque nossos dados são uma teia de relações (as pessoas se ligam às palavras que sabem, as palavras aos materiais de onde vieram, e a uma trilha de eventos de aprendizado). O produto ainda está em validação, então perguntas novas sobre os dados aparecem toda semana; num banco relacional essas consultas — agrupar, ranquear, achar o que está na hora de revisar — são triviais, enquanto um de chave-valor nos obrigaria a conhecer todos os padrões de acesso de antemão e tornaria as mudanças dolorosas. O Aurora Serverless v2 mantém a vantagem de custo do serverless, encolhendo quando ninguém está praticando.

Sobre essa base, mais duas peças completam a experiência: uma camada de IA que gera exemplos e avalia a prática, e um serviço de voz que lê qualquer palavra em voz alta com , sem precisar gravar uma voz humana para cada termo. Escolher blocos de nuvem já consolidados nos deixou gastar o esforço no que de fato é novo: a lógica de aprendizado.

3Como a IA foi usada

A IA trabalha nos bastidores, não como um chatbot com quem você conversa. Quando você registra um link que leu ou assistiu, a lê esse conteúdo e extrai o vocabulário que importa — palavras soltas e também as combinações de palavras que soam naturais juntas. Seu repertório se atualiza a partir do que você de fato consumiu.

Durante a prática, a IA gera frases de exemplo sob demanda e avalia quando você tenta usar uma palavra numa frase sua — o passo mais difícil e mais valioso. E, importante: o app continua totalmente usável sem IA: as rodadas com IA são uma camada extra por cima, nunca um muro na frente da prática básica.

De onde vem a IA? Por padrão, do , usando uma credencial da plataforma — então a IA fica simplesmente disponível, sem configuração do usuário. Quem quiser mais controle pode conectar a própria chave () de um provedor como OpenAI, Anthropic ou Google. O gate de uma feature com IA é só "a IA está disponível?", não um saldo de créditos — o antigo modelo de créditos foi aposentado.

4Principais decisões

Aprender a partir do que você já consome. Em vez de entregar uma lista fixa de palavras, o app parte dos artigos, vídeos e podcasts que a pessoa já acompanha. O raciocínio: vocabulário fixa quando é relevante para a sua vida real. Conteúdo que você mesmo escolheu já é significativo — a gente só transforma isso em estudo deliberado.

Recuperar antes de reconhecer. Seria mais fácil fazer um app de flashcards em que você só vira a carta e diz "essa eu sabia". Escolhemos o caminho mais difícil e organizamos o app inteiro em torno da recuperação ativa e da repetição espaçada, trazendo cada palavra de volta pouco antes de você esquecer. É menos confortável, e é o que de fato funciona.

Medir o conhecimento em graus, não em sim/não. "Aprendido" não é um interruptor — você pode reconhecer uma palavra hoje e falhar em produzi-la na semana seguinte. Por isso medimos cada palavra por grau, e o diagrama mais abaixo mostra os sete estados que usamos.

IA disponível por padrão, com a opção de usar a própria chave. A IA já vem ligada por padrão, então qualquer pessoa usa o app sem configuração. Para quem quer controle, existe a opção de . E a gamificação premia o aprendizado, não o volume: você ganha pontos por praticar e recuperar, nunca por consumir conteúdo de forma passiva.

5Sendo mais técnico…

Esta seção é para quem quer olhar por baixo do capô. Nada aqui é necessário para entender o produto — mas são estas as decisões que tornaram a lógica de aprendizado confiável.

O modelo de dados, em termos simples. Poucas tabelas carregam o produto inteiro. Uma guarda as pessoas; uma guarda o perfil de cada pessoa; uma guarda o catálogo de palavras e expressões; uma liga uma pessoa a uma palavra e registra o quão bem ela a conhece — passando por sete estados de conhecimento (veja o diagrama). Uma última tabela mantém um registro de eventos de aprendizado: cada evidência de prática, na ordem em que aconteceu. A tabela de estado responde "o quão bem essa pessoa conhece essa palavra agora?"; a de eventos é a trilha de "como chegamos aqui?".

Os sete estados de conhecimento Uma escada ascendente de Desconhecida até Estável. Uma palavra costuma subir, mas também pode descer — uma seta em destaque mostra o conhecimento caindo para um estado inferior. pode descer
Uma palavra costuma subir por esses estados — mas também pode descer (a seta coral): reconhecê-la hoje não garante produzi-la na semana seguinte. Medir o grau é o que deixa o app praticar a coisa certa.

Por que tabelas custom e chaves estrangeiras. As relações são impostas de propósito: existe exatamente um estado por par pessoa-e-palavra, então uma palavra não pode acidentalmente ter dois estados em conflito. A ligação entre tabelas é uma — uma coluna de uma tabela que aponta para uma linha de outra, que é justamente o que torna o banco "relacional". A tabela de eventos de aprendizado é só-acrescentar: nunca editamos o passado, acrescentamos um evento novo, e essa nova evidência é o que atualiza o estado atual.

Idempotência, para nada contar duas vezes. significa tornar uma operação segura para repetir: rode uma ou cinco vezes, o resultado é o mesmo. É o que nos protege quando a entrega a mesma tarefa duas vezes — o diagrama logo acima mostra onde ela encaixa.

Polling e um pipeline assíncrono. é quando o app pergunta repetidamente "já ficou pronto?". Usamos isso na prática de fala: você faz upload do seu áudio e depois o app faz polling pelo resultado da avaliação em vez de travar enquanto ele é calculado. A mesma ideia de "trabalhar de lado" move o pipeline de materiais — mostrado no diagrama abaixo.

O pipeline assíncrono de material Um upload de material vai direto para o armazenamento; o trabalho pesado roda de lado numa trilha de baixo: uma fila entrega o arquivo a um worker que extrai vocabulário com IA, e o repertório é atualizado. Usuário enviamaterial Armazenamento trabalho pesado, de lado ↓ entregue 1+ vez → idempotência protege Worker + IAextrai vocabulário Repertório atualizado
Por que assim? O trabalho pesado roda de lado para o app continuar rápido. E como a pode entregar a mesma tarefa mais de uma vez ("pelo menos uma vez"), uma chave de torna o reprocessamento seguro — sem contar em dobro. Usamos para ver quando termina.

Todas essas peças conversam entre si por — a forma padronizada de dois sistemas trocarem pedidos e respostas.

6Aprendizados

A IA é a parte fácil; a ciência do aprendizado é a parte difícil. Fazer o modelo escrever uma frase ou extrair palavras é rápido. Decidir quando uma palavra deve voltar, o que conta como progresso e como manter a prática honesta deu muito mais trabalho do que qualquer prompt. O produto é a pedagogia, não a IA.

Nunca deixe a IA travar o básico. Aprendemos a desenhar cada recurso de IA como uma camada opcional por cima de uma prática que já funciona sozinha. Se a IA ficar indisponível por qualquer motivo, a pessoa continua aprendendo. Tratar a IA como um reforço, não como uma dependência, deixou o app inteiro mais robusto.

E um princípio que levamos desde o primeiro dia: a gamificação serve ao aprendizado, nunca o contrário. É tentador recompensar cada toque para inflar números, mas isso ensina a pessoa a farmar pontos, não a aprender. Respeitamos a privacidade e a LGPD e mantemos as recompensas atreladas ao comportamento de aprendizado real.

Stack

É o conjunto de peças de software que sustentam um produto: a base onde ele roda, as ferramentas prontas que ele reaproveita e o código próprio por cima. Falar da stack de um produto é dizer com o que ele foi construído e por quê.

TypeScript

É uma versão mais rígida do JavaScript — a linguagem mais comum da web — que pega classes inteiras de erros antes de o programa rodar, em vez de deixá-los aparecer ao vivo. O IdLingo usa ele em tudo: a tela, a lógica dos bastidores e a configuração da nuvem falam a mesma linguagem, então as peças se verificam umas às outras.

Serverless

É um jeito de rodar software na nuvem sem administrar servidores: o provedor liga a capacidade só quando há uma requisição e desliga quando não há. Para um produto em início, isso significa pagar pelo uso real e não por máquinas paradas, então o custo acompanha o tamanho do produto.

Banco de dados relacional

É um banco onde os dados moram em tabelas que se referenciam — imagine as abas de uma planilha, ligadas por IDs. Encaixa bem quando os dados são uma teia de relações e quando perguntas novas sobre eles surgem com frequência, porque agrupar, ranquear e filtrar é fácil de pedir. A alternativa, um banco chave-valor, é mais rápida para buscas simples, mas rígida quando as perguntas mudam.

Chave estrangeira

É uma coluna de uma tabela que aponta para uma linha de outra — a ligação que torna um banco "relacional". No IdLingo, uma chave estrangeira é o que conecta uma pessoa às palavras que ela sabe e cada evento de aprendizado à pessoa que o produziu, para os dados se manterem consistentes em vez de se desencontrarem.

RDS Proxy

É um compartilhador de conexões posto na frente do banco de dados. O código serverless pode iniciar muitas cópias de si mesmo ao mesmo tempo, e cada uma querendo sua própria conexão pode esgotar o limite que o banco permite. O proxy divide um conjunto pequeno de conexões entre todas essas cópias, para o banco nunca ser sobrecarregado.

Idempotência

É tornar uma operação segura para repetir: rode uma ou cinco vezes e o resultado é o mesmo. O IdLingo precisa dela porque a fila que carrega o trabalho pesado pode entregar a mesma tarefa mais de uma vez; uma chave de idempotência garante que uma entrega repetida não registre a mesma prática duas vezes nem dê pontos em dobro.

Polling

É quando o app pergunta repetidamente "já ficou pronto?" enquanto uma tarefa lenta termina em segundo plano. No IdLingo é usado na prática de fala: você faz upload do seu áudio e o app faz polling pelo resultado da avaliação em vez de travar enquanto ele é calculado.

Fila

É uma linha onde tarefas pesadas esperam a vez de serem tratadas por um worker, de lado da requisição que você está esperando. O IdLingo coloca o processamento de material numa fila para seu upload voltar na hora enquanto o vocabulário é extraído em segundo plano. Um traço importa: uma fila pode entregar a mesma tarefa mais de uma vez, por isso a idempotência é necessária.

Amazon Bedrock

É um serviço de nuvem da Amazon que dá acesso a modelos de IA de vários fornecedores por uma porta só. No IdLingo, é a fonte de IA padrão — usando uma credencial da plataforma, então a IA fica simplesmente disponível sem o usuário configurar nada.

Usar a própria chave de IA (BYOK)

BYOK vem do inglês "traga a sua própria chave". É a opção de a pessoa conectar a própria conta de um serviço de IA no lugar de usar a do app. Quem quiser mantém o controle do próprio uso; quem não quiser nem precisa saber que a opção existe — a IA já vem disponível por padrão.

API

API é a forma padronizada de dois sistemas conversarem: um pede algo seguindo um formato combinado e o outro responde no mesmo formato. É assim que as peças do IdLingo — o app, a IA, o banco de dados, o serviço de voz — trocam pedidos e respostas.

IA generativa

É a inteligência artificial que cria conteúdo novo — frases de exemplo, avaliações, explicações — em vez de só classificar ou buscar algo pronto. No IdLingo, é ela que gera exemplos de uso de uma palavra e avalia se você a empregou bem numa frase.

Voz sintetizada (TTS)

TTS vem do inglês "text to speech" — texto para fala. É a tecnologia que lê um texto em voz alta com uma voz artificial de som natural. No IdLingo, ela permite ouvir a pronúncia de qualquer palavra do repertório com um toque, sem precisar de uma gravação humana para cada termo.

Newsletter

Aprenda a construir junto.

Bastidores de produtos educacionais, IA aplicada de verdade e o que a gente aprende construindo. Direto no seu e-mail, sem enrolação.

mail
Assine a newsletter Grátis · via Substack