Show HN: React Spreadsheet 2

Un nuevo componente de hoja de cálculo basado en React, RowsnColumns Spreadsheet 2, pretende permitir a los desarrolladores incrustar tablas colaborativas al estilo de Google Sheets directamente en aplicaciones web mediante una cuadrícula virtualizada impulsada por canvas. Los comentaristas elogian la profundidad de funciones y la colaboración en tiempo real, pero señalan peculiaridades de rendimiento en algunos dispositivos, desafíos de accesibilidad con el renderizado en canvas e inestabilidad en el modo colaborativo de la demo pública. También hay debate sobre su licencia no comercial y su precio relativamente alto, especialmente dadas las bibliotecas de cuadrículas y hojas de cálculo de código abierto o de menor coste con las que compite.

Resumen y conjunto de funciones

  • Interfaz de hoja de cálculo basada en React renderizada en canvas; busca replicar una experiencia al estilo de Google Sheets.
  • Admite renderizado declarativo de celdas, fórmulas personalizadas, contenido incrustado, temas y colaboración en tiempo real.
  • A los usuarios les gusta el acabado, el aspecto multijugador y los atajos familiares (p. ej., Cmd+D).

Rendimiento y escalabilidad

  • Usa virtualización de filas y columnas y hooks asíncronos para carga diferida / scroll infinito.
  • Límites duros: ~1.048.576 filas y 16.384 columnas.
  • Algunos usuarios informan de un rendimiento fluido en iPhones más nuevos; otros ven un desplazamiento entrecortado en Android/Firefox de gama media y al principio en un Pixel, que luego mejoró.
  • El autor describe un perfilado centrado en FPS, la división del canvas para pantallas 4K grandes y la atención a los costes de layout / re-renderizado.
  • Debate sobre si las hojas de cálculo son apropiadas para conjuntos de datos de un millón de filas frente a bases de datos adecuadas.

Accesibilidad y enfoque de renderizado

  • El renderizado basado en canvas plantea preguntas de accesibilidad.
  • Solución prevista: superponer un elemento table con regiones ARIA y texto plano para lectores de pantalla, además de navegación por teclado, tematización y modo claro/oscuro.
  • La discusión señala que los elementos table nativos a veces rinden mejor que las cuadrículas basadas en div en algunos navegadores.

Demo de colaboración, errores y estabilidad

  • La demo pública de colaboración es elogiada como impresionante, pero se bloquea repetidamente con excepciones de JS del lado del cliente.
  • Problemas conocidos: borrar una hoja en la que está otro usuario, errores de regex de fechas específicos de la configuración regional y estado no persistente que provoca desincronización.
  • A algunos usuarios les resulta distractora la hoja colaborativa en constante cambio; se ofrece un modo de un solo usuario (?collab=false).
  • La hoja colaborativa abierta a veces degenera en spam/insultos, lo que provoca peticiones de moderación o filtros.

Licencias, precios y casos de uso objetivo

  • El código es de fuente cerrada; el repositorio de GitHub es privado para los licenciatarios.
  • El precio se percibe como “premium” y “caro”, especialmente la licencia “solo” no comercial de $299.
  • Hay confusión y escepticismo sobre quién pagaría por una licencia solo para uso no comercial.
  • Quienes lo defienden señalan las herramientas internas, paneles y aplicaciones propias como un mercado importante.

Alternativas y herramientas relacionadas

  • El hilo menciona otras cuadrículas/hojas de cálculo: opciones de código abierto como SlickGrid, el antiguo Handsontable, TUI Grid, React Spreadsheet, Svelte Sheets y un motor próximo con licencia MIT.
  • Reflexión más amplia de que las UIs tipo hoja de cálculo son técnicamente difíciles, pero a menudo se reimplementan, a veces dando la sensación de “volver a 1982” en términos de UX.