Show HN: React Spreadsheet 2

Um novo componente de planilha baseado em React, RowsnColumns Spreadsheet 2, pretende permitir que desenvolvedores incorporem tabelas colaborativas no estilo do Google Sheets diretamente em aplicativos web usando uma grade virtualizada orientada por canvas. Comentadores elogiam a profundidade dos recursos e a colaboração em tempo real, mas destacam peculiaridades de desempenho em alguns dispositivos, desafios de acessibilidade com renderização em canvas e instabilidade no modo colaborativo da demo pública. Há também debate sobre seu licenciamento não comercial e preço relativamente alto, especialmente diante de bibliotecas concorrentes de grade e planilha de código aberto ou de menor custo.

Visão geral e conjunto de recursos

  • Interface de planilha baseada em React renderizada em canvas; visa replicar a experiência no estilo do Google Sheets.
  • Suporta renderização declarativa de células, fórmulas personalizadas, conteúdo incorporado, temas e colaboração em tempo real.
  • Usuários apreciam o polimento, o aspecto multiplayer e os atalhos familiares (por exemplo, Cmd+D).

Desempenho e escalabilidade

  • Usa virtualização de linhas e colunas e hooks assíncronos para carregamento preguiçoso / rolagem infinita.
  • Limites rígidos: ~1.048.576 linhas e 16.384 colunas.
  • Alguns usuários relatam desempenho fluido em iPhones mais novos; outros veem rolagem truncada em Android/Firefox intermediários e, inicialmente, em um Pixel, que depois melhorou.
  • O autor descreve profiling com foco em FPS, divisão do canvas para telas 4K grandes e atenção aos custos de layout / re-renderização.
  • Debate sobre se planilhas são apropriadas para conjuntos de dados com milhões de linhas versus bancos de dados adequados.

Acessibilidade e abordagem de renderização

  • A renderização baseada em canvas levanta প্রশ্নões de acessibilidade.
  • Solução planejada: sobrepor um elemento de tabela com regiões ARIA e texto simples para leitores de tela, além de navegação por teclado, temas e modo claro/escuro.
  • A discussão observa que elementos nativos de tabela às vezes têm melhor desempenho do que grades baseadas em div em alguns navegadores.

Demo de colaboração, bugs e estabilidade

  • A demo pública de colaboração é elogiada como impressionante, mas trava repetidamente com exceções de JS no lado do cliente.
  • Problemas conhecidos: excluir uma planilha em que outro usuário está, erros de regex de data específicos de localidade e estado não persistente levando a dessincronização.
  • Alguns usuários acham a planilha colaborativa em constante mudança distrativa; um modo de usuário único (?collab=false) é fornecido.
  • A planilha colaborativa aberta ocasionalmente degrada em spam/injúrias, levando a pedidos de moderação ou filtros.

Licenciamento, preços e casos de uso-alvo

  • O código é fechado; o repositório no GitHub é privado para licenciados.
  • O preço é visto como “premium” e “caro”, especialmente a licença “solo” não comercial de US$ 299.
  • Há confusão e ceticismo sobre quem pagaria por licenciamento apenas para uso não comercial.
  • Defensores apontam ferramentas internas, dashboards e aplicativos internos como um mercado significativo.

Alternativas e ferramentas relacionadas

  • O tópico menciona outras grades/planilhas: opções de código aberto como SlickGrid, o mais antigo Handsontable, TUI Grid, React Spreadsheet, Svelte Sheets e um motor com licença MIT que está por vir.
  • Reflexão mais ampla de que UIs no estilo de planilha são tecnicamente desafiadoras, mas frequentemente reimplementadas, às vezes parecendo “de volta a 1982” em termos de UX.