O Tutorial do TeClas sobre Anytype

Hoje eu quero fazer uma introdução a um dos meus softwares favoritos que se chama Anytype. Ele é um app de notas que engloba características de organização, descentralização, com low code e privacidade.

O que é o Anytype

Anytype is an encrypted, local-first alternative to the cloud-based Internet.

  • O Anytype é um aplicativo de notas com Markdown e edição em blocos. Mas seguindo o modelo 'Notion' nós podemos criar relacionamentos e propriedades para essas páginas permitindo com muito pouco esforço criar aplicações inteiras para organizar dados complexos
  • Os dados são guardados de maneira local primeiro e são trocados por um protocolo criptografado que permite um total controle do usuário sobre quem tem acesso além de permitir o uso self hosted ou totalmente offline
  • O cliente é aberto e o protocolo, chamado Anysync, também é aberto.

Por que eu acho esse projeto interessante?

  • Lá pelo final de 2024 eu devo ter visto esse vídeo e eu andava pensando muito na depêndencia que as pessoas tem do Notion como uma plataforma de organização, com muitas empresas chegando a ter o seu backend inteiro organizado por ele

  • Hoje apps como Notion, mas também Slack, Discord e etc... são usados como ferramentas de construção da web e de fato são muito úteis. Porém isso cria uma 'dark web', não indexada publicamente, e geralmente proprietária.

  • O Notion hoje com texto, hiperlinks, propriedades e os seus 'bancos de dados' (que são tabelas glorificadas) inaugurou uma nova maneira de montar sites na web e é extremamente importante que exista uma versão aberta (e portante superior) dele.

  • Eu estou colocando isso logo no início do tutorial porque eu acho mais importante começar a aprender uma ferramenta pensando nas vantagens e nos objetivos que temos ao invés de meramente nas capacidades técnicas

Como eu tenho usado?

  • Como um aplicativo de notas pessoais

  • Como um banco de dados para ideias e para gerenciar projetos, sugestões, contatos e requisições do canal

  • Como um organizador de livros, referências e coisas que quero estudar

A documentação do Anytype

https://doc.anytype.io/anytype-docs/

Como o protocolo funciona?

  • Para usar você cria uma 'conta' que nada mais é do que uma chave privada que encripta os seus dados
    • Essa 'frase chave' é sua senha ao mesmo tempo que é a sua conta e deve ser guardada com cuidado.
    • Essa chave vai encriptar/desencriptar os seus dados na rede do Anytype
  • Todas as suas edições de blocos são encriptadas e guardadas localmente. Em seguida elas são sincronizadas para um nodo da rede
    • Permite acesso remoto aos seus dados e colaboração
    • Apenas você e pessoas autorizadas pode desencriptar esses dados
    • Nodos de sincronização não tem acesso aos dados
  • Por padrão você está conectado com a rede do Anytype que oferece 1GB de espaço e limites de colaboradores por espaço gratuitamente
    • Você pode mudar para o modo 'somento local' que sincroniza apenas com o seu computador e rede local
    • Ou pode autohospedar um nodo de sincronização e gerenciar o espaço você mesmo

Mais em: https://doc.anytype.io/anytype-docs/advanced/data-and-security/how-we-keep-your-data-safe

Tutorial prático

  • Criando páginas e escrevendo markdown

  • Criando links e listas

  • Propriedades dos objetos

  • Diferentes visualizações para objetos

    • Kanban
    • Calendário
    • Grafo
  • Queries e coleções

Por que se chama Anytype?

  • A parte mais interessante e que geralmente vocês não vão ouvir muito nos tutoriais (é difícil de explicar) é a possibilidade de criar tipos, templates e visualizações para os dados
  • Com isso é possível construir pequenas aplicações e MVPs para o seu caso de uso de uma maneira 'low code'

Usar um template pronto

  • O Anytype oferece uma 'biblioteca de templates' de espaços do Anytype já prontos e customizados para aplicações específicas.
  • Eu falei isso aqui mais pro fim do tutorial porque depois de entender um pouco melhor o que o Anytype faz fica mais claro como são úteis os templates.

Colaboração com outros usuários

  • Você pode chamar mais pessoas para colaborarem num espaço anytype.
  • Cada nova pessoa aparece como um perfil dentro do espaço e pode ser adicionada como propriedade em campos como 'autor' / 'responsável' e etc...
  • Recentemente o Anytype incorporou um chat a cada espaço, permitindo que toda colaboração seja feita lá por dentro
  • Eu não tenho usado isso, mas agora a gente tem o potencial de substituir um Slack + Notion ao mesmo tempo e parece muito legal
  • Você também pode compartilhar páginas do seu espaço como sites html usando o botão de 'Publish'

Segurança

  • Como eu disse no início os seus dados ficam encriptados na sua máquina e nos nodos de sincronização
  • Porém o acesso a sua máquina ainda pode dar acesso aos seus dados, principalmente se a conta estiver desbloqueada.
  • Então eu recomendo muito que quem se preocupa com segurança ative um PIN para a conta local e coloque um limite de tempo para que o Anytype se feche

Como autohospedar

  • Como citado anteriormente, é possível autohospedar o seu servidor para sincronizar entre diferentes clientes e não depender da rede padrão do Anytype. Além de poder gerenciar o espaço disponível pra sincronização.

  • Para se juntar a uma rede autohospedada você precisa fazer o logout da rede padrão e criar uma nova chave nessa rede (isso é chato, eu sei)

  • Todos os espaços e dados podem ser facilmente exportas/importados entre redes, só é chato

  • O processo de autohospedagem em sim está fora do escopo desse tutorial, mas é relativamente fácil pra quem manja da parte mais técnica de servidor e GNU/Linux.

Mais info aqui: https://doc.anytype.io/anytype-docs/advanced/data-and-security/self-hosting/self-hosted

Projeto útil pra quem quer testar: https://github.com/grishy/any-sync-bundle