Por que um terminal ensina o terminal
Todo tutorial de linha de comando é escrito para o navegador, que é justamente o lugar onde quem lê não consegue testar o que está sendo ensinado. O Tocha inverte isso: é uma TUI, então a lição e a prática acontecem na mesma janela, na máquina sobre a qual a pessoa está aprendendo.
O que ele faz
- Lições guiadas em passos: primeiro a explicação, depois o comando para rodar, depois o resultado para comparar.
- Explicações dentro da interface, para ninguém precisar manter duas janelas lado a lado para acompanhar.
- Segurança embutida na lição: a ideia é que um iniciante experimente sem medo de quebrar a própria máquina.
- Progresso salvo localmente, para parar e voltar depois sem criar conta.
- Estado da aplicação centralizado em um enum de ações: uma tecla vira uma transição de estado explícita, em vez de uma mutação perdida no meio do código de renderização.
- Gamificação, no roadmap, para a parte do aprendizado que é simples repetição.
Decisões técnicas e trade-offs
- Rust com Ratatui e Crossterm em vez de uma aplicação web. Trade-off: uma TUI precisa ser instalada antes de ensinar qualquer coisa, o que é atrito de verdade e faz menos gente experimentar. Em troca, a ferramenta é a própria coisa ensinada, e a explicação fica ao lado do prompt.
- Três repositórios em vez de um: o terminal em si, o site de download (Next.js) e um repositório público de releases. Trade-off: mais partes para manter em sincronia, mas os artefatos de release e os links de download ficam estáveis, e o site muda sem publicar uma versão nova do aplicativo.
- Binários gerados pelo CI e publicados em uma tag, para Windows x86_64, macOS (Intel e Apple Silicon) e Linux x86_64. Trade-off: o workflow de release precisa de manutenção, e uma tag errada publica um binário errado; a alternativa é quatro builds manuais por release, que é como uma ferramenta acaba saindo para uma plataforma só.
- Progresso guardado na máquina. Trade-off: sem progresso entre dispositivos e sem dados de onde as pessoas param, em troca de zero contas e funcionar offline.
Onde está
Duas lições estão no ar hoje, primeiros passos e comandos básicos. Elas vivem como arquivos de dados no repositório, e não dentro do código, então escrever a próxima é trabalho de conteúdo. O pipeline de release está pronto, com binários para os quatro alvos, e o site carrega as instruções de instalação. A gamificação é a próxima parte.
O terminal em si fica em um repositório privado; o site de download e os binários de release são os públicos.