Wordgard: editor rich-text no navegador do criador do ProseMirror

React e considerações arquiteturais

  • Vários comentários observam que o ProseMirror é complicado no React porque o React quer “possuir” o DOM e usar atualizações puramente baseadas em estado, enquanto o ProseMirror/Wordgard gerenciam o DOM de forma mais direta.
  • O modelo de atualização focado em transações do Wordgard (a view recebe transações, e não apenas estado) é visto como uma possível melhoria para atualizações precisas do DOM e integração com frameworks de UI, embora a documentação pudesse abordar melhor a interoperabilidade com React.

Motivação, relação com o ProseMirror e custo de migração

  • As pessoas perguntam por que o Wordgard existe em vez de um ProseMirror v2 e se vale a pena migrar configurações existentes (por exemplo, baseadas em TipTap).
  • A resposta do autor no fio: o ProseMirror continuará sendo mantido; o Wordgard incorpora novos insights de design que não puderam ser adicionados de forma limpa e compatível com versões anteriores.
  • Não há um caminho simples de atualização; a mudança provavelmente envolve trabalho significativo e pode não valer a pena se o ProseMirror já atende às necessidades.

Detalhes de design técnico

  • O modelo de edição do Wordgard é comparado a sequências de “retain/keep + action” usadas em alguns editores colaborativos, e elogiado por ser mais fácil de raciocinar do que os steps do ProseMirror.
  • Ele usa uma camada de seleção personalizada em vez da seleção do navegador, o que alguns veem como mais sensato para comportamentos de edição complexos.
  • Zero dependências externas, além de pequenos pacotes utilitários do próprio autor.
  • Menções/compleções no estilo “@” e outras utilidades são candidatas para inclusão, mas ainda não estão claramente definidas.

Comparação com outros editores e com a plataforma web

  • Múltiplas comparações com Lexical: alguns elogiam o poder e o sistema de plugins do Lexical, além da manutenção ativa; outros desconfiam da Meta como mantenedora ou preferem o projeto independente.
  • Há uma frustração generalizada de que, após décadas, os navegadores ainda não tenham um padrão robusto de elemento rich-text; contenteditable é visto como problemático e inconsistente, o que torna a criação de editores robustos um esforço enorme.
  • Editores mais antigos baseados em contenteditable (da era TinyMCE/FCKEditor) são contrastados com editores modernos orientados a modelo como ProseMirror/Wordgard/Lexical.

Comportamento em mobile e estabilidade

  • Vários usuários relatam problemas sérios em mobile (Android e iOS): undo não funcionando, bugs de seleção, exclusão de seleção total quebrando o editor, substituições por autocorrect/sugestões apagando palavras, swipe-backspace não funcionando.
  • Outros confirmam alguns bugs, e pelo menos um problema específico foi aberto e corrigido.
  • O consenso: a arquitetura é promissora, mas o comportamento em mobile ainda é instável e precisa de testes no mundo real.

Ecossistema, hospedagem e preocupações de manutenção

  • Alguns se preocupam com o futuro do ProseMirror, já que muitos produtos importantes dependem dele; o fio esclarece que ele continuará sendo mantido e é licenciado sob MIT, então pode ser bifurcado.
  • Há uma breve preocupação de que o repositório de código auto-hospedado estivesse fora do ar; outros confirmam que ele funciona e mencionam motivações para sair do GitHub (uptime, risco de sanções, direção do produto).

UX, arte e sentimento geral

  • Reações fortemente positivas à arte desenhada à mão do site e às ilustrações não geradas por IA.
  • Sentimentos mistos sobre WYSIWYG em geral; alguns preferem markdown e enfatizam que autosaving de rascunhos (por exemplo, via localStorage) é um comportamento crucial do produto, e não uma limitação técnica.