<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Oscar Barajas Tavares</title>
    <description>The latest articles on DEV Community by Oscar Barajas Tavares (@gndx).</description>
    <link>https://dev.to/gndx</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F85363%2F9463e89e-2651-4c09-90d2-4afbd40e6eb8.jpeg</url>
      <title>DEV Community: Oscar Barajas Tavares</title>
      <link>https://dev.to/gndx</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gndx"/>
    <language>en</language>
    <item>
      <title>EV0 Astro Theme</title>
      <dc:creator>Oscar Barajas Tavares</dc:creator>
      <pubDate>Wed, 04 Oct 2023 00:20:00 +0000</pubDate>
      <link>https://dev.to/gndx/ev0-astro-theme-3oah</link>
      <guid>https://dev.to/gndx/ev0-astro-theme-3oah</guid>
      <description>&lt;p&gt;Soy un apasionado por la creación de productos y proyectos que impacten en la comunidad y las personas, por ese motivo quiero presentarte &lt;strong&gt;EV0 Astro Theme&lt;/strong&gt;, una plantilla diseñada para blogs y portafolios.&lt;/p&gt;

&lt;p&gt;Durante mucho tiempo, he estado construyendo y liberando recursos open source, como plantillas en HTML/CSS/React, y en esta ocasión, mi enfoque se centró en trabajar con diferentes recursos para Astro.Build.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kBi7_Kpm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://s3.amazonaws.com/gndx.dev/ev0-astro-theme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kBi7_Kpm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://s3.amazonaws.com/gndx.dev/ev0-astro-theme.png" alt="EV0 Astro Theme" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Qué hace que EV0 Astro Theme se destaque?
&lt;/h2&gt;

&lt;p&gt;EV0 Astro Theme es el resultado de mi deseo de cambiar y mejorar mi blog. A lo largo del tiempo, he utilizado plantillas de otros profesionales y recursos pre construidos en mi blog, También he probado plataformas como WordPress, Ghost, Next.JS, entre otras. Ahora, es el turno de Astro.build, un framework poderoso para la construcción de páginas web. Hoy eso se acaba y construí un recurso totalmente desde cero.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;EV0 Astro Theme&lt;/strong&gt; es una plantilla base de Astro, está diseñada para servir como un punto de partida ideal para tu propio blog o portafolio, con características que destacan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Estilo minimalista:&lt;/strong&gt; Utiliza Tailwind CSS para un diseño limpio y elegante.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Rendimiento excepcional:&lt;/strong&gt; Logra una calificación 100/100 en Lighthouse, la herramienta de Google que mide el rendimiento web.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Amigable con SEO:&lt;/strong&gt; Cuenta con URLs canónicas y datos OpenGraph para una mejor optimización en motores de búsqueda.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Soporte para sitemaps:&lt;/strong&gt; Facilita la indexación de tu sitio por los motores de búsqueda.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Compatibilidad con feeds RSS:&lt;/strong&gt; Permite a tus seguidores mantenerse actualizados fácilmente.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Compatibilidad con Markdown y MDX:&lt;/strong&gt; Escribe contenido de manera sencilla y efectiva.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Preparado para PWA:&lt;/strong&gt; Proporciona una experiencia progresiva para usuarios de dispositivos móviles.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Totalmente responsive:&lt;/strong&gt; Garantiza que tu sitio se vea y funcione de manera óptima en todos los dispositivos.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Robots.txt &amp;amp; Humans.txt:&lt;/strong&gt; Control total sobre la indexación de motores de búsqueda y la comunicación con los visitantes.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Soporte para TypeScript:&lt;/strong&gt; Facilita el desarrollo con este lenguaje de programación.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Resaltado de sintaxis:&lt;/strong&gt; Hace que tu código y contenido sean más legibles.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Integración de YouTube:&lt;/strong&gt; Incrusta fácilmente videos de YouTube en tus publicaciones.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;CLI para agregar nuevas publicaciones:&lt;/strong&gt; Simplifica la creación de contenido.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  ¿Por qué enfocarse en una calificación 100/100 en Lighthouse?
&lt;/h2&gt;

&lt;p&gt;Uno de los aspectos más destacados de &lt;strong&gt;EV0 Astro Theme&lt;/strong&gt; es su excepcional calificación 100/100 en Lighthouse, una herramienta crucial de Google para medir factores clave de una página web, como el rendimiento, accesibilidad, mejores prácticas, SEO y PWA. Esta plantilla ha sido diseñada meticulosamente para cumplir con cada uno de estos criterios, lo que garantiza una experiencia de usuario óptima y un rendimiento excepcional.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Cómo puedes utilizar EV0 Astro Theme?
&lt;/h2&gt;

&lt;p&gt;Mi objetivo al crear &lt;strong&gt;EV0 Astro Theme&lt;/strong&gt; es proporcionarte una plantilla versátil y de alto rendimiento que puedas utilizar, mejorar y adaptar según tus necesidades. La comunidad es fundamental, así que te animo a que aproveches esta plantilla, la personalices y contribuyas a su desarrollo continuo. Espero que te entusiasme tanto como a mí y que la compartas con otros apasionados de la creación en la web.&lt;/p&gt;

&lt;p&gt;Descargar "&lt;a href="https://github.com/gndx/ev0-astro-theme"&gt;Evo Astro Theme&lt;/a&gt;"&lt;/p&gt;

</description>
      <category>astro</category>
      <category>spanish</category>
      <category>astrothemes</category>
      <category>template</category>
    </item>
    <item>
      <title>La WEB 3 se construye en TypeScript</title>
      <dc:creator>Oscar Barajas Tavares</dc:creator>
      <pubDate>Sun, 20 Feb 2022 03:47:22 +0000</pubDate>
      <link>https://dev.to/gndx/la-web-3-se-construye-en-typescript-2ggj</link>
      <guid>https://dev.to/gndx/la-web-3-se-construye-en-typescript-2ggj</guid>
      <description>&lt;p&gt;Fui invitado a impartir la charla "&lt;strong&gt;La WEB 3 se construye en TypeScript&lt;/strong&gt;" en el evento TypeScript Day de la comunidad de Angular Bolivia.&lt;/p&gt;

&lt;p&gt;Mi experiencia en el tema de la &lt;strong&gt;Web3&lt;/strong&gt; inicia en agosto del 2021 cuando decido enfocarme en entender a detalle las tecnologías detrás del Blockchain, Las criptomonedas y entender los conceptos que son fundamentales para comprenderles y poder un día no muy lejano enseñar a implementar estas tecnologías.&lt;/p&gt;

&lt;p&gt;Quiero compartirte parte de mi experiencia y lo que he aprendido, cave mencionar que en ningún momento estás obligado a comprar ninguna criptomoneda, aquí no hablaremos de inversiones, ni de obtener beneficios monetarios, los temas que trato de enseñar o mostrar con mi experiencia es para que puedas crear tu propia opinión y tengas un camino que seguir.&lt;/p&gt;

&lt;p&gt;Es importante entender donde nace todo, es importante entender la historia y la motivación de quienes fueron visionarios en proponer estas tecnologías, como arranco todo, quien es &lt;strong&gt;Satoshi Nakamoto&lt;/strong&gt; y porque hoy en día no sabemos de su paradero, que significa implementar tecnologías blockchain y las matemáticas detrás de la criptografía. Estas preguntas te llevarán al camino correcto, al camino que te permitirá entender hacia donde vamos.&lt;/p&gt;

&lt;p&gt;Mi primer paso fue leer las propuestas iniciales mejor conocidas como "White Paper" donde podemos entender cada particularidad y entender el porqué. &lt;strong&gt;Bitcoin: Un Sistema de Efectivo Electrónico Usuario-a-Usuario&lt;/strong&gt; (ES)&lt;/p&gt;

&lt;p&gt;Ahora llego el momento de entender algunas otras particularidades como los diferentes proyectos existentes entre ellos Ethereum y Solana.&lt;/p&gt;

&lt;p&gt;Esto me permitió entender que lo que hacemos en la considerada &lt;strong&gt;Web 2.0&lt;/strong&gt; es lo mismo que podemos hacer en la Web3, seguimos utilizando las mismas tecnologías como React, Desplegar en servidores como Vercel, pero debemos de ponerle atención a nuevos conceptos como la tecnología detrás del blockchain, descentralización, utilizar nuevos protocolos como iPFS (&lt;strong&gt;InterPlanetary File System&lt;/strong&gt;) aprender a trabajar con la EVM (&lt;strong&gt;Ethereum Virtual Machine&lt;/strong&gt;) para programar nuestros contratos inteligentes, integrar protocolos JSON-RPC y utilizar las librerías como &lt;strong&gt;Web3.js&lt;/strong&gt;, &lt;strong&gt;Ethers.js&lt;/strong&gt; o utilizar herramientas de desarrollo como Hardhat o truffle.&lt;/p&gt;

&lt;p&gt;Una de mis mayores sorpresas es que la mayoría de las herramientas para implementar en nuestros desarrollos usan &lt;strong&gt;TypeScript&lt;/strong&gt;, es por esto que la Web3 se está construyendo con TS.&lt;/p&gt;

&lt;p&gt;Quiero dejarte mi video donde explico un poco a detalle mi aprendizaje en &lt;strong&gt;Web3&lt;/strong&gt; y te recomiendo las principales herramientas para entender estos nuevos conceptos.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/bkkakCbOoZg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>web3</category>
      <category>typescript</category>
      <category>spanish</category>
    </item>
    <item>
      <title>¿Cómo empezar a PROGRAMAR?</title>
      <dc:creator>Oscar Barajas Tavares</dc:creator>
      <pubDate>Fri, 18 Feb 2022 04:32:23 +0000</pubDate>
      <link>https://dev.to/gndx/como-empezar-a-programar-28j4</link>
      <guid>https://dev.to/gndx/como-empezar-a-programar-28j4</guid>
      <description>&lt;p&gt;Dar el primer paso puede llegar a ser difícil y complicado, por eso te comparto una serie de consejos para que puedas empezar en el mundo de la programación, Lo primero que debes de tener en cuenta es que la programación es toda una ciencia, una serie de metodologías y entendimientos sobre el mundo de la computación.&lt;/p&gt;

&lt;p&gt;Al inicio puede ser abrumador, más porque encontrarás mucha informacion en internet, recursos, libros, cursos, videos, entre mucha otra informacion, pero con objetivos claros, una planeación sencilla donde dedicas tiempo y práctica, lograras entender la programación y lograr tus objetivos ya sea cambiando de carera o iniciando una nueva.&lt;/p&gt;

&lt;p&gt;Te dejo mi video donde encontraras toda la informacion que te guiara a lograr tu objetivo, ser un programador o programadora.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/1YNaa-ySD-4"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>spanish</category>
      <category>beginners</category>
    </item>
    <item>
      <title>¿Por qué Svelte JS podría ser el mejor framework?</title>
      <dc:creator>Oscar Barajas Tavares</dc:creator>
      <pubDate>Sat, 18 Apr 2020 05:40:27 +0000</pubDate>
      <link>https://dev.to/gndx/por-que-svelte-js-podria-ser-el-mejor-framework-f8n</link>
      <guid>https://dev.to/gndx/por-que-svelte-js-podria-ser-el-mejor-framework-f8n</guid>
      <description>&lt;p&gt;Entre las cualidades de Svelte es ser compilado y no utilizar un Virtual DOM, estas particularidades despiertan interés entre los desarrolladores y ve como una opción a Svelte.&lt;/p&gt;

&lt;p&gt;En esta conferencia online, impartida para la comunidad de Manizales, Colombia y dentro del marco de charlas denominadas “Quarantine Tech Talks”. ¿Por qué Svelte JS podría ser el mejor framework? Son muchos los motivos pero los resumo en 10 puntos importantes los cuales debes de considerar en tu aprendizaje de Svelte. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/YyF_9Tg0DcE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Diapositivas: &lt;a href="https://bit.ly/2yWAzL7"&gt;https://bit.ly/2yWAzL7&lt;/a&gt;  &lt;/p&gt;

</description>
      <category>spanish</category>
      <category>frontend</category>
      <category>svelte</category>
    </item>
    <item>
      <title>Contribuir a proyectos Open Source como reto profesional</title>
      <dc:creator>Oscar Barajas Tavares</dc:creator>
      <pubDate>Mon, 20 Jan 2020 04:42:16 +0000</pubDate>
      <link>https://dev.to/gndx/contribuir-a-proyectos-open-source-como-reto-profesional-13ge</link>
      <guid>https://dev.to/gndx/contribuir-a-proyectos-open-source-como-reto-profesional-13ge</guid>
      <description>&lt;p&gt;Desde los inicios de la computación los Hackers de la época, tenían clara una misión, compartir su conocimiento, Hoy en día, con mas de 30 años desde la primera computadora personal, seguimos compartiendo nuestro conocimiento a través del código libre.&lt;/p&gt;

&lt;p&gt;En esta charla en formato "ignite" donde tenemos 5 minutos y 20 diapositivas las cuales se van mostrando cada 15 segundos fue presentada en la pasada &lt;a href="https://platzi.com/blog/platziconf-colombia-resumido-en-45-frases/"&gt;Platzi Conf Colombia 2019&lt;/a&gt;.   &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/dsnN1x48kVs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>spanish</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Svelte: un nuevo framework para crear aplicaciones web mejoradas</title>
      <dc:creator>Oscar Barajas Tavares</dc:creator>
      <pubDate>Sat, 30 Nov 2019 19:51:37 +0000</pubDate>
      <link>https://dev.to/gndx/svelte-un-nuevo-framework-para-crear-aplicaciones-web-mejoradas-40p1</link>
      <guid>https://dev.to/gndx/svelte-un-nuevo-framework-para-crear-aplicaciones-web-mejoradas-40p1</guid>
      <description>&lt;p&gt;&lt;strong&gt;Svelte&lt;/strong&gt; un nuevo framework de &lt;strong&gt;JavaScript&lt;/strong&gt; para construir interfaces de usuario. Comparado con otras herramientas de desarrollo web como React, Angular o Vue, las cuales realizan la mayor parte de su trabajo en el navegador, Svelte cambia este paradigma y se ejecuta en tiempo de compilación, convirtiendo sus componentes en código imperativo altamente eficiente.&lt;br&gt;
​&lt;br&gt;
Otra de las primicias de Svelte es que no utiliza un Virtual DOM, sino que escribe código que actualiza quirúrgicamente el DOM cuando cambia el estado de tu aplicación.&lt;br&gt;
​&lt;br&gt;
Svelte también cuenta con una sintaxis más concisa, fácil y corta para crear aplicaciones basadas en componentes. &lt;br&gt;
​&lt;br&gt;
En mi experiencia como desarrollador Frontend he utilizado React, Angular, Vue, Elm y otras herramientas de desarrollo web con JavaScript. Svelte me ha sorprendido en cómo trabaja y cómo propone el uso de esta nueva herramienta para los Frontends.&lt;br&gt;
​&lt;/p&gt;
&lt;h2&gt;
  
  
  Crear una aplicación con Svelte.
&lt;/h2&gt;

&lt;p&gt;​&lt;br&gt;
El reto ahora es crear una aplicación con Svelte, entender cómo podemos trabajar un proyecto construido desde cero y cómo publicarlo en GitHub Pages.&lt;br&gt;
​&lt;br&gt;
¿Qué aprenderemos?&lt;br&gt;
​&lt;br&gt;
1) Configurar un proyecto&lt;br&gt;
2) Instalar Svelte&lt;br&gt;
3) Instalar y configurar Babel&lt;br&gt;
4) Instalar y configurar Webpack&lt;br&gt;
5) Crear una Aplicación con Svelte&lt;br&gt;
6) Entorno de desarrollo Local + Compilar proyecto&lt;br&gt;
7) Publicar nuestro proyecto en GitHub Pages.&lt;br&gt;
​&lt;/p&gt;
&lt;h2&gt;
  
  
  Configurar Proyecto
&lt;/h2&gt;

&lt;p&gt;Lo primero que necesitamos es crear una carpeta e inicializar nuestro proyecto con git y npm desde una consola o terminal.&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; mkdir hello-svelte &amp;amp;&amp;amp; cd hello-svelte
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Inicializamos nuestro proyecto con git y npm:&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; git init 
 npm init -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalar Svelte
&lt;/h2&gt;

&lt;p&gt;Ya que tenemos la carpeta del proyecto, vamos a instalar Svelte y crear la estructura necesaria de para trabajar.&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install svelte --save
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
La estructura para nuestro proyecto será la siguiente:&lt;br&gt;
​&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;dist/&lt;/code&gt;&lt;/strong&gt;: carpeta donde estará el proyecto compilado.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;public/&lt;/code&gt;&lt;/strong&gt;: carpeta donde estarán los recursos públicos de nuestro sitio.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;src/&lt;/code&gt;&lt;/strong&gt; : carpeta donde colocaremos nuestro código.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;src/componentes/&lt;/code&gt;&lt;/strong&gt;: carpeta donde colocaremos nuestros componentes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;src/index.js&lt;/code&gt;&lt;/strong&gt;: punto de entrada del proyecto.
​
## Instalar y configurar Babel
​
En este proyecto utilizaremos Babel, una herramienta para transformar nuestro código JavaScript ES6+ a JavaScript que pueda ser soportado por todos los navegadores, con lo cual podemos disponer de las nuevas funcionalidades de JavaScript en este proyecto.
​
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install @babel/core @babel/preset-env @babel/polyfill babel-loader svelte-loader --save-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;​&lt;br&gt;
Creamos un archivo en la raíz del proyecto con el nombre ".babelrc" y añadimos la siguiente configuración:&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    {
      "presets": [
        "@babel/preset-env"
      ],
    }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalar y configurar Webpack
&lt;/h2&gt;

&lt;p&gt;Webpack nos permite compilar nuestro proyecto, creando un archivo que incluye todos los recursos necesarios para llevar a producción el proyecto que estamos trabajando. También nos permite optimizar los procesos de construcción y optimización del código que estamos trabajando. &lt;br&gt;
​&lt;br&gt;
Instalación: &lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install webpack webpack-cli html-webpack-plugin --save-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Creamos el archivo &lt;code&gt;webpack.config.js&lt;/code&gt; en la raíz del proyecto:&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    const path = require('path');
    const HtmlWebpackPlugin = require('html-webpack-plugin');

    module.exports = {
      entry: './src/index.js', // Elegimos nuestro punto de entrada
      output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'bundle.js'
      }, // Añadimos nuestro punto de salida 
      resolve: {
        extensions: ['*', '.mjs', '.js', '.svelte'],
      }, // Añadimos el soporte para las extensiones que utiliza svelte
      module: {
        rules: [
          {
            test: /\.js?$/, 
            exclude: /node_modules/,
            use: {
              loader: 'babel-loader',
            },
          }, // Creamos la regla para nuestros archivos JS
          {
            test: /\.svelte$/,
            exclude: /node_modules/,
            use: {
              loader: 'svelte-loader'
            }
          }, // Utilizamos svelte-loader para trabajar con los archivos .svelte 
        ]
      },
      plugins: [
        new HtmlWebpackPlugin({
          inject: true,
          template: './public/index.html',
          filename: './index.html',
        })
      ] // utilizamos este plugin para añadir el recurso compilado al documento HTML
    };
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;/p&gt;

&lt;h2&gt;
  
  
  Crear una Aplicación con Svelte
&lt;/h2&gt;

&lt;p&gt;​&lt;br&gt;
Ya que tenemos la configuración necesaria para nuestro proyecto en Svelte, vamos a crear los elementos que necesitamos para tener una primera aplicación funcionando.&lt;br&gt;
​&lt;br&gt;
La aplicación que vamos a construir con Svelte será una página que nos permita consumir una API pública. Para este ejemplo utilizare la API de la serie animada "Rick And Morty" y vamos a presentar los personajes de esta serie en nuestra aplicación.&lt;br&gt;
​&lt;br&gt;
Creamos un componente llamado "App.svelte" dentro de la carpeta "src/components/" donde estará toda la lógica, diseño y estructura.&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;    &lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;lt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;gt&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;onMount&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;svelte&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="c1"&gt;// Importamos onMount un método que utilizaremos para detectar cuándo esta montado el componente.&lt;/span&gt;

      &lt;span class="c1"&gt;// Creamos una constate API con la URL de la API publica&lt;/span&gt;
      &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;API&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://rickandmortyapi.com/api/character&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

      &lt;span class="c1"&gt;// Asignamos la variable "data" y "characters" como arreglos vacíos.&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
      &lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;characters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;

      &lt;span class="c1"&gt;// Utilizamos el método onMount para crear lógica una vez que se haya montado en el DOM el componente&lt;/span&gt;
      &lt;span class="nx"&gt;onMount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Creamos un llamado a la API por medio de Fetch&lt;/span&gt;
        &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;API&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="c1"&gt;// Utilizamos "data" para asignar el resultado de la llamada&lt;/span&gt;
        &lt;span class="nx"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;json&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
        &lt;span class="c1"&gt;// Cargamos a characters el resultado de los personajes&lt;/span&gt;
        &lt;span class="nx"&gt;characters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;data&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;results&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;});&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/ script&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
    &lt;span class="c1"&gt;// Creamos nuestros estilos para la aplicación&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;characters&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;display&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;grid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nx"&gt;grid&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;template&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;columns&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;repeat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="nx"&gt;fr&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
        &lt;span class="nx"&gt;grid&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="nx"&gt;gap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="nx"&gt;px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
      &lt;span class="nx"&gt;figure&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="nx"&gt;img&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="nl"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
        &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
      &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/style&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;
    &lt;span class="c1"&gt;// Creamos el bloque de HTML de nuestra aplicación donde estará también la lógica para cada personaje.&lt;/span&gt;
    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;div&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;characters&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="c1"&gt;// En el arreglo de personajes regresamos un personaje e iteramos por cada elemento.&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;#&lt;/span&gt;&lt;span class="nx"&gt;each&lt;/span&gt; &lt;span class="nx"&gt;characters&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;character&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
            &lt;span class="c1"&gt;// una vez establecido "character" disponemos de los elementos que tiene este objeto.&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;figure&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;img&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;character&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;image&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="nx"&gt;alt&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;character&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="sr"&gt;/&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;          &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;figcaption&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;character&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/figcaption&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/figure&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;        &lt;span class="c1"&gt;// En caso de que no tengamos un resultado de la API, creamos un elemento para mostrar "Loading..."&lt;/span&gt;
      &lt;span class="p"&gt;{:&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;p&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;loading&lt;/span&gt;&lt;span class="p"&gt;...&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/p&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;      &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sr"&gt;/each&lt;/span&gt;&lt;span class="err"&gt;}
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/div&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Como pueden apreciar nuestro componente incorpora todos los elementos necesarios en un archivo llamado App.svelte, podemos asignar la lógica que utilizaremos de JavaScript, los estilos necesarios para presentar nuestra aplicación y el HTML donde haremos render del llamado de la API.&lt;br&gt;
​&lt;br&gt;
Ahora creamos nuestro punto de entrada, el cual estará en la raíz de la carpeta &lt;code&gt;/src/&lt;/code&gt; y se debe de llamar &lt;code&gt;index.js&lt;/code&gt;.&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    // Importamos el componente
    import App from './components/App.svelte';

    // Creamos App y definimos el target dentro del documento HTML.
    const app = new App({
      target: document.querySelector('main'),
      data: {
        quotes: []
      },
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Creamos el archivo HTML dentro de la carpeta &lt;code&gt;/public&lt;/code&gt;. Este será utilizado por Webpack para insertar el script &lt;code&gt;bundle.js&lt;/code&gt; y copiar este archivo a la carpeta &lt;code&gt;dist/&lt;/code&gt;.&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    &amp;lt;!DOCTYPE html&amp;gt;
    &amp;lt;html lang="es"&amp;gt;
    &amp;lt;head&amp;gt;
      &amp;lt;meta charset="UTF-8"&amp;gt;
      &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1"&amp;gt;
      &amp;lt;title&amp;gt;Rick And Morty by Svelte App&amp;lt;/title&amp;gt;
    &amp;lt;/head&amp;gt;
    &amp;lt;body&amp;gt;
      &amp;lt;main&amp;gt;&amp;lt;/main&amp;gt;
    &amp;lt;/body&amp;gt;
    &amp;lt;/html&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Ya que tenemos estos 3 archivos, tenemos nuestra aplicación lista para compilarse.&lt;br&gt;
​&lt;/p&gt;
&lt;h2&gt;
  
  
  Entorno de desarrollo Local + Compilar proyecto
&lt;/h2&gt;

&lt;p&gt;​&lt;br&gt;
Si queremos disponer de un entorno de desarrollo local y visualizar los cambios en tiempo real, utilizaremos el paquete &lt;code&gt;webpack-dev-server&lt;/code&gt; que nos permitirá trabajar más fluido y revisando los cambios cada que actualicemos el proyecto.&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install webpack-dev-server --save-dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Ahora vamos a añadir el script de &lt;code&gt;start&lt;/code&gt; y &lt;code&gt;build&lt;/code&gt; dentro del &lt;code&gt;package.json&lt;/code&gt;. Estos scripts nos permitirán iniciar el entorno de desarrollo local, ver los cambios inmediatamente y compilar el proyecto para enviarlo a producción.&lt;br&gt;
​&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
     "build": "webpack --mode production",
     "start": "webpack-dev-server --open --mode development"
 },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
​&lt;br&gt;
Una vez que añadimos los scripts en nuestra terminal, vamos a probar el de "start".&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Esto compilara nuestro proyecto en modo de desarrollo y nos abrirá un navegador con el proyecto funcionando en &lt;a href="http://localhost:8080"&gt;localhost:8080&lt;/a&gt;. Podemos probar la aplicación, regresar al editor de código y cualquier cambio que se le haga al proyecto será reflejado en esta dirección casi instantáneamente.&lt;br&gt;
​&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aZGs0IgZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://static.platzi.com/media/user_upload/svelte-app-41859e36-d5aa-490a-bb38-92992ad554e4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aZGs0IgZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://static.platzi.com/media/user_upload/svelte-app-41859e36-d5aa-490a-bb38-92992ad554e4.jpg" alt="svelte-app.png" width="800" height="606"&gt;&lt;/a&gt;&lt;br&gt;
​&lt;br&gt;
Compilar el proyecto para producción:&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Con este comando vamos a tener el proyecto compilado en la carpeta &lt;code&gt;/dist&lt;/code&gt;. El contenido dentro los archivos &lt;code&gt;index.html&lt;/code&gt; y &lt;code&gt;bundle.js&lt;/code&gt; serán los elementos que debemos enviar a producción. También puedes probar abriendo el archivo index.html en tu navegador y probar cómo funciona la aplicación ya compilada.&lt;br&gt;
​&lt;/p&gt;
&lt;h2&gt;
  
  
  Publicar nuestro proyecto en GitHub Pages.
&lt;/h2&gt;

&lt;p&gt;​&lt;br&gt;
Ya que tenemos una aplicación funcionando con svelte y toda su configuración para tener un proyecto construido, es momento de pensar en cómo vamos a enviar nuestro trabajo a producción. Para esto utilizaremos &lt;a href="https://pages.github.com/"&gt;GitHub Pages&lt;/a&gt;.&lt;br&gt;
​&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTA: es necesario que crees un repositorio en Github y subas todos los cambios realizados para poder continuar con esta sección.&lt;br&gt;
​&lt;br&gt;
Buena práctica:&lt;br&gt;
​&lt;br&gt;
Crea el archivo &lt;code&gt;.gitignore&lt;/code&gt; en la raíz del proyecto para ignorar la carpeta &lt;code&gt;/node_modules/&lt;/code&gt;. Puedes utilizar &lt;a href="https://gitignore.io"&gt;https://gitignore.io&lt;/a&gt; para crear un excelente archivo &lt;code&gt;.gitignore&lt;/code&gt; en tu proyecto.&lt;br&gt;
​&lt;/p&gt;
&lt;h2&gt;
  
  
  Enviar a producción una carpeta en GitHub Pages.
&lt;/h2&gt;

&lt;p&gt;​&lt;br&gt;
Primero debemos de compilar el proyecto con el comando previamente creado:&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; npm run build
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
En la terminal ejecutamos el siguiente comando para enviar los cambios al repositorio:&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git add dist &amp;amp;&amp;amp; git commit -m "deploy gh-pages"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Creamos una sub rama llamada &lt;code&gt;gh-pages&lt;/code&gt;, la cual solo contendrá los archivos &lt;code&gt;index.html&lt;/code&gt; y &lt;code&gt;bundle.js&lt;/code&gt;, con ellos es suficiente para publicar el proyecto en GitHub Pages.&lt;br&gt;
​&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git subtree push --prefix dist origin gh-pages
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;​&lt;br&gt;
Una vez publicado, podemos revisar la url publica (con la cual podemos acceder al proyecto compilado) en la configuración del proyecto en la sección de GitHub Pages.&lt;br&gt;
​&lt;br&gt;
La url se compone de la siguiente forma:&lt;br&gt;
​&lt;br&gt;
&lt;a href="https://tu-usuario.github.io/tu-repositorio/"&gt;https://[TU_USUARIO_GITHUB].github.io/[NOMBRE_DE_TU_REPOSITORIO]/&lt;/a&gt;&lt;br&gt;
​&lt;br&gt;
Mi url es: &lt;a href="https://gndx.github.io/svelte-quickstart/"&gt;https://gndx.github.io/svelte-quickstart/&lt;/a&gt; (aquí puedes ver el proyecto funcionado).&lt;br&gt;
​&lt;br&gt;
También te comparto el repositorio de este proyecto para que lo compares con el tuyo:  &lt;a href="https://github.com/gndx/svelte-quickstart"&gt;https://github.com/gndx/svelte-quickstart&lt;/a&gt; &lt;br&gt;
​&lt;br&gt;
&lt;strong&gt;En Conclusión&lt;/strong&gt;&lt;br&gt;
​&lt;br&gt;
Aprendimos a crear un proyecto con Svelte, un framework que está dando de qué hablar por su forma de trabajar. Entre sus cualidades podemos encontrar que es una herramienta potente para construir aplicaciones web rápidas, similar a otras herramientas como React o Vue, con las cuales puedes crear interfaces de usuario interactivas.&lt;br&gt;
​&lt;br&gt;
Recuerda que Svelte convierte tu aplicación en JavaScript al momento de compilar, en lugar de interpretar el código en tiempo de ejecución, así que no paga algunos costos en el rendimiento y no incurre en una penalización de la primera carga de la aplicación. &lt;br&gt;
​&lt;br&gt;
Ahora que entiendes cómo trabaja Svelte, ¿le darías una oportunidad para crear tus proyectos?&lt;/p&gt;

</description>
      <category>svelte</category>
      <category>javascript</category>
      <category>spanish</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
