(Pitch + conteúdo) iglu: diário/notas com inteligência local e threads
Eai, TabNews, todo mundo bem? Eu sou o Rafa e quero compartilhar com vocês um pouco do que eu tenho trabalhado ultimamente.
Eu sou um desenvolvedor independente e sempre quis trabalhar em uma startup. Eu tô começando minha vida profissional agora (tenho 18 anos) e quis aproveitar essa oportunidade pra fazer alguma coisa massa. Foi assim que, no início desse ano, eu e o meu irmão (Matheus) decidimos criar o iglu.
O iglu
O iglu é um aplicativo de diário (ou notas do que você quiser) em formato de Twitter, com inteligência local e foco em privacidade. É um lugar totalmente seu pra você escrever sem medo e voltar depois pra explorar de forma inteligente.
Antes de continuar: o iglu já está disponível na App Store e eu vou ser uma pessoa muito feliz se você baixar e mandar o seu feedback 🙃. Eu quero muito saber sua opinião!
Link da App Store. Se estiver lendo no computador, é só escanear esse QR Code:
Então, como funciona o iglu? Vamos por partes:
Micro-journaling
Micro-journaling é uma forma de diário que consiste em escrever várias entradas curtas ao invés de poucas entradas longas.
Tradicionalmente, quem faz diário senta no final do dia (ou em algum momento específico) e escreve tudo de uma vez, tentando lembrar do que aconteceu e o que pensou.
Já o micro-journaling propõe escrever com frequência, ao longo do dia, sobre o que está acontecendo no momento. As entradas são pequenas e escritas rapidamente. Isso facilita criar um hábito de escrita e permite representar o seu cotidiano com muito mais detalhe.
A base do iglu é o micro-journaling: todas as entradas possuem um limite de caracteres, pra te forçar mesmo a escrever pouco de cada vez. A ideia é que cada entrada seja um pensamento: você não pensa um parágrafo de uma vez, você pensa uma frase de cada vez.
Mas ainda assim, é importante poder criar uma linha de raciocínio, e é por isso que o iglu tem…
Threads
Parecido com o Twitter (ou X), o iglu permite que você comente nas suas entradas. Todo comentário também é uma entrada, então você pode comentar em um comentário. Assim, você consegue continuar escrevendo sobre um mesmo assunto ou desenvolver uma linha de raciocínio criando uma thread. E mais, você pode comentar várias vezes em uma mesma entrada, formando uma estrutura em árvore, com quantas ramificações você quiser.
Mas como você vai achar uma entrada específica se ela estiver enterrada debaixo de um monte de outras entradas? É só usar a…
Pesquisa semântica
É aqui que as coisas começam a ficar realmente interessantes!
Às vezes você vai tentar encontrar uma entrada, mas não vai lembrar a data ou as palavras exatas que você escreveu. Não seria legal poder só descrever um assunto pra achar entradas relacionadas? É exatamente isso que o iglu faz! A gente chama de pesquisa semântica. É só descrever mais ou menos o que você lembra ou o sentido geral do que você estiver procurando que o iglu vai encontrar pra você.
Por exemplo, se você escrever essa entrada:
Eu almocei em um restaurante italiano muito bom! A pizza deles é realmente diferente.
Você pode pesquisar “comida”, ou “alimentação” (ou qualquer coisa relacionada, pode até ser uma frase inteira), e o iglu vai encontrar essa entrada pra você.
A forma como a pesquisa semântica funciona é muito legal (spoiler: a gente usa IA 👀). Eu vou explicar melhor daqui a pouco.
Mas nem sempre você vai estar procurando uma entrada específica — às vezes você só quer explorar entradas antigas, passivamente. Nesse caso, deixa eu te falar das…
Recomendações inteligentes
Acho que essa é a minha parte favorita do iglu!
Imagina ter um feed, tipo um For You, feito só de entradas que você escreveu e selecionadas com base no seu estado/humor recente. É isso que o iglu oferece — recomendações inteligentes, que levam em conta o que você escreveu recentemente pra encontrar outras entradas relevantes ou relacionadas.
Eu acho isso particularmente empolgante porque agora, ao invés de ficar scrollando pelo Insta ou TikTok, você pode scrollar pelo registro da sua própria vida. Isso é muito massa! É genuinamente divertido ver coisas que você nem lembrava que escreveu (e que seriam esquecidas pra sempre se não fossem registradas).
Assim como a pesquisa semântica, as recomendações inteligentes também funcionam de uma forma muito interessante, que eu vou explicar em breve.
Privacidade
Quando se fala em privacidade na internet, geralmente existem dois tipos de pessoas: as que se importam muito com a própria privacidade, em um nível quase paranoico (sou eu ✋); e as que não estão nem aí.
Como desenvolvedor, eu levo muito a sério a minha obrigação de proteger a privacidade não só de quem se importa, mas especialmente de quem não se importa. Por isso:
Não existem contas no iglu
Nem a gente sabe quem baixou ou está usando o iglu. A gente não tem acesso ao seu e-mail, número de telefone, nome, absolutamente nada. Só conseguimos ver quantas pessoas estão usando o iglu, mas não fazemos ideia de quem sejam.
Tudo roda localmente
A inteligência artificial e o algoritmo de recomendação do iglu rodam no seu celular, a gente sequer possui servidores. Um efeito colateral positivo disso é que você nunca precisa de internet pra usar o iglu!
iCloud é o único backup
Todas as suas entradas são armazenadas exclusivamente no seu celular e na sua conta pessoal do iCloud (como um backup criptografado). Ponto final!
Bloqueio com Face ID
Caso alguém esteja usando seu celular e tentar acessar o iglu, ele não vai conseguir. É preciso desbloquear o iglu usando sua biometria facial. Você pode desabilitar o Face ID no iglu, mas ele vem habilitado por padrão.
Por que “iglu”?
A lógica por trás do nome é: em meio ao frio e ao clima extremo, um iglu é um lugar seguro, agradável (em comparação com o exterior) e isolado. O nosso iglu é a mesma coisa: um lugar completamente isolado do resto do mundo, só seu, onde você pode ser completamente vulnerável.
Obs.: a gente escolheu “iglu” com “i” minúsculo pra passar um tom mais informal e amigável.
Quanto custa? 🫣
Por enquanto, o iglu é de graça. A gente ainda não monetizou o aplicativo e quem entrar agora vai poder usar de graça pra sempre, mesmo depois do iglu ficar pago. Então não deixa pra depois.
A ideia é cobrar um valor mensal razoável, algo entre R$5,00 e R$8,00. Talvez a gente implemente um modelo freemium, oferecendo um plano gratuito básico e cobrando pelas funcionalidades mais avançadas, mas não é nada certo ainda.
É importante dizer que nunca vão ter anúncios ou conteúdos patrocinados no iglu. Nunca mesmo. Não faz sentido para um aplicativo com a nossa proposta.
Android??
Pois é… infelizmente o iglu só tá disponível pra iOS, por enquanto. A ideia é tentar provar primeiro que o iglu é algo que as pessoas realmente querem.
Se você usa Android e gostaria de ter o iglu, por favor, me fala nos comentários, esse tipo de feedback é essencial pra eu entender se existe demanda. E se você quiser que a gente faça logo uma versão pra Android, a melhor coisa que você pode fazer é nos ajudar a espalhar o iglu. Quanto mais rápido a gente provar a ideia do iglu, mais rápido a gente vai levar ele pro Android.
Como funciona a inteligência do iglu?
Como prometido, deixa eu explicar um pouco sobre como a pesquisa semântica e as recomendações inteligentes funcionam.
Já adianto o seguinte: a inteligência artificial que o iglu usa não é generativa, ou seja, ela não gera texto ou conteúdo de nenhum tipo. Isso foi uma decisão consciente — a premissa do iglu é que todo o conteúdo que você ler dentro dele seja escrito por você mesmo, não gerado por IA nem criado por outra pessoa.
Mas se a inteligência artificial não gera texto, o que diabos ela faz?
Embeddings
Se você nunca ouviu falar de embeddings, relaxa que eu vou explicar de forma bem simples:
Imagina uma máquina que consegue receber uma frase e cuspir um número que representa o sentido/significado dessa frase. O nome desse número mágico é embedding. Pra ser um pouco mais preciso, o nome seria sentence embedding (mas eu vou chamar só de embedding daqui pra frente, pra facilitar). Pra ser ainda mais preciso, esse número na verdade é um monte de números — um vetor multidimensional.
Se quiser fazer uma pausa pra respirar depois de ler essa palavra grande, fica à vontade.
E como que um vetor — uma sequência de números — pode representar o significado de uma frase? (é genial, e parece magia, honestamente)
Nós, seres humanos, não conseguimos imaginar além de três dimensões, mas nada impede que a gente trabalhe com mais que isso. Um único embedding possui centenas de dimensões (ou até milhares), e esse é o segredo para conseguir representar o significado de uma frase.
De forma bem simplificada, ao gerar um embedding, cada dimensão é associada a um significado diferente, tipo um tema. Por exemplo: uma dimensão diz o quanto essa frase está relacionada ao tema comida, enquanto outra diz o quanto ela está relacionada ao tema animal. Assim, se uma frase tem um embedding em que essas duas dimensões possuem valores altos, talvez a frase seja sobre comida de animal.
É importante ressaltar que isso é uma forma bastante simplificada de explicar. Na prática, a gente não sabe o que cada dimensão representa, porque não é algo definido por nós — é algo definido organicamente pelo modelo que gera esses embeddings. Mas a ideia central é essa: cada dimensão representa um tema, e quando você junta várias dimensões, é possível ter uma ideia do significado da frase que originou esse embedding.
Como eu disse, magia.
De volta ao iglu
Beleza, mas o que embeddings têm a ver com a inteligência artificial? E como isso é relevante pra pesquisa e recomendações?
A primeira pergunta é fácil: a “máquina que cospe embeddings”, que eu pedi pra você imaginar mais cedo, é a inteligência artificial. A IA do iglu é um modelo de embeddings, simples assim.
Agora, a forma como a gente usa embeddings dentro do iglu é onde fica legal:
Pesquisa semântica
A pesquisa semântica depende completamente de embeddings. Talvez você até já tenha uma ideia de como isso vai funcionar. Se não, tenta pensar um pouco em como usar embeddings pra encontrar entradas relacionadas a alguma coisa que o usuário digitar no campo de pesquisa (sem pressa).
A lógica é:
- O iglu gera um embedding pra cada entrada e outro pra o que o usuário pesquisar
- Depois, ele compara o embedding da pesquisa com o embedding de cada entrada, individualmente, pra encontrar as entradas com sentidos mais próximos ao da pesquisa
- Por fim, o iglu mostra essas entradas ao usuário, ordenadas por similaridade ao termo pesquisado
De forma simples, é assim que a pesquisa semântica funciona.
Eu não vou aprofundar em como o iglu compara embeddings pra achar os mais similares, mas o nome da técnica é similaridade por cosseno. Ela consiste em comparar as direções dos embeddings, ou seja, o ângulo entre eles — lembra que eles são apenas vetores?
Se você quiser aprofundar mais em embeddings e como eles podem ser comparados, dá uma lida nesse artigo (inclusive, no início do artigo eles explicam o que são embeddings de uma forma bem legal, visualmente).
Recomendações inteligentes
As recomendações inteligentes também dependem de embeddings. Na verdade, o método é bem parecido com o da pesquisa semântica. A grande diferença é que, ao invés de buscar as entradas mais similares a um termo pesquisado, o iglu procura as entradas mais similares às escritas recentemente.
Então, pra encontrar recomendações, o iglu vai:
- Gerar um embedding pra cada entrada (se já não tiver gerado antes)
- Encontrar as entradas escritas nas últimas 12 ou 24 horas
- Calcular a média dos embeddings dessas entradas recentes (gerando assim um embedding médio)
- Comparar esse embedding médio com o embedding de cada entrada, individualmente, igual na pesquisa semântica
- Mostrar ao usuário as entradas ordenadas por similaridade ao embedding médio
É isso. E funciona bem porque, quando você calcula a média de vários embeddings, você está essencialmente capturando o sentido comum dessas entradas. E depois é só procurar entradas com sentidos similares a esse sentido comum, ou seja, entradas relacionadas.
Me diz se isso não é lindo, fala sério.
Obs.: existem outras coisas que são levadas em conta no algoritmo de recomendação, mas o trabalho pesado é feito por embeddings, da forma que eu expliquei.
Todos esses cálculos devem consumir uma energia considerável, o iglu deve pagar uma conta salgada de servidor, né?
Pior que não…
Inteligência local
Inicialmente, a ideia era rodar tudo isso em um servidor mesmo, porque eu achava que não seria possível rodar localmente. Mas, pra minha felicidade, eu descobri que dá sim, e funciona muito bem!
A forma como eu consegui fazer tudo rodar sem servidores foi usando o Core ML, da Apple. Core ML é uma ferramenta que te permite rodar modelos de Machine Learning/IA localmente nos dispositivos da Apple. Ele te dá acesso à CPU, à GPU e à Neural Engine do iPhone, iPad, Mac, etc. A Neural Engine é uma parte dos chips desenvolvidos pela Apple, feita especificamente pra rodar modelos de IA de forma rápida e eficiente.
Basicamente, eu converti a inteligência artificial do iglu (o modelo de embeddings) para o formato da Apple, o .mlpackage
(foi difícil, mas nada impossível). Aí eu coloquei esse modelo no meu projeto do Xcode e usei as APIs do Core ML pra rodar a minha IA dentro do iglu.
E o bom é que tudo roda sem você nem perceber. Como eu usei o Core ML, a IA roda eficientemente, não trava e não consome quase nada de bateria. Mas a parte mais importante é: seus dados nunca passam por nenhum servidor, sua privacidade fica intacta. É tudo que eu sempre quis!
Conclusão
Enfim, eu acabei escrevendo bem mais do que eu planejei, mas foi divertido. Espero que você tenha gostado do iglu e talvez aprendido alguma coisa nova.
Comenta o que você achou do iglu, da publicação, se vocês querem que eu fale mais sobre alguma coisa…
Qualquer dúvida, pode deixar nos comentários, que eu vou tentar responder todo mundo.
Valeu! Obrigado por ler!