- A Gumroad considerou o htmx ao iniciar o novo projeto Helper.
- Queria usar o htmx para evitar a complexidade do React, mas houve divergências de opinião dentro da equipe.
- No início, o htmx parecia promissor para adicionar interações simples.
Limitações do htmx
- Intuitividade e experiência do desenvolvedor: trabalhar com htmx não foi tão intuitivo quanto com Next.js. Ao implementar formulários complexos e validação dinâmica, a lógica no lado do servidor ficou mais complexa.
- Limitações de UX: o htmx adota basicamente uma abordagem Rails/CRUD, o que tornou a experiência do usuário mais monótona. Implementar interfaces de arrastar e soltar foi mais difícil do que com React.
- Suporte de IA e ferramentas: o Next.js é mais familiar para ferramentas de IA, mas o htmx não. Isso afetou a velocidade de desenvolvimento e a resolução de problemas.
- Problemas de escalabilidade: à medida que o projeto ficava mais complexo, o htmx não conseguia acompanhar os requisitos. Ao adicionar colaboração em tempo real e recursos complexos de visualização de dados, o gerenciamento de estado ficou difícil.
- Comunidade e ecossistema: o ecossistema de React/Next.js é maduro e oferece várias soluções, mas o do htmx não.
Decisão final: migração para React/Next.js
- React/Next.js era mais adequado para construir uma UX complexa.
- Aproveitaram as vantagens do React em recursos como arrastar e soltar, gerenciamento de estado complexo, geração dinâmica de formulários, colaboração em tempo real e otimização de desempenho.
- Migraram para React para superar as limitações do htmx, e isso apoia a visão de longo prazo do projeto.
- Estão satisfeitos com essa decisão e, no momento, isso lhes permite avançar mais rápido, criar uma experiência de usuário mais atraente e aproveitar ferramentas e bibliotecas existentes.
Lições aprendidas com a experiência
- Considerar alternativas leves também é importante, mas escolher uma tecnologia que possa crescer junto com o projeto e apoiar a visão de longo prazo também é essencial.
- No caso do Helper, React e Next.js se provaram essa escolha, e desde a migração foi possível melhorar significativamente a experiência do usuário do app para os clientes principais.
Resumo do GN⁺
- A experiência da Gumroad mostra que, embora seja importante considerar alternativas leves, também é importante escolher uma tecnologia que possa sustentar o crescimento do projeto e sua visão de longo prazo.
- O htmx pode ser adequado para modelos de interação simples ou para aplicações existentes com renderização no servidor.
- Para a interface complexa e orientada a estado do Helper, React e Next.js foram uma escolha melhor.
- A stack tecnológica pode ser reavaliada conforme as necessidades mudam, e é importante manter flexibilidade sempre que novas tecnologias surgirem.
1 comentários
Opiniões do Hacker News
O CEO da Gumroad compartilhou sua experiência de testar o htmx e depois migrar para o NextJS. Isso foi uma informação útil para quem estava procurando relatos de experiências negativas com htmx
Ao criar formulários complexos, a lógica no lado do servidor ficou mais complicada e difícil do que o trabalho no cliente com React
Tentaram manter o frontend leve com htmx, mas acabaram recorrendo a bibliotecas de terceiros para lidar com UI/UX complexa e gerenciamento de estado
Foi difícil implementar uma interface de arrastar e soltar com htmx, e com uma biblioteca React conseguiram uma experiência mais fluida
htmx.onLoadpara localizar marcações com atributos no conteúdo carregado e conectá-lasA equipe parece estar mais acostumada com desenvolvimento frontend e teve dificuldades na comunicação com o backend
Há a opinião de que o processo de desenvolvimento com Next.js foi mais natural
Há quem ache interessante que o HTMX compartilhe esse tipo de experiência, e que existam projetos para os quais apenas HTMX não é suficiente
Há elogios ao fato de o HTMX.org hospedar esse tipo de ensaio
Existe a preocupação de que ferramentas de IA possam dificultar a adoção de novos frameworks ou linguagens de programação