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 nova
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:
- Aceita URLs curtas como
https://t.me
. - Limite no tamanho do TLD de uma URL passou de 18 para 24 caracteres, além de aceitar números e hífens.
- Torna obrigatória a inserção do protocolo (
http
ouhttps
) para não formar endereços relativos. - 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 comohttps://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:
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.