Depois de lançar com sucesso seu aplicativo de e-mail HEY como um aplicação do lado do servidor, o Basecamp comunicou a migração de seu principal produto, Basecamp 3, para Hotwire no trimestre anterior. À medida que as organizações adotam cada vez mais aplicações de página única (SPAs) para novos desenvolvimentos web, seguimos otimistas com o Hotwire nadando contra a corrente. Ao contrário dos SPAs, os aplicativos Hotwire mantêm a maior parte da lógica e da navegação no servidor, contando com uma quantidade mínima de JavaScript do navegador. O Hotwire modulariza as páginas HTML em um conjunto de componentes (chamados Turbo Frames) que podem ser carregados pelo padrão lazy loading, fornecer contextos independentes e enviar atualizações HTML para esses contextos com base nas ações do usuário. SPAs oferecem responsividade inegável ao usuário, mas a simplicidade da programação web tradicional do lado do servidor combinada com ferramentas de navegador modernas oferece uma visão revigorada do equilíbrio entre a efetividade da pessoa desenvolvedora e a capacidade de resposta do usuário.
Hotwire (HTML over the wire) é uma técnica para construir aplicações web. As páginas são construídas a partir de componentes, mas ao contrário das aplicações de página única (SPAs) modernas, o HTML dos componentes é gerado no lado do servidor e, em seguida, enviado pela rede ("over the wire") para o navegador. A aplicação possui apenas uma pequena quantidade de código JavaScript no navegador para juntar os fragmentos HTML. Nossos times, e sem dúvida outros times também, experimentaram essa técnica depois que as solicitações assíncronas web ganharam suporte para vários navegadores por volta de 2005, mas por várias razões, ela nunca ganhou muita força.
Hoje, a abordagem Hotwire usa um navegador web moderno e recursos HTTP para atingir a velocidade, a capacidade de resposta e a natureza dinâmica de SPAs. Ela adota um design de aplicação web mais simples, localizando a lógica no servidor e mantendo o código do lado do cliente simples. A equipe da Basecamp lançou alguns frameworks Hotwire que alimentam sua própria aplicação, incluindo Turbo e Stimulus. O Turbo inclui um conjunto de técnicas e frameworks para acelerar a capacidade de resposta da aplicação, evitando o recarregamento da página inteira, visualização da página do cache e decomposição da página em fragmentos com aprimoramentos progressivos mediante solicitação. O Stimulus foi projetado para aprimorar o HTML estático no navegador, conectando objetos JavaScript aos elementos da página no HTML.