Executando verificação de segurança...
24

(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

Logo

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:
QRcode

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!

Pesquisa

À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!

Recomendações

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 é:

  1. O iglu gera um embedding pra cada entrada e outro pra o que o usuário pesquisar
  2. 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
  3. 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:

  1. Gerar um embedding pra cada entrada (se já não tiver gerado antes)
  2. Encontrar as entradas escritas nas últimas 12 ou 24 horas
  3. Calcular a média dos embeddings dessas entradas recentes (gerando assim um embedding médio)
  4. Comparar esse embedding médio com o embedding de cada entrada, individualmente, igual na pesquisa semântica
  5. 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!

Carregando publicação patrocinada...
4

Meus 2 cents:

  • Achei a ideia bem interessante, ainda mais por nao precisar de IA externa

  • Sim, Android por favor ! (como vai fazer sem o Core ML ? Uns dizem TensorFlow Lite, mas nunca testei)

  • Limite de caracteres: sem ! (ou pelo menos que de para desativar)

  • Tags: seria legal a possibilidade de colocar tags na entradas

  • Versao WEB: ainda que as anotacoes sejam feitas no celular, ter acesso e possibilidade de trabalha-las no desktop seria bem interessante (ta, complica bastante, mas enfim...)

  • Ja que a versao WEB seria um plus, ela que poderia ser cobrada/monetizada.

  • Se nao tiver uma versao WEB, uma forma de exportar/importar e/ou enviar/receber (p.ex. via zap) um determinado fio de ideias.

  • Recomendacoes inteligentes: uma coisa que acho interesante eh a possibilidade de sugestoes de videos e ou artigos (YT, tiktok, medium, tabnews, etc) que tenham relacao com as ideias que tenho registrado - sob demanda (pesquisa mediante solicitacao). Por exemplo: dado fluxo X, me apresente os videos de YT lancados nos ultimos 5 dias - acabo gastando um tempo procurando referencias sobre assuntos que estou trabalhando.

Tudo isso eh brainstorm - nao sei se na pratica sao viaveis ou monetizaveis, so jogando ideias.

2

Fala @Oletros! Muito obrigado pela opinião! Seus 2 cents valem muito

Achei a ideia bem interessante, ainda mais por nao precisar de IA externa

Fico feliz que vc gostou! Realmente, uma das partes principais é não depender de nada além do seu celular — nenhuma IA rodando na nuvem ou coisa do tipo.

Sim, Android por favor ! (como vai fazer sem o Core ML ? Uns dizem TensorFlow Lite, mas nunca testei)

Anotado! Não faço ideia de como rodar a IA no Android, mas certamente tem um jeito (também já ouvi falar do TensorFlow Lite, bem promissor).

Limite de caracteres: sem ! (ou pelo menos que de para desativar)

Interessante, a gente já recebeu esse feedback antes. É uma coisa que a gente tá considerando seriamente mudar, tornar opcional, igual você falou. Uma coisa boa que o limite de caracteres faz que eu não mencionei na publicação é que fica muito mais fácil encontrar e consumir entradas depois (já que elas são bem menores e geralmente focadas em um único assunto específico). Mas nada disso importa se a experiência de escrita do usuário não for boa, então a gente tá aberto a mudar isso, com certeza.

Tags: seria legal a possibilidade de colocar tags na entradas

Sim! É uma ótima ideia. Inclusive, a gente tem pensado em como implementar um sistema de tags (ou categorias/pastas/espaços) há algum tempo. Quem sabe, né?

Versao WEB: ainda que as anotacoes sejam feitas no celular, ter acesso e possibilidade de trabalha-las no desktop seria bem interessante (ta, complica bastante, mas enfim...)

Ja que a versao WEB seria um plus, ela que poderia ser cobrada/monetizada.

De fato, seria muito bom, especialmente pra quem não é acostumado a digitar muito no celular. Por exemplo, meu tio tem muita dificuldade de digitar no celular, por isso ele só faz diário no computador (ele literalmente usa um documento do Word pra anotar tudo). Iria mesmo complicar bastante, mas não deixa de ser uma boa ideia. E seria uma oportunidade pra monetização, como você falou.

Se nao tiver uma versao WEB, uma forma de exportar/importar e/ou enviar/receber (p.ex. via zap) um determinado fio de ideias.

Faz sentido, não tinha pensado nisso. O objetivo seria poder escrever no computador e importar pro celular, né? Ou entendi errado? Vou anotar isso

Recomendacoes inteligentes: uma coisa que acho interesante eh a possibilidade de sugestoes de videos e ou artigos (YT, tiktok, medium, tabnews, etc) que tenham relacao com as ideias que tenho registrado - sob demanda (pesquisa mediante solicitacao). Por exemplo: dado fluxo X, me apresente os videos de YT lancados nos ultimos 5 dias - acabo gastando um tempo procurando referencias sobre assuntos que estou trabalhando.

Também não tinha pensado nisso, é uma coisa a se considerar! Seria muito útil, especialmente porque ele teria acesso a várias plataformas né. Assim você não precisaria ir em cada uma individualmente pra tentar achar algo relacionado. Boa ideia!

Tudo isso eh brainstorm - nao sei se na pratica sao viaveis ou monetizaveis, so jogando ideias.

Seu brainstorm é muito bem vindo! Você não tem ideia do quão útil isso é pra mim, de verdade. Obrigado pelo esforço de pensar em público aqui comigo! Se vc tiver alguma outra idea, opinião, qualquer coisa (mesmo que sei lá, daqui a um mês), pode voltar e comentar aqui, que eu com certeza vou ler!

2
2

Achei muito foda sua ideia !! Parabens pelo desenvolvimento

Tinha pensando em criar algo do genero tambem, nesse mesmo estilo de aplicativo, mas adicionando uma forma de poder definir um emoji como sentimento atual tambem e pensei em implementar uma "rede social", podendo fazer com que tenha um feed para que voce possa compartilhar certas coisas com outras pessoas tambem, mas somente se o usuario der permissão.

Parabens pela iniciativa!! acabei de instalar aqui e vou começar a usar!

2

Valeu pelo feedback, @watheusHenry! Que bom q vc gostou!

Muito interessante a ideia dos emojis! A gente tinha pensado em algo parecido com o que você falou (um mood tracker), mas decidimos que não era algo fundamental pra uma versão inicial. Mas quem sabe a gente não faz algo assim no futuro?

Sua ideia de permitir o compartilhamento e interação social também é muito interessante. Eu consigo ver ocasiões em que isso seria muito positivo. O que fez a gente decidir que o iglu não teria nenhuma interação entre usuários ou sequer a opção de compartilhar entradas é que, a partir do momento que existe a simples possibilidade de alguém ler o que você escrever (mesmo sendo somente com a sua permissão explícita), você vai pensar duas vezes antes de escrever coisas muito pessoais ou ser completamente honesto, entende? Foi essa a nossa linha de raciocínio.

Muito obrigado pelo feedback, é exatamente isso que eu tô procurando! Espero que vc goste do iglu e continue mandando o que você tem achado (dica: é só agitar o seu celular com o iglu aberto pra criar um email de feedback 🙃).