Pular para o conteúdo principal

16 publicações com a etiqueta "frontend"

Ver todas as etiquetas

jsdom ou happy-dom? Vantagens, desvantagens e um benchmark que você consegue reproduzir

· 10 min para ler
Bruno Carneiro
Fundador da @TautornTech
jsdom vs happy-dom

Todo projeto front-end com Vitest chega nessa pergunta em algum momento: environment: 'jsdom' ou environment: 'happy-dom'?

A resposta que circula por aí é "happy-dom é 2 a 4 vezes mais rápido". Fui atrás de onde vem esse número e, na maioria dos artigos, ele não tem código, não tem metodologia e não tem versão. Então resolvi medir.

Montei uma suíte com 240 testes de componentes React, rodei nos dois ambientes, em configurações diferentes do Vitest, várias vezes. Também testei 20 APIs e comportamentos do navegador nos dois pra ver o que cada um realmente implementa. O resultado tem uma surpresa: a configuração do Vitest pesa mais que a escolha da biblioteca.

Temporal e o fim do new Date() (e dos bugs de data que a gente aceitou por 30 anos)

· 14 min para ler
Bruno Carneiro
Fundador da @TautornTech
Temporal API no JavaScript

Todo dev JavaScript tem uma história com Date. O relatório que mostrava o dia anterior. O vencimento que pulou de 31 de janeiro pra 3 de março. A data de nascimento que mudou de dia quando o usuário estava em outro fuso. O moment de 300KB instalado só pra somar um mês.

O Date foi criado em 1995, em poucos dias, copiado do java.util.Date. O próprio Java depreciou boa parte dela pouco tempo depois. O JavaScript ficou com ela por 30 anos.

Isso acabou. Em março de 2026 o Temporal chegou ao Stage 4 no TC39 e virou parte do ECMAScript 2026. Já roda sem flag no Chrome, no Edge, no Firefox e no Node 26.

Esse artigo é sobre o que de fato melhorou. Com exemplo real, rodando, lado a lado com o new Date().

Octane: o React sem o React por baixo, e o que isso sinaliza pro ecossistema

· 8 min para ler
Bruno Carneiro
Fundador da @TautornTech
Octane: o React compilado, sem virtual DOM

Se você acompanha o ecossistema React de perto, provavelmente tropeçou nesse anúncio essa semana. Dominic Gannaway lançou o Octane, descrito como "o modelo de programação do React, compilado". É o sucessor declarado do Inferno, framework que o próprio Gannaway criou lá em 2016 com o mesmo pitch de performance. Um gênio indomável.

Vale parar pra entender duas coisas. Primeiro, o que ele faz tecnicamente. Segundo, e mais importante pra quem decide stack, o que a chegada dele diz sobre pra onde o React está indo.

Vamos para a maior de todas novidades da última semana!

Detectando imports circulares com Madge (e travando regressões no lint)

· 9 min para ler
Bruno Carneiro
Fundador da @TautornTech
Diagrama ilustrativo de um ciclo de imports entre módulos TypeScript

Quem já passou horas caçando um undefined no meio de um bundle ou um comportamento estranho só em produção sabe como uma corrente de imports mal resolvida pode virar dor de cabeça. Um dos culpados frequentes é o import circular: o módulo A importa B, B importa C, e em algum lugar da cadeia alguém importa de novo o A — fechando um ciclo.

Isso é uma maravilha, o build funciona, o projeto roda local mas na hora de subir da pau! \o/

Eu já vi isso em projeto pequeno e em projeto grande; a diferença é só o tamanho do problema que você vai enfrentar. Da pra ver a dor de cabeça com o Madge e isso salva vida!

Pra travar o typescript é uma beleza circular import.

Front-end: muito além do botãozinho

· 9 min para ler
Bruno Carneiro
Fundador da @TautornTech

Muitas pessoas ainda associam o termo frontend apenas à aparência visual de um site ou aplicativo — cores, botões, layouts.

Aquela famosa frase "é só um botão". Mas não entende o que está por trás daquele simples botão que dispara várias ações na interface do usuário e, na maioria dos casos, em outros sistemas via API, por exemplo.

O desenvolvimento Front-end é frequentemente mal compreendido. Muitas pessoas ainda limitam sua definição à camada puramente visual — "é só colocar um botão ali" ou "só precisa mudar essa cor". Este equívoco subestima a complexidade e o impacto que decisões arquiteturais têm no desenvolvimento web moderno.

E com a vinda do Vibe Coding, essa visão pode ser acentuada. Front-end é só HTML e Backend é um bando de CRUD.

Quem trabalha com desenvolvimento sabe que não é assim que funciona. Um sistema simples feito em 1h e que escale? Boa sorte.