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

Novas melhorias: Enviar publicações com "CTRL + Enter" e outras 6 melhorias 🎉

Turma, a Milestone 5 começou com muita força e no momento que eu estou escrevendo essa publicação, fora as 7 melhorias que eu vou apresentar agora e que já estão no Ambiente de Produção, existem mais 13 Pull Requests com melhorias aguardando avaliação.

Como falei na Live, o TabNews será o Blender dos conteúdos!!!

Então, vamos para as melhorias:

1) Publicar utilizando atalho

Agora ao escrever ou editar uma publicação qualquer, ao invés de clicar no botão Publicar ou Atualizar, você pode simplesmente apertar CTRL + Enter se estiver em ambiente Windows ou Linux, e CMD + Enter se estiver em ambiente macOS. Isto irá automaticamente fazer o submit da publicação.

Esta implementação foi realizada por aprendendofelipe através desse PR* e logo em seguida com um ajuste para mobile nesse PR*. Obrigado vinicius-arcanjo por testar no macOS e EduardoSpek por testar em mobile e reportar um bug 🎉

2) Ajuste na fonte do Editor de Markdown

Para manter a identidade visual em todos os cantos do TabNews, foi atualizada a fonte dos ícones da bandeja do editor de Markdown, onde hoje temos apenas um ícone, mas no futuro teremos mais:

Versão antiga

Versão antiga da fonte

Versão nova

Versão nova da fonte

Esta implementação foi realizada por meritissimo1 através desse PR* 🎉

3) source_url negando URLs válidas

Ao criar uma nova publicação, você pode preencher o campo Fonte com a URL que desejar, porém para alguns casos, a validação no backend estava negando URLs válidas como https://t.me/durov/186.

Agora este campo possui novos comportamentos:

  1. Aceita URLs curtas como https://t.me.
  2. Limite no tamanho do TLD de uma URL passou de 18 para 24 caracteres, além de aceitar números e hífens.
  3. Torna obrigatória a inserção do protocolo (http ou https) para não formar endereços relativos.
  4. Não é mais permitido letras maiúsculas no host, apenas após o TLD (path, query e fragment). Antes era possível cadastrar algo como https://www.gOoGlE.com. Mas ainda é possível algo como https://www.tabnews.com.br/#:~:text=TabNews,-Status

Esta implementação foi realizada por aprendendofelipe através desse PR*, na qual inclusive copiei parte do texto que estava no corpo do PR para colocar aqui nessa publicação 🎉

4) Arquivo de configuração do Gitpod

O Gitpod é um editor de código na nuvem que usa o VS Code como engine. Inclusive ele já até apareceu no meu canal nesse vídeo aqui. E para subir o ambiente de desenvolvimento dele deixando tudo preparado para uso, como por exemplo já usando a versão correta do Node.js e com as dependências instaladas, é necessário adicionar um arquivo de configuração, e este arquivo foi adicionado na raiz do projeto.

Esta implementação foi realizada por coffee-is-power através desse PR* 🎉

5) Páginas 404 com cache eterno

O tcarreira identificou um bug onde caso você realizasse uma publicação mas em seguida deletasse ela, poderia ocasionar um 404 eterno, mesmo que você voltasse a publicar ela novamente com o mesmo slug.

Isso acontecia caso alguém abrisse essa página após você ter deletado ela, onde se esse fosse o caso, mesmo publicando um conteúdo novo com o mesmo endereço e essa publicação aparecendo na lista raiz do site, seria apresentado um 404 para quem tentasse abrir.

Agora ao republicar um conteúdo com o mesmo slug que teve o 404 cacheado, o backend irá tentar revalidar a página como esperado caso o novo conteúdo exista. O mesmo comportamento se aplica a usernamers na URL.

Esta implementação foi realizada por aprendendofelipe através desse PR* 🎉

6) Imagens padrões causando ruído de 404 nos logs

Dependendo do client que você usa, automaticamente será feito requests para arquivos como favicon.png, apple-touch-icon.png e apple-touch-icon-precomposed.png. Como até então nós não fornecemos elas, nos últimos 30 dias isso gerou praticamente 3.000 erros 404 nos nossos logs. E com o crescimento do site, esses erros só tendem a crescer também.

Mas agora nós fornecemos esses arquivos e esses 3 mil erros não irão mais criar ruídos desnecessários na nossa monitoria:

Fim dos erros 404

Esta implementação foi realizada por vinicius-arcanjo através desse PR* 🎉

7) Trancar a rota /users

A rota /users foi criada inspirada no GitHub, que disponibiliza a lista de todos os seus usuários para caso alguém queira construir alguma feature em cima disso. Mas por enquanto não temos nenhum uso e ela não possui paginação, então se tornou rapidamente uma rota pesada. A ideia inicial era deslistar ela da API, porém o aprendendofelipe deu uma sugestão melhor: trancar ela para apenas usuários que tenham a feature read:user:list, e de fato, é uma ótima idéia e agora ela está trancada.

Esta implementação foi realizada por aprendendofelipe através desse PR* 🎉


Conclusão

Gostaria que vocês parassem para analisar o carinho que todos da comunidade estão tendo com o TabNews e também que projetassem o efeito disso ao longo dos meses ou anos, o que iremos conseguir atingir com a qualidade do projeto. Iremos devagar, de "lambida em lambida", lapidando o TabNews e cada vez mais nos colocando na exata mesma trajetória que grandes softwares Open Source trilharam no passado e que fazem toda diferença hoje, como Blender e Godot.

Tenham todos uma ótima semana!


⚠️ O repositório Open Source do TabNews ainda está em Modo Privado. Caso queira receber um convite para participar, leia esta publicação.

5

Eu particularmente gosto da atenção aos detalhes na melhoria nº 2.

A alteração é extremamente sutil, mas demonstra uma coisa mais importante: carinho com o projeto.

Esse carinho é uma força invisível, mas que eu tenho certeza que irá contribuir com o polimento do projeto no longo prazo.

3

FINALMENTE! Adoro usar CTRL+Enter pra publicar coisas, haha! Isso sempre mostra pra mim que é uma ferramenta que pensa no usuário antes de tudo (quando tem).

1