Fundamentos y Futuros de Tauri

Rate this content
Bookmark

Tauri es un marco de construcción de aplicaciones de código abierto basado en Rust, centrado en la seguridad y construido sobre la filosofía de ofrecer proyectos mejores sin comprometer nuestros objetivos climáticos. Esta charla presentará los componentes clave y los puntos de referencia de la versión estable del marco completamente auditado. Además, se discutirá su futuro como un medio no solo para entregar aplicaciones de escritorio y móviles, sino también su misión de adaptar Servo para convertirse en un proveedor de vistas web completo y multiplataforma. Por último, presentaremos nuestro premio al "marco web moderno más seguro de 2022" en el contexto de las aplicaciones de Tauri basadas en vistas web.

22 min
16 Jun, 2022

Video Summary and Transcription

Tauri es una herramienta creada para mejorar el ecosistema de JS, proporcionando una alternativa ligera a Electron. Integra la pila de tecnologías, se enfoca en la seguridad y ofrece compatibilidad multiplataforma. Las medidas de seguridad incluyen una nueva interacción con iframes y una auditoría exhaustiva. Se enfatiza la importancia de cuidar el planeta y reducir el consumo de aplicaciones. Se discuten la comunidad, la licencia y los planes futuros de Tauri, así como los desafíos del soporte de vistas web y el objetivo de crear un motor consistente utilizando Servo.

Available in English

1. Introducción a Tauri

Short description:

Hace tres años, vine a JS Nation por primera vez. Hoy quiero darte una introducción a Tauri, una herramienta que construimos para mejorar nuestro ecosistema.

Oye, sabes, hace tres años vine a JS Nation por primera vez y fue aproximadamente un mes o dos después de que comenzamos a trabajar en Tauri. Así que es una sensación increíble volver aquí, especialmente después de estos últimos años, que han sido realmente extraños, ¿verdad? Como, estos meetups han sido modificados por la pantalla, así que ni siquiera teníamos esta distancia, ¿verdad? No teníamos esta forma de mirar hacia adelante. ¿A dónde vamos? ¿De dónde venimos? Y creo que hoy, lo que quiero hacer en la charla es darte una introducción a Tauri. Habrá un video corto, luego hablaré sobre las partes importantes de nuestra pila y luego pasaré a nuestra filosofía al respecto. El tiempo es corto. Voy a seguir adelante. Habrá preguntas más adelante. Pero estoy esperando mi Wi-Fi. Así que mientras se carga el video, y si no se carga, simplemente seguiré adelante, pero construimos Tauri para abordar una serie de preocupaciones y ninguna de ellas era que nuestro ecosistema es malo.

2. Construyendo aplicaciones seguras con Rust

Short description:

De Adam surgió Electron, que es una mezcla. Te permite hacer muchas cosas, pero es pesado y viene con un navegador y tiempo de ejecución desactualizados. Para abordar esto, construimos Tauri con Rust en el núcleo. Tauri tiene tres componentes: Tau, que crea ventanas y proporciona menús y bandejas del sistema; Rai, que inyecta una vista web en la ventana Tau; y un ecosistema que reúne a ingenieros de nivel de sistemas y desarrolladores front-end. Tauri integra la pila, proporciona acceso a la API del sistema de archivos y herramientas de compilación, y se enfoca en la seguridad y lo básico.

Construimos una herramienta para mejorar nuestro ecosistema. Cuando observamos cómo se han construido las aplicaciones, todo comenzó, creo, en este contexto con Adam. No sé si recuerdas eso. Acaba de desaparecer hace un par de días. De Adam surgió Electron y cualquiera que haya estado leyendo en Twitterati, todos saben que Electron es algo así como una mezcla. Te permite hacer muchas cosas. Pero supongo que omitiré el video. Te permite hacer muchas cosas, pero es muy pesado. Básicamente, con Electron, con ese sistema, estás enviando un navegador que generalmente está desactualizado en el momento en que lo envías. Estás enviando un tiempo de ejecución completo y también tu JavaScript. Ahora, hay toda esta idea en la comunidad de JavaScript de que el código isomórfico es genial. Quiero decir, en general es bueno por la facilidad de uso, y más adelante vamos a hablar de las implicaciones de seguridad de tener todo fácil. Pero también sucede que los atacantes pueden pasar del front-end de JavaScript al back-end de JavaScript, y siempre se escuchan sobre vulnerabilidades y ataques terribles. Así que decidimos ver cómo podemos reconstruir esta idea utilizando Rust en el núcleo. Y así tenemos básicamente tres componentes para Tauri, y comienza con una ventana. Ya sea que estés en Mac, Windows, Linux, iOS o Android, necesitas tener una ventana para colocar contenido. Y eso es Tau. Te permite crear una ventana, te brinda menús, bandejas del sistema, aceleradores de teclado, y eso es como el esqueleto, por así decirlo. La siguiente parte es Rai, y Rai te permite inyectar una vista web en la ventana Tau que ya has creado. Y lo importante de recordar aquí es que construimos estas bibliotecas en Rust, pero otras personas también pueden usarlas, no solo Tauri. Por ejemplo, la biblioteca Rai está siendo utilizada por Astrodon, que como sabrás es un proyecto para construir aplicaciones con Deno. Les hemos ayudado y ellos nos han ayudado, y creo que eso es algo a lo que vamos a volver en la charla, y es que este ecosistema de Tauri es algo único en mi experiencia porque no solo estamos involucrando a ingenieros de nivel de sistemas en el proyecto, sino también a personas de front-end de diferentes disciplinas, ya sea React, Vue o Svelte, o desde el lado de Rust, Dominator y U. Y todo esto se une en Tauri. Entonces, básicamente, lo que obtienes con Tauri es que integra toda esta pila. Te brinda acceso a la API, por ejemplo, del sistema de archivos desde la vista web, y también a las herramientas de compilación, para que puedas, si necesitas asignar el binario de macOS, lo haga por ti. Proporcionará un sistema de actualizaciones automáticas que puedes ofrecer a tus usuarios. Y es como el pegamento que lo mantiene todo unido. Entonces, las características de Tauri son que puedes llevar tu proyecto existente y funcionará. Por supuesto, si haces muchas cosas en Node.js, en Electron, tendrás que hacer algunas adaptaciones, pero realmente nos enfocamos en la seguridad y lo básico. Y mencioné esto antes. Es muy importante para nosotros que tú, como desarrollador, como equipo de ingeniería, tengas una seguridad básica que sepas que está ahí y que está verificada.

3. Características y Futuro de Tauri

Short description:

Tauri siempre se mantendrá con una doble licencia MIT Apache 2. El tamaño del paquete es mínimo, lo que permite aplicaciones muy pequeñas. Podamos el Rust que envías con tu aplicación, incluyendo solo los puntos funcionales que necesitas. Tauri es multiplataforma y se ha asociado con Cloudflare para la distribución global de aplicaciones. No necesitas conocer Rust, solo instala el compilador. Tauri funciona en iOS y Android, proporciona renderizadores alternativos y se está desarrollando un servicio de actualización. Se está trabajando en WebRTC en Linux. La compilación cruzada está disponible para pruebas locales.

y verificable. Esto es, supongo, una de las partes más importantes del software libre y de código abierto, lo cual quiero decir, soy un maximalista. Soy un maximalista del código abierto. Tauri siempre se mantendrá con una doble licencia MIT Apache 2. Hablaré más sobre cómo estamos demostrando eso más adelante. Lo más importante, sin embargo, para muchos de ustedes será el tamaño del paquete. Y eso es mínimo. Estamos viendo aplicaciones que son muy, muy grandes en el contexto de lo que hacen. Y tienen un tamaño de alrededor de 5, 6 megabytes. La diferencia que hemos visto, creo, fue de 540 kilobytes si observas los tamaños de los iconos. Así que puedes obtener aplicaciones realmente muy pequeñas. La razón de esto es que también eliminamos el Rust que envías con tu aplicación. En lugar de enviar un tiempo de ejecución completo, solo enviamos los puntos funcionales que necesitas para ejecutar tu sistema. Y obviamente, como dije, es multiplataforma. Puedes construir en un dispositivo Windows y luego usar nuestra CI que escribimos para GitHub. GitLab llegará pronto. Y producirá los binarios que necesitas. El anuncio llegará la próxima semana. Me complace decirte que nos hemos asociado con Cloudflare, por lo que si tu proyecto es de código abierto, puedes usar los workers de Cloudflare de forma gratuita para distribuir globalmente tus aplicaciones donde sea necesario en el borde. Es emocionante y, obviamente, está construido en Rust. Me dijeron que no necesitas conocer Rust. Solo tienes que instalar el compilador y nosotros nos encargamos de todo eso por ti. Ahora, si estás familiarizado con Rust o quieres aprender Rust, también es una gran oportunidad para familiarizarte sin comprometerte. ¿Y hacia dónde vamos desde aquí? Bueno, desde hace unos días, hemos verificado que funciona en iOS y Android. Eso se implementará en la próxima rama muy pronto. Estamos proporcionando renderizadores alternativos. Si no te gusta WebView, puedes enviar una ventana GL que funcionará en todas las plataformas también. Como mencioné, se está desarrollando un servicio de actualización. WebRTC en Linux es algo que está impidiendo que Element adopte Tauri. Pero estamos trabajando en eso junto con el equipo de WebKit GTK. La compilación cruzada es importante para muchos de ustedes.

4. Tauri: Enlaces Adicionales y Seguridad

Short description:

A gran escala, puedes usar CI, pero hay razones para hacerlo en una máquina. Tauri te permite escribir tu backend en varios lenguajes y comunicarte con la aplicación de la manera que desees. La seguridad es una preocupación importante y Tauri ha tomado medidas para garantizar el desarrollo de aplicaciones seguras. Han inventado un nuevo tipo de interacción de iFrame para evitar que el JavaScript de terceros acceda a sistemas sensibles. Se realizó una auditoría exhaustiva por parte de Radically Open Security para validar y fortalecer el sistema. La auditoría completa se puede encontrar en su repositorio de GitHub.

porque quieres probarlo localmente. Obviamente, a gran escala, quieres usar CI, pero hay razones para hacerlo en una máquina. Y luego, enlaces adicionales. Una palabra sobre eso porque es posible que no sepas exactamente lo que significa. Los enlaces adicionales significan que puedes escribir tu backend en Python, C, Go, Nim, C++, elige tu lenguaje. Mientras tenga interoperabilidad con C, puedes aprovechar Tauri y dirigirlo. Entonces, si estás familiarizado con alguno de esos lenguajes, incluso creo que Swift también llegará pronto, podrás simplemente usar nuestro sistema de compilación y comunicarte con la aplicación de la manera que desees. Así que me quedan unos nueve minutos y 30 segundos. Voy a pasar rápidamente por security, pero no debería. Una de las cosas que encontramos en nuestros servicios de ayuda es que la gente todo el tiempo dice que no les importa la seguridad. Como, ¿a quién le importa? Solo hazlo fácil. Y, como, el mayor riesgo que vemos con los ingenieros jóvenes, especialmente con el avance de la increíble DX que herramientas como Vite y Svelte y Tauri están trayendo es que es muy fácil hacer cosas. Entonces ni siquiera tienes que saber lo que significa. No tienes que entender las implicaciones de las cosas. Y hemos hecho todo lo posible para que sea posible que hagas una aplicación perfectamente segura. Hasta el punto en que incluso inventamos un nuevo tipo de interacción de iFrame con nuestra API que evita que el JavaScript de terceros pueda llamarlo. ¿Por qué es esto importante? Incluso en un navegador de sandbox, hay vulnerabilidades de día cero, hay vulnerabilidades de un día. Y en el contexto de una aplicación que da acceso a la pila de red, al sistema de archivos, al micrófono, a la cámara, corres el riesgo de permitir que los atacantes accedan de forma granular a tus sistemas. Y te guste o no, las aplicaciones de hoy en día viven en sistemas operativos que siempre están siendo comprometidos. Y si no te ocupas de esto, en realidad estás creando un vector donde las personas pueden atacarte a ti y a tus usuarios. Así que no seas una herramienta.

Ahora, teníamos muchas creencias sobre el sistema que construimos. Pensamos que era seguro, hicimos nuestro mejor trabajo. Resulta que encontramos como 54 hallazgos. Radically Open Security hizo un trabajo increíble trabajando junto con nosotros y no solo validando nuestro enfoque, sino también fortaleciéndolo. Así que uno de nuestros requisitos previos para lanzar la versión 1.0 fue tener esta auditoría horizontal y vertical. Puedes encontrar la auditoría completa en nuestro repositorio de GitHub. Ahora, es bastante obvio. Nos quedamos

5. La Importancia de Cuidar Nuestro Planeta

Short description:

Y cuando te despiertas pensando en lo que está sucediendo en el planeta, piensas, ¿deberíamos tomar una bicicleta o un taxi? ¿Verdad? Y trabajamos muy duro para crear binarios pequeños. Este es en realidad el problema, creo, que nos ha llevado a donde estamos ahora. En Internet hay miles y miles y miles de personas y todos están construyendo la próxima gran cosa y queremos apoyar eso. Pero lo que no queremos seguir apoyando es el saqueo de nuestro planeta porque tenemos que asumir la responsabilidad de eso, no solo la seguridad de nuestras aplicaciones, no solo la privacidad de nuestros usuarios, sino que realmente tenemos que cuidar de nuestro planeta porque nos guste o no, el agua está subiendo, hay sequías en todas partes, hay guerra y podemos hacer algo y tenemos que hacerlo.

en un Airbnb aquí en Ámsterdam. En un barco. En uno de los canales. Y cuando te despiertas pensando en lo que está sucediendo en el planeta, piensas, ¿deberíamos tomar una bicicleta o un taxi? ¿Verdad? Y trabajamos muy duro para crear binarios pequeños. Este es un ejemplo del que mencioné antes. Creo que fue Jonas quien lo construyó del equipo. Puedes crear binarios pequeños, pero a quién le importa, ¿verdad? Es espacio gratuito. Este es en realidad el problema, creo, que nos ha llevado a donde estamos ahora, y en esta sala hay alrededor de 100 personas. Fuera hay otras cientos más. En Internet hay miles y miles y miles de personas y todos están construyendo la próxima gran cosa y queremos apoyar eso. Lo que no queremos seguir apoyando es el saqueo de nuestro planeta porque tenemos que asumir la responsabilidad de eso, no solo la seguridad de nuestras aplicaciones, no solo la privacidad de nuestros usuarios, sino que realmente tenemos que cuidar de nuestro planeta porque nos guste o no, el agua está subiendo, hay sequías en todas partes, hay guerra y podemos hacer algo

6. El Impacto del Consumo de Aplicaciones en el Calentamiento Global

Short description:

Cuanto más se consume tu aplicación, más usuarios la descargan, más estás contribuyendo al calentamiento global. Aún tenemos que hacer todo lo posible para reducir nuestro consumo.

y tenemos que hacerlo. Solo como algo rápido, cuanto más se consume tu aplicación, más usuarios la descargan, más estás contribuyendo al calentamiento global. Esto es solo un pequeño ejercicio en el consumo de electricidad, y obviamente tus WebSockets, tus solicitudes REST, también consumen tráfico, pero aún tenemos que hacer todo lo posible, y creo que Taori es un gran paso en esa dirección, y siempre estamos trabajando para reducir el tamaño del paquete y educar a las personas, hey, reduce el tamaño de tus PNG. Usa SVG. No se trata solo del tiempo de entrega, no se trata de la velocidad con la que tienes que mostrar un sitio web. Es realmente importante que

7. Comunidad, Discord, Conservancy, Lanzamiento y API

Short description:

En los últimos minutos, hablaré sobre la comunidad, todo lo que hacemos en Discord, el Commons Conservancy, la junta directiva, el Open Collective, el libro en progreso, el reciente lanzamiento 1.0 y la API estable con correcciones de errores y nuevas características próximas.

reducimos nuestro consumo. Así que me quedan unos cinco minutos. Voy a hablar sobre la comunidad, quiénes somos y cómo puedes involucrarte si estás interesado. Todo lo que hacemos lo gestionamos en Discord. Tenemos varios canales públicos. También hay algunos canales privados, pero esos son más para fines organizativos. Esto se debe a que creemos en el código abierto. Creemos en la comunidad. Y cuando comenzamos a recibir contactos de capitalistas de riesgo, no entramos en pánico. Nos dirigimos al Commons Conservancy, que es una fundación aquí en Ámsterdam. Lo que hacen es proporcionar una entidad organizativa que protege el código de cambios de licencia. Protege el código de las personas. Protege el código de alguien que llega y dice que debe hacerse de manera diferente, hagámoslo así. Tenemos una junta directiva, pronto habrá una nueva votación y lo anunciaremos en los canales de Discord. Tenemos un Open Collective donde puedes hacer donaciones. Hemos utilizado los fondos del Open Collective para pagar parte de la auditoría que hemos realizado, y también para pagar nuestra marca registrada. Si estás escuchando Red Bull, muchas gracias por permitirnos usar el nombre de Towery. Eso fue algo interesante. También estamos trabajando en un libro, que esperamos que salga este año. Junto con PACT Publishing, profundizaremos en lo que hace que una aplicación de Towery y la filosofía detrás de ella. Y me quedan tres minutos. No sé si puedo mencionar a todos los involucrados en este proyecto, pero acabamos de lanzar la versión 1.0 a las 5 de la mañana. Aplausos. Gracias. Lo que eso significa. Significa que la API es estable, no va a cambiar. Solo aplicaremos correcciones de errores y este es nuestro sello de auditoría. Las nuevas características se implementarán en la próxima rama, que puedes utilizar desde JavaScript y Rust. Es solo una simple función, ya sabes, obtener la revisión o etiqueta del hash. Y voy a intentar agradecer a algunas personas que han sido realmente importantes para este proyecto.

QnA

Lucas and I's Journey, Community, and Licensing

Short description:

Lucas y yo comenzamos esto como un pasatiempo y se convirtió en algo que cambió nuestras vidas. Tenemos cientos de colaboradores y un equipo enorme. Queremos crecer contigo y esperamos los próximos años de este proyecto. Gracias por tus preguntas. Tomamos un taxi y Tauri utiliza la licencia MIT Apache 2. Discutamos la militarización del código abierto y la importancia de la comunidad en la formación del ecosistema.

Lucas y yo comenzamos esto como un pasatiempo y se convirtió en algo que cambió nuestras vidas. Y él quería que les agradeciera. Y me estoy derrumbando, lo siento. Ni siquiera podré recordar todos los nombres. Tenemos cientos de colaboradores. Tienes un equipo enorme. Queremos que el equipo crezca. Queremos crecer contigo. Y realmente esperamos lo que viene, los próximos años de este proyecto. Y sí. Solo quiero decir gracias y dejar más espacio para preguntas. Sí. Hay un recordatorio aquí en las diapositivas para que hagan sus preguntas. No hay muchas aún, así que puedo hacer todas mis preguntas, lo cual es genial. Ese es un gran privilegio de ser un presentador. Así que la primera pregunta. ¿Realmente tomaron la bicicleta o tomaron el taxi? Tomamos el taxi. ¿Pensaste que no lo recordaría, verdad? No, es un buen punto. Tengo miedo de las bicicletas en Ámsterdam. Bueno, eso es justo, creo. Tenía otra pregunta. Entonces, ¿qué tipo de licencia utiliza Tauri? Tauri utiliza la licencia MIT Apache 2, por lo que puedes usar la que prefieras. Siempre aprovecho esa oportunidad para hablar sobre la militarización del código abierto y cómo personalmente no creo en eso. Creo que como ingenieros elegimos una licencia para habilitar a las personas en lugar de evitar que hagan cosas. Sé que ha habido situaciones recientes en las que las personas han decidido cambiar su código o cambiar su licencia, y eso pone en riesgo la salud del ecosistema. La comunidad es el lugar adecuado para eso. Nuestras pautas, nuestras expectativas de comportamiento, creo que son la moralidad, el fundamento del código abierto, y la licencia en sí misma es solo un acuerdo legal. No refleja cómo nos sentimos. Sí, creo que es una discusión interesante de todos modos, pero sí, noté que hay un par de licencias atmosféricas que pensé que probablemente consideraste todas

Tauri Web View Support and Future

Short description:

Las vistas web de Tauri utilizan diferentes motores en diferentes plataformas, pero estamos trabajando en adaptar Servo para garantizar la consistencia. La falta de estándares para las vistas web dificulta su trabajo, pero los sistemas operativos generalmente se encargan de las actualizaciones. Nuestro proyecto de investigación tiene como objetivo crear una vista web dedicada para Tauri utilizando Servo, asegurando el mismo motor de CSS y JavaScript en todas las plataformas.

de eso. Genial, muy genial. Veamos si hay alguna otra pregunta. Vi que llegó algo. ¿El soporte de JavaScript en la vista web de Tauri es el mismo que en un navegador?. Soportamos ES 2021. Creo que la parte complicada es que utilizamos WK WebKit en dispositivos tipo Mac, utilizamos WebKit GTK en dispositivos tipo Linux y utilizamos WebView2 en dispositivos tipo Windows. Y aunque amamos las vistas web, son como los hijos no queridos del ecosistema del navegador. Porque lo que sucede es que no hay estándares reales para ellas. Y así, simplemente funcionan o no funcionan. ¿Y cómo se actualizan? Y creo que los sistemas operativos hacen un buen trabajo manteniéndolos actualizados. Pero uno de nuestros proyectos de investigación se centra en adaptar Servo para convertirlo en una vista web adecuada para Tauri. Porque así podemos garantizar que sea el mismo CSS. Es el mismo motor de JavaScript en todas las plataformas. Genial. Espero que la pregunta de la persona haya sido respondida. Me encanta esta. Es más bien una solicitud que una pregunta. ¿Han pensado en hacer talleres para incorporar y educar a la comunidad en la creación de aplicaciones mejores y orientadas a la seguridad? Sí, estamos planeando un taller de código este otoño en Malta que culminará en una conferencia de un día o algo así, donde las personas del taller podrán presentar lo que hicieron y luego las personas de Core y otras empresas podrán hablar sobre su experiencia con Tauri. Genial. Hagamos una más rápida. ¿Se puede implementar una aplicación de Tauri como una aplicación de escritorio y una aplicación web simultáneamente? Bueno, básicamente, la forma en que funciona Tauri es que envías tu código de React, por ejemplo, lo compilas y luego Tauri toma esa compilación y la coloca en el binario, ¿verdad? Y si tu canalización es capaz de diferenciar las compilaciones, entonces sí. Y obviamente, con un poco de JavaScript ingenioso, puedes detectar si estás en un contexto de Tauri y si es así, aplicar las API de Tauri, y si no, aplicar las API web. Genial. Gracias por eso. Desafortunadamente, se nos acabó el tiempo, pero creo que todos podemos encontrarte más tarde en las salas de discusión. Hay salas de preguntas y respuestas justo afuera de esta sala. Encuentra a nuestros oradores allí y haz tus preguntas adicionales. Creo que también te acompaña nuestra audiencia remota, así que eso podría ser realmente agradable. Muchas gracias. Gracias.

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Summit Remote Edition 2021React Summit Remote Edition 2021
33 min
Building Better Websites with Remix
Top Content
Remix is a new web framework from the creators of React Router that helps you build better, faster websites through a solid understanding of web fundamentals. Remix takes care of the heavy lifting like server rendering, code splitting, prefetching, and navigation and leaves you with the fun part: building something awesome!
React Summit 2023React Summit 2023
32 min
Speeding Up Your React App With Less JavaScript
Top Content
Too much JavaScript is getting you down? New frameworks promising no JavaScript look interesting, but you have an existing React application to maintain. What if Qwik React is your answer for faster applications startup and better user experience? Qwik React allows you to easily turn your React application into a collection of islands, which can be SSRed and delayed hydrated, and in some instances, hydration skipped altogether. And all of this in an incremental way without a rewrite.
JSNation 2022JSNation 2022
28 min
Full Stack Documentation
Top Content
Interactive web-based tutorials have become a staple of front end frameworks, and it's easy to see why — developers love being able to try out new tools without the hassle of installing packages or cloning repos.But in the age of full stack meta-frameworks like Next, Remix and SvelteKit, these tutorials only go so far. In this talk, we'll look at how we on the Svelte team are using cutting edge web technology to rethink how we teach each other the tools of our trade.
GraphQL Galaxy 2021GraphQL Galaxy 2021
32 min
From GraphQL Zero to GraphQL Hero with RedwoodJS
Top Content
We all love GraphQL, but it can be daunting to get a server up and running and keep your code organized, maintainable, and testable over the long term. No more! Come watch as I go from an empty directory to a fully fledged GraphQL API in minutes flat. Plus, see how easy it is to use and create directives to clean up your code even more. You're gonna love GraphQL even more once you make things Redwood Easy!
JSNation 2023JSNation 2023
28 min
SolidJS: Why All the Suspense?
Top Content
Solid caught the eye of the frontend community by re-popularizing reactive programming with its compelling use of Signals to render without re-renders. We've seen them adopted in the past year in everything from Preact to Angular. Signals offer a powerful set of primitives that ensure that your UI is in sync with your state independent of components. A universal language for the frontend user interface.
But what about Async? How do we manage to orchestrate data loading and mutation, server rendering, and streaming? Ryan Carniato, creator of SolidJS, takes a look at a different primitive. One that is often misunderstood but is as powerful in its use. Join him as he shows what all the Suspense is about.
React Summit Remote Edition 2021React Summit Remote Edition 2021
43 min
RedwoodJS: The Full-Stack React App Framework of Your Dreams
Top Content
Tired of rebuilding your React-based web framework from scratch for every new project? You're in luck! RedwoodJS is a full-stack web application framework (think Rails but for JS/TS devs) based on React, Apollo GraphQL, and Prisma 2. We do the heavy integration work so you don't have to. We also beautifully integrate Jest and Storybook, and offer built-in solutions for declarative data fetching, authentication, pre-rendering, logging, a11y, and tons more. Deploy to Netlify, Vercel, or go oldschool on AWS or bare metal. In this talk you'll learn about the RedwoodJS architecture, see core features in action, and walk away with a sense of wonder and awe in your heart.

Workshops on related topic

JSNation 2023JSNation 2023
170 min
Building WebApps That Light Up the Internet with QwikCity
Featured WorkshopFree
Building instant-on web applications at scale have been elusive. Real-world sites need tracking, analytics, and complex user interfaces and interactions. We always start with the best intentions but end up with a less-than-ideal site.
QwikCity is a new meta-framework that allows you to build large-scale applications with constant startup-up performance. We will look at how to build a QwikCity application and what makes it unique. The workshop will show you how to set up a QwikCitp project. How routing works with layout. The demo application will fetch data and present it to the user in an editable form. And finally, how one can use authentication. All of the basic parts for any large-scale applications.
Along the way, we will also look at what makes Qwik unique, and how resumability enables constant startup performance no matter the application complexity.
React Summit 2023React Summit 2023
106 min
Back to the Roots With Remix
Featured Workshop
The modern web would be different without rich client-side applications supported by powerful frameworks: React, Angular, Vue, Lit, and many others. These frameworks rely on client-side JavaScript, which is their core. However, there are other approaches to rendering. One of them (quite old, by the way) is server-side rendering entirely without JavaScript. Let's find out if this is a good idea and how Remix can help us with it?
Prerequisites- Good understanding of JavaScript or TypeScript- It would help to have experience with React, Redux, Node.js and writing FrontEnd and BackEnd applications- Preinstall Node.js, npm- We prefer to use VSCode, but also cloud IDEs such as codesandbox (other IDEs are also ok)
JSNation 2023JSNation 2023
109 min
Beyond the Framework: Distributing Your Desktop App Like a Pro
WorkshopFree
Building apps using web technology is great; however, at times you may encounter limitations regardless of what framework you choose. During this workshop, we will talk about choosing a framework, common problems and how to overcome them.
Table of contents- Introduction: The intertwined history of the Web and Apps- So many desktop app technologies! How do I choose one?- Common issues and how to think about apps- Conclusion
Node Congress 2021Node Congress 2021
128 min
Learn Fastify One Plugin at a Time
Workshop
Fastify is an HTTP framework for Node.js that focuses on providing a good developer experience without compromising on performance metrics. What makes Fastify special are not its technical details, but its community which is wide open for contributions of any kind. Part of the secret sauce is Fastify plugin architecture that enabled developers to write more than a hundred plugins.This hands-on workshop is structured around a series of exercises that covers from basics "hello world", to how to structure a project, perform database access and authentication.

https://github.com/nearform/the-fastify-workshop
JSNation 2023JSNation 2023
66 min
Build a Universal Reactive Data Library with Starbeam
WorkshopFree
This session will focus on Starbeam's universal building blocks. We'll use Starbeam to build a data library that works in multiple frameworks.We'll write a library that caches and updates data, and supports relationships, sorting and filtering.Rather than fetching data directly, it will work with asynchronously fetched data, including data fetched after initial render. Data fetched and updated through web sockets will also work well.All of these features will be reactive, of course.Imagine you filter your data by its title, and then you update the title of a record to match the filter: any output relying on the filtered data will update to reflect the updated filter.In 90 minutes, you'll build an awesome reactive data library and learn a powerful new tool for building reactive systems. The best part: the library works in any framework, even though you don't think about (or depend on) any framework when you built it.
Table of contents- Storing a Fetched Record in a Cell- Storing multiple records in a reactive Map- Reactive iteration is normal iteration- Reactive filtering is normal filtering- Fetching more records and updating the Map- Reactive sorting is normal sorting (is this getting a bit repetitive?)- Modelling cache invalidation as data- Bonus: reactive relationships
React Advanced Conference 2022React Advanced Conference 2022
81 min
Build a Product Page with Shopify’s Hydrogen Framework
WorkshopFree
Get hands on with Hydrogen, a React-based framework for building headless storefronts. Hydrogen is built for Shopify commerce with all the features you need for a production-ready storefront. It provides a quick start, build-fast environment so you can focus on the fun stuff - building unique commerce experiences. In this workshop we’ll scaffold a new storefront and rapidly build a product page. We’ll cover how to get started, file-based routing, fetching data from the Storefront API, Hydrogen’s built-in components and how to apply styling with Tailwind.You will know:- Get started with the hello-world template on StackBlitz- File-based routing to create a /products/example route- Dynamic routing /products/:handle- Hit the Storefront API with GraphQL- Move the query into the Hydrogen app- Update the query to fetch a product by handle- Display title, price, image & description.- Tailwind styling- Variant picker and buy now button- Bonus if there’s time: Collections page
Prerequisites: - A Chromium-based browser (StackBlitz)- Ideally experience with React. A general web development background would be fine.