In-App Messaging with React Primitives

Rate this content
Bookmark

En Knock potenciamos experiencias de mensajería in-app en tiempo real a través de nuestro React SDK, permitiendo a los equipos de producto integrar componentes y tener feeds de notificaciones in-app completamente funcionales, modales, banners y más disponibles al instante. En esta charla, veremos cómo estructuramos nuestra biblioteca de React de manera componible, dando a los equipos el poder de usar nuestros componentes listos para usar, sobrescribir el estilo con sus propios tokens o traer sus propios componentes de UI a través de hooks. Profundizaremos en cómo estructuramos nuestro SDK para proporcionar la máxima flexibilidad para los equipos de ingeniería, mientras preservamos la facilidad de mantenimiento.

This talk has been presented at React Summit US 2024, check out the latest edition of this React Conference.

Chris Bell
Chris Bell
8 min
19 Nov, 2024

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Hola a todos. Soy Chris, el CTO de Nock. Ayudamos a los equipos de producto a potenciar experiencias de notificación centradas en el usuario a través de múltiples canales. Hoy, hablaré sobre cómo extender las capacidades de nuestra mensajería in-app y cómo puedes potenciar cualquier tipo de mensajería in-app usando nuestra plataforma. Optimizamos para flexibilidad, personalización y una curva de aprendizaje baja. Nuestros componentes preconstruidos de React incluyen un banner, modal, tarjeta y feed de notificaciones. Todo esto viene listo para usar, soportando modo claro y modo oscuro. Muestra fácilmente modales y anuncios sin código adicional. Posee los componentes renderizados para rendimiento y personalización. Construye componentes personalizados con código mínimo. Usa hooks para obtener datos y actualizaciones en tiempo real. Noc proporciona un esquema para una fuerte integridad de datos.

1. Building React Primitives for In-App Messaging

Short description:

Hola a todos. Soy Chris, el CTO de Nock. Ayudamos a los equipos de producto a potenciar experiencias de notificación multicanal centradas en el usuario. Hoy, hablaré sobre cómo extender las capacidades de nuestra mensajería en la aplicación y cómo puedes potenciar cualquier tipo de mensajería en la aplicación usando nuestra plataforma. Puedes construir modales, banners y toasts mapeados a tus propios componentes. Nock potencia la capa de datos, proporcionando infraestructura en tiempo real a gran escala.

Hola a todos. Soy Chris. Hoy estoy hablando sobre la construcción de primitivas de React para potenciar la mensajería en la aplicación. Soy el CTO de Nock.

Solo una breve introducción sobre qué es Nock en caso de que no hayas visto nuestros videos afuera. Ayudamos a los equipos de producto a potenciar experiencias de notificación multicanal centradas en el usuario. Piensa en cosas como enviar correos electrónicos, push, SMS, Slack, todas esas cosas buenas. Pero también potenciamos experiencias en la aplicación para cosas como feeds de notificaciones. Estoy seguro de que muchos de ustedes en esta sala y más allá han usado Vercel. Un dato curioso sobre Nock es que potenciamos todas las aplicaciones y correos electrónicos de Vercel. Así que si alguna vez has fallado una construcción en Vercel, esas notificaciones llegan a través de Nock. Este es un muy buen ejemplo del tipo de experiencia en la aplicación que puedes construir actualmente con la plataforma Nock, que básicamente potencia todo el backend, el servicio en tiempo real, y luego te damos una biblioteca de React y un montón de hooks para que puedas construir tu propia interfaz de usuario sobre ella.

Pero hoy, lo que quiero hablar contigo es sobre cómo hemos estado extendiendo las capacidades de nuestra mensajería en la aplicación mucho más allá de simplemente hacer esos tipos de feeds de notificaciones. Así que lo que estamos haciendo hoy es realmente traer la capacidad para que puedas potenciar cualquier tipo de mensajería en la aplicación, ya sea, sabes, tal vez sea un modal o un banner o como un toast que aparece a tus usuarios. Y todo eso está mapeado a componentes que posees y que introduces en tu base de código. Y Nock potencia la capa de datos cuando hacemos eso, y realmente obtienes el beneficio de nuestra infraestructura en tiempo real en la aplicación que actualmente maneja millones de usuarios a través de miles de millones de solicitudes de API. Así que mucha escala.

2. Approaching SDK Updates for Introducing Changes

Short description:

Pero hoy, hablaré sobre cómo abordamos las actualizaciones del SDK para introducir cambios. Optimizamos para la flexibilidad, personalización y una curva de aprendizaje baja. Nuestro diseño incluye un SDK de cliente de bajo nivel, hooks para bibliotecas de React y componentes listos para usar construidos sobre Radex UI. Estos componentes son accesibles y personalizables, permitiéndote sobrescribir estilos y adaptarlos a tu producto. Nuestros componentes preconstruidos de React incluyen un banner, modal, tarjeta y feed de notificaciones.

Pero de lo que quiero hablar hoy es un poco sobre cómo realmente abordamos las actualizaciones del SDK para introducir estos cambios. Así que realmente nos propusimos algunos principios de diseño sobre cómo introducir esto. Así que realmente queríamos asegurarnos de que estamos optimizando para la flexibilidad en torno a los casos de uso. Así que pensando en los clientes que están usando estos componentes preconstruidos listos para usar, pero también personas que vienen y construyen componentes personalizados sobre lo que estamos proporcionando, hasta Shocker para esta sala, personas que están usando otros marcos de Vue que no son React. Y tal vez necesiten vincularse y hacer algo dentro de Vue o Svelte o algo más así.

Y también queríamos asegurarnos de que todo sea súper personalizable. Así que si estás usando nuestros componentes listos para usar tal como vienen, puedes sobrescribir todo el estilo y traer tu propio tipo de sistema de diseño y conjunto de estilos a ello. Y luego, por último, queríamos este tipo de curva de aprendizaje baja, para hacerlo realmente fácil para las personas comenzar con los componentes que proporcionamos. Así que es la mínima cantidad de cambios dentro de tu base de código para comenzar a funcionar con estos componentes preconstruidos listos para usar.

Así que aquí hay un poco sobre cómo abordamos nuestro diseño. Así que esta diapositiva no es una pila, pero si te imaginas un poco más como una pila, esto tiene más sentido. En la parte inferior, tenemos nuestro SDK de bajo nivel, que es nuestro SDK de cliente. Ese es un envoltorio de bajo nivel que realmente expone clases de JavaScript simples y luego gestiona toda la lógica de negocio asociada con la mensajería en la aplicación. ¿Cuándo debería mostrarse ese mensaje? ¿A quién debería mostrarse? Marcarlo como leído, cosas así. Eso está respaldado por una tienda que realmente usamos TANstack Store para, lo cual es fantástico porque nos da esta capacidad de plataforma cruzada de Vue para vincularnos a estas actualizaciones de estado. Realmente, realmente genial.

Luego, a continuación, realmente exponemos un conjunto de hooks que hacen uso de ese cliente de bajo nivel. Eso es lo que nuestras bibliotecas de React pueden consumir. Esos hooks hacen que todo sea agradablemente reactificado, lo que facilita mucho la vinculación a esa tienda de estado para que puedas recibir estas actualizaciones. Luego, finalmente, en la parte superior de la pila hay un conjunto de componentes listos para usar que proporcionamos. Esos están construidos sobre Radex UI, las primitivas que proporciona. Asegúrate de que tengamos un buen conjunto de componentes accesibles desde el principio. Luego, también entregamos estos tipos de componentes inteligentes y tontos. El componente inteligente se vincula a nuestros hooks, proporciona toda la funcionalidad. Estos componentes tontos son más de la capa de vista donde las personas pueden entrar y tal vez quieras usar nuestro modal, pero quieres sobrescribir la forma en que funciona el botón o algún otro aspecto del modal, y puedes hacerlo. Luego, todo dentro de aquí, puedes realmente actualizar las variables CSS o las clases pueden ser sobrescritas. Es realmente fácil adaptarlo a cualquier estilo que tengas dentro de tu producto.

Genial. Aquí hay un pequeño vistazo a cómo se ven nuestros componentes preconstruidos de React. Proporcionamos un banner, un modal, una tarjeta, este feed de notificaciones también.