{"id":63784,"date":"2023-03-09T13:08:59","date_gmt":"2023-03-09T12:08:59","guid":{"rendered":"https:\/\/kinsta.com\/es\/?p=63784&#038;preview=true&#038;preview_id=63784"},"modified":"2023-08-21T15:01:39","modified_gmt":"2023-08-21T13:01:39","slug":"portafolio-next-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/","title":{"rendered":"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js"},"content":{"rendered":"<p>El portafolio de un desarrollador es una colecci\u00f3n de muestras de trabajo y proyectos que muestran tus habilidades y experiencia. Un portafolio s\u00f3lido te diferencia de otros candidatos cuando buscas trabajo. Pero no s\u00f3lo eso: un portafolio tambi\u00e9n puede ser una valiosa herramienta para establecer contactos, hacer un seguimiento de tus aprendizajes y establecerte como experto en la materia.<\/p>\n<p>En este tutorial, aprender\u00e1s a crear un portafolio de desarrollador utilizando Next.js y a desplegarlo directamente desde tu repositorio de GitHub a la plataforma <a href=\"https:\/\/sevalla.com\/application-hosting\/\">de Alojamiento de Aplicaciones<\/a> de Kinsta, que proporciona un dominio <em>.kinsta.app<\/em> gratuito para que tu trabajo se publique r\u00e1pidamente.<\/p>\n<p>Aqu\u00ed tienes una demostraci\u00f3n en vivo del <a href=\"https:\/\/kinsta-developer-portfolio-ir8w8.kinsta.app\/\" target=\"_blank\" rel=\"noopener noreferrer\">portafolio de desarrollador<\/a> que construir\u00e1s con Next.js.<\/p>\n<p>Puedes acceder al <a href=\"https:\/\/github.com\/olawanlejoel\/Kinsta-developer-portfolio\">repositorio GitHub de este proyecto<\/a> si quieres echarle un vistazo m\u00e1s de cerca, o puedes usar esta plantilla de <a href=\"https:\/\/github.com\/olawanlejoel\/kinsta-portfolio-starter\">proyecto de inicio de portfolio<\/a> seleccionando <strong>Usar esta plantilla<\/strong> &gt; <strong>Crear un nuevo repositorio<\/strong> \u2014 esto copiar\u00e1 el c\u00f3digo de inicio en un nuevo repositorio. El proyecto de inicio contiene c\u00f3digos b\u00e1sicos como los estilos, un enlace Font Awesome CDN, im\u00e1genes y estructura b\u00e1sica.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Requisitos<\/h2>\n<p>Este es un tutorial del tipo \u00abs\u00edgueme\u00bb. Te ser\u00e1 m\u00e1s f\u00e1cil codificar si tienes:<\/p>\n<ul>\n<li>Conocimientos b\u00e1sicos de <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-el-html\/\">HTML<\/a>, <a href=\"https:\/\/kinsta.com\/es\/blog\/buenas-practicas-css\/\">CSS<\/a> y <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a><\/li>\n<li>Un poco de conocimiento de <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-react-js\/\">React<\/a> y quiz\u00e1s de Next.js<\/li>\n<li>Node.js y npm (<a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-npm\/\">Node Package Manager<\/a>) o yarn instalados en tu ordenador<\/li>\n<\/ul>\n<h2>\u00bfPor Qu\u00e9 Next.js?<\/h2>\n<p><a href=\"https:\/\/kinsta.com\/es\/blog\/next-js\/\">Next.js<\/a> es un <a href=\"https:\/\/kinsta.com\/es\/blog\/bibliotecas-javascript\/\">framework de bibliotecas JavaScript<\/a> de c\u00f3digo abierto basado en React que puede utilizarse para una amplia gama de proyectos de desarrollo web, ya que simplifica la creaci\u00f3n de aplicaciones est\u00e1ticas y renderizadas del lado del servidor. Agiliza el proceso aprovechando las mejores caracter\u00edsticas de React y optimizando el rendimiento del renderizado para mejorar la experiencia del usuario. Algunos de los casos de uso m\u00e1s comunes de Next.js son:<\/p>\n<ul>\n<li><strong>Crear sitios<\/strong> <strong>web est\u00e1ticos<\/strong>: Next.js puede construir sitios web est\u00e1ticos que son r\u00e1pidos, f\u00e1ciles de desplegar y requieren un mantenimiento m\u00ednimo, como el sitio web del portafolio de desarrolladores que construiremos a lo largo de este tutorial.<\/li>\n<li><strong>Crear sitios web din\u00e1micos<\/strong>: Next.js te permite crear sitios web din\u00e1micos que pueden cambiar su contenido en funci\u00f3n de las interacciones del usuario o de la obtenci\u00f3n de datos del servidor.<\/li>\n<\/ul>\n<ul>\n<li><strong>Crear sitios web de comercio electr\u00f3nico<\/strong>: Next.js es id\u00f3neo para crear sitios web de comercio electr\u00f3nico que requieran la renderizaci\u00f3n del lado del servidor para mejorar el SEO y el rendimiento.<\/li>\n<\/ul>\n<ul>\n<li><strong>Crear\u00a0aplicaciones web progresivas (PWA &#8211; <b>progressive web application<\/b>)<\/strong>: Next.js admite la creaci\u00f3n de PWA, que son aplicaciones web que funcionan como apps nativas y pueden instalarse en el dispositivo de un usuario.<\/li>\n<\/ul>\n<h2>C\u00f3mo Configurar Tu Entorno de Desarrollo de Next.js<\/h2>\n<p>Para configurar un entorno de desarrollo para Next.js, primero <a href=\"https:\/\/kinsta.com\/es\/blog\/como-instalar-node-js\/\">instala Node.js<\/a> en tu ordenador, porque utilizar\u00e1s el comando <code>npx<\/code> para ejecutar paquetes npm sin tener que instalarlos globalmente en tu sistema. Una vez hecho esto, ya puedes crear un proyecto Next.js ejecutando el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">npx create-next-app@latest my-portfolio<\/code><\/pre>\n<p>Aparecer\u00e1 un aviso pidi\u00e9ndote que confirmes algunas dependencias adicionales. A continuaci\u00f3n, puedes ejecutar <code>npm run dev<\/code> para que tu aplicaci\u00f3n est\u00e9 disponible en <strong>localhost:3000<\/strong>.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/nextjs-installation-with-options.jpg\" alt=\"Crear un nuevo proyecto Next.js.\" width=\"1600\" height=\"569\"><figcaption class=\"wp-caption-text\">Crear un nuevo proyecto Next.js.<\/figcaption><\/figure>\n<p>Cuando se crea un proyecto Next.js utilizando el comando <code>npx<\/code>, se crea autom\u00e1ticamente una estructura de carpetas con los siguientes directorios principales:<\/p>\n<ol start=\"1\">\n<li><strong>pages<\/strong>: Esta carpeta contiene las p\u00e1ginas de la aplicaci\u00f3n, que se direccionan autom\u00e1ticamente en funci\u00f3n de su nombre de archivo. Por ejemplo, <strong>pages\/index.js<\/strong> ser\u00eda la p\u00e1gina de inicio, mientras que <strong>pages\/about.js<\/strong> ser\u00eda la p\u00e1gina acerca de.<\/li>\n<li><strong>public<\/strong>: Esta carpeta contiene archivos est\u00e1ticos que se pueden servir directamente, como im\u00e1genes, fuentes y otros activos.<\/li>\n<li><strong>components<\/strong>: Esta carpeta es opcional y contiene componentes de interfaz de usuario reutilizables que pueden usarse en toda la aplicaci\u00f3n.<\/li>\n<li><strong>estilos<\/strong>: Esta carpeta tambi\u00e9n es opcional y contiene estilos globales que pueden aplicarse en toda la aplicaci\u00f3n.<\/li>\n<\/ol>\n<p>Tambi\u00e9n pueden generarse otros directorios y archivos en funci\u00f3n de la configuraci\u00f3n y las caracter\u00edsticas espec\u00edficas, pero estos son los directorios principales de un proyecto Next.js b\u00e1sico.<\/p>\n<p>Para este tutorial, todo lo que construyamos aparecer\u00e1 en la p\u00e1gina \u00edndice (nuestro sitio web de una sola p\u00e1gina), e incluir\u00e1s componentes para varias secciones como el h\u00e9roe, acerca de, proyectos y otras.<\/p>\n<h2>C\u00f3mo Crear un Portafolio Responsivo para Desarrolladores con Next.js<\/h2>\n<p>Un portafolio suele constar de componentes como estos:<\/p>\n<ul>\n<li>Componente Navbar<\/li>\n<li>Componente Hero<\/li>\n<li>Componente Acerca de<\/li>\n<li>Componente Habilidades<\/li>\n<li>Componente Proyectos<\/li>\n<li>Componente Contacto<\/li>\n<li>Componente Pie de p\u00e1gina<\/li>\n<\/ul>\n<p>Se espera que los componentes Barra de navegaci\u00f3n y Pie de p\u00e1gina aparezcan en todas las p\u00e1ginas si el c tiene m\u00e1s de una p\u00e1gina. Esto se puede conseguir en Next.js definiendo un dise\u00f1o.<\/p>\n<h3>Definir dise\u00f1os en Next.js<\/h3>\n<p>En Next.js, un dise\u00f1o es una forma de definir una estructura coherente para los componentes que aparecen en cada p\u00e1gina de un sitio web. El dise\u00f1o suele incluir elementos como una cabecera, un men\u00fa de navegaci\u00f3n y un pie de p\u00e1gina que aparecen en todas las p\u00e1ginas del sitio.<\/p>\n<p>Empieza creando una carpeta de componentes en el directorio <strong>src<\/strong> (source) de tu proyecto Next.js. A continuaci\u00f3n, crea los componentes Navbar y Footer que se utilizar\u00e1n dentro del componente Layout.<\/p>\n<p>Aqu\u00ed tienes el componente Navbar en <strong>Navbar.jsx<\/strong>:<\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/Navbar.jsx\n\nimport Link from \"next\/link\";\n\nconst Navbar = () =&gt; {\n  return (\n    &lt;div className=\"nav-container\"&gt;\n      &lt;div className=\"logo\"&gt;\n        &lt;Link href=\"\/\"&gt;\n          Joe's Portfolio\n        &lt;\/Link&gt;\n      &lt;\/div&gt;\n      &lt;a href=\"\" className=\"cta-btn\"&gt;Resume&lt;\/a&gt;\n    &lt;\/div&gt;\n  )\n}\n\nexport default Navbar;<\/code><\/pre>\n<p>Aqu\u00ed est\u00e1 el componente Footer en <strong>Footer.jsx:<\/strong><\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/Footer.jsx\n\nconst Footer = () =&gt; {\n  return (\n    &lt;&gt;\n      &lt;hr\/&gt;\n      &lt;div className=\"footer-container\"&gt;\n        &lt;p&gt;\n          &copy; {new Date().getFullYear()} Joel's Portfolio\n        &lt;\/p&gt;\n        &lt;div className=\"social_icons\"&gt;\n          &lt;a\n            href=\"https:\/\/twitter.com\/olawanle_joel\"\n            aria-label=\"Twitter\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          &gt;\n            &lt;i className=\"fa-brands fa-twitter\"&gt;&lt;\/i&gt;\n          &lt;\/a&gt;\n          &lt;a\n            href=\"https:\/\/github.com\/olawanlejoel\"\n            aria-label=\"GitHub\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          &gt;\n            &lt;i className=\"fa-brands fa-github\"&gt;&lt;\/i&gt;\n          &lt;\/a&gt;\n          &lt;a\n            href=\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\"\n            aria-label=\"LinkedIn\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          &gt;\n            &lt;i className=\"fa-brands fa-linkedin\"&gt;&lt;\/i&gt;\n          &lt;\/a&gt;\n        &lt;\/div&gt;\n      &lt;\/div&gt;\n    &lt;\/&gt;\n  )\n}\n\nexport default Footer;<\/code><\/pre>\n<p><strong>Nota:<\/strong> Para que los iconos de Font Awesome funcionen, debes instalar Font Awesome en tu proyecto o utilizar su CDN. Puedes a\u00f1adir el enlace CDN a tu archivo <strong>_document.js<\/strong> de la siguiente manera:<\/p>\n<pre><code class=\"language-js\">\/\/ pages\/_document.js\n\nimport { Html, Head, Main, NextScript } from 'next\/document';\n\nexport default function Document() {\n  return (\n    &lt;Html lang=\"en\"&gt;\n      &lt;Head&gt;\n        &lt;meta charSet=\"utf-8\" \/&gt;\n        &lt;link\n          rel=\"stylesheet\"\n          href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.2.1\/css\/all.min.css\"\n          integrity=\"sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf\/nwasF0nqhPay5w\/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==\"\n          crossorigin=\"anonymous\"\n          referrerpolicy=\"no-referrer\"\n        \/&gt;\n      &lt;\/Head&gt;\n      &lt;body&gt;\n      &lt;Main \/&gt;\n      &lt;NextScript \/&gt;\n      &lt;\/body&gt;\n    &lt;\/Html&gt;\n  );\n}<\/code><\/pre>\n<p><strong>Nota:<\/strong> Si enlazas una versi\u00f3n diferente de Font Awesome a trav\u00e9s de la CDN, tendr\u00e1s que cambiar por encima el hash <code>integrity<\/code> apropiado para esa versi\u00f3n.<\/p>\n<p>Despu\u00e9s de crear todos los componentes necesarios para tu dise\u00f1o, puedes crear el propio componente Layout y a\u00f1adir este componente a tus p\u00e1ginas envolviendo el contenido de tu p\u00e1gina dentro de \u00e9l.<\/p>\n<p>El componente Layout aceptar\u00e1 una propiedad &lt;code&gt;children&lt;\/code&gt;, que te permitir\u00e1 acceder al contenido de tus p\u00e1ginas Next.js.<\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/Layout.jsx\n\nimport Navbar from '.\/navbar';\nimport Footer from '.\/footer';\n\nconst Layout = ({ children }) =&gt; {\n  return (\n    &lt;&gt;\n      &lt;Navbar \/&gt;\n      &lt;main&gt;{children}&lt;\/main&gt;\n      &lt;Footer \/&gt;\n    &lt;\/&gt;\n  )\n}\n\nexport default Layout;<\/code><\/pre>\n<p>Llegados a este punto, ya has creado con \u00e9xito el componente Layout, que contiene la barra de navegaci\u00f3n y el pie de p\u00e1gina junto con los accesorios children colocados correctamente. Ahora puedes a\u00f1adir el componente Layout a tus p\u00e1ginas envolviendo el contenido de la p\u00e1gina en \u00e9l. Esto se har\u00e1 en el archivo <strong>_app.js<\/strong>.<\/p>\n<pre><code class=\"language-js\">\/\/ pages\/_app.js\n\nimport '@\/styles\/globals.css';\nimport Layout from '..\/components\/layout';\n\nexport default function App({ Component, pageProps }) {\n  return (\n    &lt;Layout&gt;\n      &lt;Component {...pageProps} \/&gt;\n    &lt;\/Layout&gt;\n  );\n}<\/code><\/pre>\n<p>Ya has conseguido crear un dise\u00f1o para tu portafolio de desarrollador. Para este portafolio, nos centramos m\u00e1s en Next.js y en c\u00f3mo desplegar tu sitio web en Kinsta. As\u00ed que puedes copiar los estilos del archivo <a href=\"https:\/\/github.com\/olawanlejoel\/Kinsta-developer-portfolio\/blob\/main\/src\/styles\/globals.css\">styles\/globals.css<\/a> en tu propio proyecto. Si inicias el sitio web de tu portafolio en modo dev, ahora deber\u00edas ver el dise\u00f1o de tu aplicaci\u00f3n.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/layout-component.jpg\" alt=\"Componente de dise\u00f1o\" width=\"1600\" height=\"619\"><figcaption class=\"wp-caption-text\">Componente de dise\u00f1o<\/figcaption><\/figure>\n<p>Ahora es el momento de dotar a tu sitio web de portafolio del contenido adecuado.<\/p>\n<h3>Crear componentes de portafolio<\/h3>\n<p>Ahora puedes crear componentes individuales para cada secci\u00f3n de tu portafolio de desarrollador. Todos estos componentes se importar\u00e1n a la p\u00e1gina \u00edndice de tu proyecto Next.js, para que puedan mostrarse cuando lances tu proyecto con <code>npm run dev<\/code>.<\/p>\n<h4>El componente Hero<\/h4>\n<p>El componente Hero es la primera secci\u00f3n debajo de la Barra de Navegaci\u00f3n, cuyo objetivo principal es captar la atenci\u00f3n del usuario y darle una idea de lo que trata el sitio web o la aplicaci\u00f3n.<\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/Hero.jsx\n\nimport Image from \"next\/image\";\n\nconst Hero = () =&gt; {\n  return (\n    &lt;div className=\"hero-container\"&gt;\n      &lt;Image src='\/images\/profile.jpeg' className=\"profile-img\" width={300} height={300} alt=\"Joe's personal headshot\" \/&gt;\n      &lt;div className=\"hero-text\"&gt;\n        &lt;h1&gt;Hey, I'm Joe \ud83d\udc4b&lt;\/h1&gt;\n        &lt;p&gt;\n          I'm a software developer based in Lagos, Nigeria. I specialize in building (and occasionally designing)\n          exceptional websites, applications, and everything in between.\n        &lt;\/p&gt;\n        &lt;div className=\"social-icons\"&gt;\n          &lt;a\n            href=\"https:\/\/twitter.com\/olawanle_joel\"\n            aria-label=\"Twitter\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          &gt;\n            &lt;i className=\"fa-brands fa-twitter\"&gt;&lt;\/i&gt;\n          &lt;\/a&gt;\n          &lt;a\n            href=\"https:\/\/github.com\/olawanlejoel\"\n            aria-label=\"GitHub\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          &gt;\n            &lt;i className=\"fa-brands fa-github\"&gt;&lt;\/i&gt;\n          &lt;\/a&gt;\n          &lt;a\n            href=\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\"\n            aria-label=\"LinkedIn\"\n            target=\"_blank\"\n            rel=\"noopener noreferrer\"\n          &gt;\n            &lt;i className=\"fa-brands fa-linkedin\"&gt;&lt;\/i&gt;\n          &lt;\/a&gt;\n        &lt;\/div&gt;\n      &lt;\/div&gt;\n    &lt;\/div&gt;\n  )\n}\n\nexport default Hero;<\/code><\/pre>\n<p>En el c\u00f3digo anterior, observar\u00e1s que se utiliza el <a href=\"https:\/\/nextjs.org\/docs\/api-reference\/next\/image\" target=\"_blank\" rel=\"noopener noreferrer\">componente Next.js Image<\/a> en lugar de la etiqueta HTML <code>img<\/code> para a\u00f1adir la imagen, ya que permite la optimizaci\u00f3n autom\u00e1tica de la imagen, el cambio de tama\u00f1o y muchas cosas m\u00e1s.<\/p>\n<p>En el componente Acerca de, tambi\u00e9n observar\u00e1s que se ha a\u00f1adido un p\u00e1rrafo sencillo para decir algo sobre el desarrollador junto con algunos iconos sociales de Font Awesome para a\u00f1adir enlaces sociales.<\/p>\n<p>Este es el aspecto que deber\u00eda tener el componente Hero:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/hero-component.jpg\" alt=\"Componente Hero\" width=\"1600\" height=\"695\"><figcaption class=\"wp-caption-text\">Componente Hero<\/figcaption><\/figure>\n<p>Puedes a\u00f1adir m\u00e1s contenido al componente Hero, modificar los estilos en el archivo <strong>styles\/globals.css<\/strong> o incluso recrear esta secci\u00f3n a tu manera.<\/p>\n<h4>El componente About<\/h4>\n<p>El componente About est\u00e1 pensado para dar a los lectores o a las personas que visiten tu portafolio m\u00e1s informaci\u00f3n sobre ti en tantos p\u00e1rrafos como quieras. Si quieres contar m\u00e1s cosas sobre ti, puedes crear una p\u00e1gina dedicada \u00abSobre m\u00ed\u00bb y a\u00f1adir un bot\u00f3n en esta secci\u00f3n para leer m\u00e1s sobre ti.<\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/About.jsx\n\nimport Image from \"next\/image\";\n\nconst About = () =&gt; {\n  return (\n    &lt;div className=\"about-container\"&gt;\n      &lt;h2&gt;About Me&lt;\/h2&gt;\n      &lt;div className=\"flex-about\"&gt;\n        &lt;div className=\"about-text\"&gt;\n          &lt;p&gt;\n            As a developer, I have always been passionate about creating elegant and effective solutions to\n            complex problems. I have a strong foundation in software development, with a focus on web\n            technologies such as HTML, CSS, and JavaScript. I enjoy working on both the front-end and\n            back-end of applications, and I am always looking for ways to optimize performance, improve user\n            experience, and ensure the highest level of code quality.\n          &lt;\/p&gt;\n          &lt;p&gt;Throughout my career, I have worked on a wide range of projects, from simple static websites to\n            complex enterprise-level applications. I am experienced in working with a variety of development\n            tools and frameworks, including React, Angular, Vue.js, Node.js, and Laravel. I am always eager\n            to learn and explore new technologies, and I am constantly seeking out opportunities to improve\n            my skills and knowledge.&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div className=\"about-img\"&gt;\n          &lt;Image src='\/images\/about.jpeg' className=\"profile-img\" width={300} height={500}\/&gt;\n        &lt;\/div&gt;\n      &lt;\/div&gt;\n    &lt;\/div&gt;\n  )\n}\n\nexport default About;<\/code><\/pre>\n<p>El c\u00f3digo anterior contiene dos p\u00e1rrafos de texto sobre el promotor y una imagen del mismo. Este es el aspecto que se espera que tenga la secci\u00f3n \u00abAbout Me\u00bb:<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/about-component.jpg\" alt=\"Componente About\" width=\"1600\" height=\"738\"><figcaption class=\"wp-caption-text\">Componente About<\/figcaption><\/figure>\n<p>Siempre puedes modificar los estilos para a\u00f1adir m\u00e1s im\u00e1genes y muchas cosas m\u00e1s.<\/p>\n<h4>El componente Skills<\/h4>\n<p>El componente de Skills est\u00e1 pensado para mostrar algunas de las tecnolog\u00edas m\u00e1s utilizadas por el desarrollador o las tecnolog\u00edas que el desarrollador ha utilizado en el pasado.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/skills-component.jpg\" alt=\"Componente de Skills\" width=\"1600\" height=\"294\"><figcaption class=\"wp-caption-text\">Componente de Skills<\/figcaption><\/figure>\n<p>Puedes hacer que esto sea m\u00e1s f\u00e1cil de mantener creando una matriz en un archivo externo y luego import\u00e1ndola al componente de habilidades, de modo que puedas hacer un bucle en lugar de duplicar c\u00f3digo similar.<\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/Skills.jsx\n\nconst Skills = () =&gt; {\n  return (\n    &lt;div className=\"skills-container\"&gt;\n      &lt;h2&gt;Skills&lt;\/h2&gt;\n      &lt;div className=\"grid-skills\"&gt;\n        &lt;div className=\"skill-card html\"&gt;\n          &lt;i className=\"fa-brands fa-html5 html-icon\"&gt;&lt;\/i&gt;\n          &lt;p&gt;HTML&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div className=\"skill-card css\"&gt;\n          &lt;i className=\"fa-brands fa-css3-alt css-icon\"&gt;&lt;\/i&gt;\n          &lt;p&gt;CSS&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div className=\"skill-card js\"&gt;\n          &lt;i className=\"fa-brands fa-js-square js-icon\"&gt;&lt;\/i&gt;\n          &lt;p&gt;JavaScript&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div className=\"skill-card react\"&gt;\n          &lt;i className=\"fa-brands fa-react react-icon\"&gt;&lt;\/i&gt;\n          &lt;p&gt;React&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div className=\"skill-card node\"&gt;\n          &lt;i className=\"fa-brands fa-node-js node-icon\"&gt;&lt;\/i&gt;\n          &lt;p&gt;Node&lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;div className=\"skill-card python\"&gt;\n          &lt;i className=\"fa-brands fa-python python-icon\"&gt;&lt;\/i&gt;\n          &lt;p&gt;Python&lt;\/p&gt;\n        &lt;\/div&gt;\n      &lt;\/div&gt;\n    &lt;\/div&gt;\n  )\n}\n\nexport default Skills;<\/code><\/pre>\n<p>En el c\u00f3digo anterior, se crea una tarjeta para cada habilidad, y cada tarjeta contendr\u00e1 el icono de la tecnolog\u00eda de font-awesome y el nombre de la tecnolog\u00eda. Tambi\u00e9n puedes a\u00f1adir m\u00e1s estilos y retocar el c\u00f3digo para hacerlo m\u00e1s atractivo y \u00fanico.<\/p>\n<h4>El componente Projects<\/h4>\n<p>El componente de Projects es una de las secciones importantes del portafolio de un desarrollador. Los proyectos proporcionan pruebas tangibles de las habilidades y capacidades de un desarrollador y muestran su capacidad para aplicar sus conocimientos a problemas del mundo real.<\/p>\n<p>Cada proyecto incluir\u00e1 una breve descripci\u00f3n del mismo, un enlace a su c\u00f3digo fuente (aqu\u00ed utilizamos enlaces de <a href=\"https:\/\/kinsta.com\/es\/blog\/que-es-github\/\">GitHub<\/a>) y cualquier otro detalle que desees a\u00f1adir.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/projects-component.jpg\" alt=\"Componente Projects\" width=\"1600\" height=\"847\"><figcaption class=\"wp-caption-text\">Componente Projects<\/figcaption><\/figure>\n<p>Puedes crear una matriz que contenga los detalles de cada proyecto e importarla a tu componente para evitar codificarlos.<\/p>\n<p>Vamos a crear un archivo <strong>data.js<\/strong> para almacenar la matriz de datos del proyecto. Puedes guardar este archivo en la carpeta del componente o en la carpeta <strong>pages\/api<\/strong>. Para esta demo, lo almacenar\u00e9 en la carpeta components. Esta matriz contendr\u00e1 un objeto para cada proyecto, y el objeto contendr\u00e1 el nombre del proyecto, la descripci\u00f3n y el enlace de GitHub.<\/p>\n<pre><code class=\"language-js\">\/\/ components\/data.js\n\nexport const projectData = [\n  {\n    id: 1,\n    title: 'Todo List App',\n    description:\n      'A simple Todo List App built with JavaScript. All datas are stored in localstorage. It helps users check list out their plans and tick as they do them.',\n    gitHubLink: 'https:\/\/github.com\/olawanlejoel\/Todo-List-App',\n  },\n  {\n    id: 2,\n    title: 'Books Library App',\n    description:\n      'A simple Book Library App built with JavaScript. It helps readers have a good list of books they are either currently reading or have finished reading.',\n    gitHubLink: 'https:\/\/github.com\/olawanlejoel\/Book-Library',\n  },\n  {\n    id: 3,\n    title: 'Quotes Generator',\n    description:\n      'Helps you generate quotes from about 1600 quotes written by different authors . Quotes are automatically copied to your clipboards.',\n    gitHubLink: 'https:\/\/github.com\/olawanlejoel\/random-quote-generator',\n  },\n  {\n    id: 4,\n    title: 'Password Generator',\n    description:\n      'Helps you generates random passwords, you can select what you want your password to entail and also you can copy generated password to clipboard.',\n    gitHubLink: 'https:\/\/github.com\/olawanlejoel\/Password-Generator',\n  },\n  {\n    id: 5,\n    title: 'Twitter UI Clone',\n    description:\n      'Simple Twitter UI clone built with TailwindCSS and Vue Js. This covers only the homepage of Twitter UI. This is cool to get started with TailwindCSS as it helps understand basic concepts.',\n    gitHubLink: 'https:\/\/github.com\/olawanlejoel\/TwitterUI-clone',\n  },\n];<\/code><\/pre>\n<p>Ahora puedes crear un componente de proyecto para utilizar estos datos haciendo un bucle f\u00e1cilmente. Puedes utilizar cualquier m\u00e9todo de iteraci\u00f3n de JavaScript, pero para este tutorial, puedes utilizar el m\u00e9todo de matriz JavaScript <code>map()<\/code> para recorrer en bucle la matriz de datos despu\u00e9s de importarla al componente Projects.<\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/Projects.jsx\n\nimport { projectData } from '.\/data.js';\n\nconst Projects = () =&gt; {\n  return (\n    &lt;div className=\"projects-container\"&gt;\n      &lt;h2&gt;Projects&lt;\/h2&gt;\n      &lt;div className=\"projects-grid\"&gt;\n        {projectData && projectData.map((project) =&gt; (\n          &lt;div className=\"project-card\" key={project.id}&gt;\n            &lt;div className=\"project-header\"&gt;\n              &lt;i className=\"fa-regular fa-folder-open folder-icon\"&gt;&lt;\/i&gt;\n              &lt;div className=\"small-icons\"&gt;\n                &lt;a href={project.gitHubLink}&gt;&lt;i className=\"fa-brands fa-github\"&gt;&lt;\/i&gt;&lt;\/a&gt;\n              &lt;\/div&gt;\n            &lt;\/div&gt;\n            &lt;h3&gt;{project.title}&lt;\/h3&gt;\n            &lt;p&gt;{project.description}&lt;\/p&gt;\n          &lt;\/div&gt;\n        ))\n        }\n      &lt;\/div&gt;\n    &lt;\/div&gt;\n  )\n}\n\nexport default Projects;<\/code><\/pre>\n<p>En el c\u00f3digo anterior, has evitado con \u00e9xito la repetici\u00f3n mediante el bucle a trav\u00e9s de la matriz para dar salida a todos los proyectos en el componente Projects, lo que facilita el mantenimiento y la adici\u00f3n de m\u00e1s proyectos.<\/p>\n<h4>El componente Contact<\/h4>\n<p>Una de las razones para crear un portafolio de desarrollador es que los clientes potenciales puedan ponerse en contacto contigo. Una forma ser\u00eda que la gente te enviara un correo electr\u00f3nico, que es lo que facilitaremos en este componente Contact.<\/p>\n<pre><code class=\"language-jsx\">\/\/ components\/Contact.jsx\n\nconst Contact = () =&gt; {\n  return (\n    &lt;div className=\"contact-container\"&gt;\n      &lt;h2&gt;Get In Touch&lt;\/h2&gt;\n      &lt;p&gt;If you want us to work together, have any questions or want me to speak at your event, my inbox is always open. Whether I just want to say hi, I'll try my best to get back to you! Cheers!&lt;\/p&gt;\n      &lt;a href=\"mailto:example@kinsta.com\" className='cta-btn'&gt;Say Hello&lt;\/a&gt;\n    &lt;\/div&gt;\n  )\n}\n\nexport default Contact;<\/code><\/pre>\n<p>Coloca tu direcci\u00f3n de correo electr\u00f3nico en la etiqueta <code>a<\/code> para que el bot\u00f3n lance una aplicaci\u00f3n de correo electr\u00f3nico con un mensaje dirigido a ti.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/contact-component.jpg\" alt=\"Componente Contact\" width=\"1600\" height=\"312\"><figcaption class=\"wp-caption-text\">Componente Contact<\/figcaption><\/figure>\n<p>Ya has creado con \u00e9xito todos los componentes para tu aplicaci\u00f3n de portafolio. El siguiente paso ser\u00eda a\u00f1adirlos a tu p\u00e1gina de \u00edndice. Navega hasta el archivo <strong>pages\/index.js<\/strong> -que se crea por defecto- y sustituye su c\u00f3digo por el siguiente.<\/p>\n<pre><code class=\"language-js\">\/\/ pages\/index.js\n\nimport Hero from '@\/components\/Hero';\nimport About from '@\/components\/About';\nimport Skills from '@\/components\/Skills';\nimport Projects from '@\/components\/Projects';\nimport Contact from '@\/components\/Contact';\n\nimport Head from 'next\/head';\n\nconst Home = () =&gt; {\n  return (\n    &lt;&gt;\n      &lt;Head&gt;\n        &lt;title&gt;Joel's Portfolio&lt;\/title&gt;\n        &lt;meta name=\"description\" content=\"Joel's Portfolio\" \/&gt;\n        &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/&gt;\n        &lt;link rel=\"icon\" href=\"\/favicon.ico\" \/&gt;\n      &lt;\/Head&gt;\n      &lt;div&gt;\n        &lt;Hero \/&gt;\n        &lt;About \/&gt;\n        &lt;Skills \/&gt;\n        &lt;Projects \/&gt;\n        &lt;Contact \/&gt;\n      &lt;\/div&gt;\n    &lt;\/&gt;\n  );\n};\n\nexport default Home;<\/code><\/pre>\n<p>Cuando ejecutes ahora tu aplicaci\u00f3n, observar\u00e1s que se ha creado un <a href=\"https:\/\/kinsta.com\/es\/blog\/portafolio-online\/\">sitio web<\/a> de portafolio completo. Por \u00faltimo, antes de desplegar tu aplicaci\u00f3n, vamos a instalar una dependencia. Una de las ventajas de utilizar Next.js es la gran cantidad de funciones que aporta, como el enrutamiento basado en archivos, la optimizaci\u00f3n de im\u00e1genes y muchas m\u00e1s.<\/p>\n<p>La optimizaci\u00f3n de im\u00e1genes se gestiona con el componente Next.js <code>Image<\/code>. Antes de desplegar una aplicaci\u00f3n en producci\u00f3n que utilice el componente Imagen de Next.js, se recomienda encarecidamente que instales <a href=\"https:\/\/www.npmjs.com\/package\/sharp\">sharp<\/a>. Puedes hacerlo navegando a tu terminal, asegur\u00e1ndote de que est\u00e1s en el directorio de tu proyecto, y ejecutando el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">npm i sharp<\/code><\/pre>\n<p>Ahora puedes desplegar tu aplicaci\u00f3n, y las im\u00e1genes funcionar\u00e1n correctamente con toda la optimizaci\u00f3n que proporciona Next.js.<\/p>\n<h2>C\u00f3mo Desplegar la aplicaci\u00f3n Next.js en Kinsta<\/h2>\n<p>Una vez que est\u00e9s contento con tu portafolio mostrando tus mejores trabajos de desarrollo e informaci\u00f3n clave, es probable que quieras compartirlo con los dem\u00e1s, \u00bfverdad? Veamos c\u00f3mo hacerlo utilizando GitHub y la plataforma de Alojamiento de Aplicaciones de Kinsta.<\/p>\n<h3>Env\u00eda tu c\u00f3digo a GitHub<\/h3>\n<p>Hay varias formas de enviar c\u00f3digos a GitHub, pero vamos a utilizar Git para este tutorial. Git <a href=\"https:\/\/kinsta.com\/es\/blog\/git-para-desarrollo-web\/\">es ampliamente utilizado en el desarrollo de software<\/a> porque proporciona una forma fiable y eficiente de gestionar los cambios de c\u00f3digo, colaborar en proyectos y mantener el historial de versiones.<\/p>\n<p>Puedes subir tu c\u00f3digo a GitHub siguiendo estos pasos:<\/p>\n<p>Primero, crea un nuevo repositorio (igual que una carpeta local para almacenar tu c\u00f3digo). Puedes hacerlo accediendo a tu cuenta de GitHub, haciendo clic en el bot\u00f3n <strong>+<\/strong> de la esquina superior derecha de la pantalla y seleccionando <strong>Nuevo repositorio<\/strong>\u00a0en el men\u00fa desplegable, como se ve en la imagen siguiente.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/Create-a-new-repository-on-GitHub.jpg\" alt=\"Crea un nuevo repositorio de GitHub.\" width=\"1600\" height=\"770\"><figcaption class=\"wp-caption-text\">Crea un nuevo repositorio de GitHub.<\/figcaption><\/figure>\n<p>El siguiente paso ser\u00eda dar un nombre a tu repositorio, a\u00f1adir una descripci\u00f3n (opcional) y seleccionar si quieres que tu repositorio sea p\u00fablico o privado. A continuaci\u00f3n, haz clic en <strong>Crear repositorio<\/strong>. Ya puedes enviar tu c\u00f3digo al nuevo repositorio de GitHub.<\/p>\n<p>Todo lo que se necesita para empujar tu c\u00f3digo con Git es la URL del repositorio, que puedes encontrar en la p\u00e1gina principal del repositorio, bajo el bot\u00f3n <strong>Clonar o descargar<\/strong>, o en los pasos que aparecen despu\u00e9s de crear un repositorio.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/how-to-get-repository-URL.jpg\" alt=\"Accede a la URL de tu repositorio GitHub\" width=\"1600\" height=\"738\"><figcaption class=\"wp-caption-text\">Accede a la URL de tu repositorio GitHub<\/figcaption><\/figure>\n<p>Puedes prepararte para env\u00edar tu c\u00f3digo abriendo tu terminal o s\u00edmbolo del sistema y navegando hasta el directorio que contiene tu proyecto. Utiliza el siguiente comando para inicializar un repositorio Git local:<\/p>\n<pre><code class=\"language-bash\">git init<\/code><\/pre>\n<p>Ahora a\u00f1ade tu c\u00f3digo al repositorio Git local utilizando el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">git add .<\/code><\/pre>\n<p>El comando anterior a\u00f1ade todos los archivos del directorio actual y sus subdirectorios al nuevo repositorio Git. Ahora puedes confirmar tus cambios utilizando el siguiente comando:<\/p>\n<pre><code class=\"language-bash\">git commit -m \"my first commit\"<\/code><\/pre>\n<p><strong>Nota:<\/strong> Puedes sustituir \u00abmi primera confirmaci\u00f3n\u00bb por tu propio mensaje breve que describa los cambios realizados.<\/p>\n<p>Por \u00faltimo, env\u00eda tu c\u00f3digo a GitHub utilizando los siguientes comandos:<\/p>\n<pre><code class=\"language-bash\">\ngit remote add origin [repository URL]\ngit push -u origin master<\/code><\/pre>\n<p><strong>Nota:<\/strong> Aseg\u00farate de sustituir \u00ab[URL del repositorio]\u00bb por la URL de tu propio repositorio de GitHub.<\/p>\n<p>Una vez que hayas completado estos pasos, tu c\u00f3digo ser\u00e1 enviado a GitHub y accesible a trav\u00e9s de la URL de tu repositorio. Ahora puedes desplegar tu repositorio en Kinsta.<\/p>\n<h3>Despliega tu Portafolio en Kinsta<\/h3>\n<p>El despliegue en Kinsta se realiza en cuesti\u00f3n de minutos. Comienza en el panel de control <a href=\"https:\/\/my.kinsta.com\/?lang=es\">MyKinsta<\/a> para iniciar sesi\u00f3n o crear tu cuenta.<\/p>\n<p>A continuaci\u00f3n, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">autorizar\u00e1s a Kinsta en GitHub<\/a> en estos r\u00e1pidos pasos:<\/p>\n<ol start=\"1\">\n<li>Haz clic en <strong>Aplicaciones<\/strong> en la barra lateral izquierda<\/li>\n<li>Haz clic en <strong>A\u00f1adir servicio<\/strong><\/li>\n<li>En el men\u00fa desplegable, haz clic en <strong>Aplicaci\u00f3n<\/strong> porque quieres desplegar una aplicaci\u00f3n Next.js en Kinsta.<\/li>\n<\/ol>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/host-application-on-kinsta.jpg\" alt=\"Crea un proyecto de aplicaci\u00f3n en MyKinsta\" width=\"1600\" height=\"503\"><figcaption class=\"wp-caption-text\">Crea un proyecto de aplicaci\u00f3n en MyKinsta<\/figcaption><\/figure>\n<p>Aparecer\u00e1 un modal a trav\u00e9s del cual podr\u00e1s seleccionar el repositorio que deseas desplegar.<\/p>\n<p>Si tienes varias ramas en tu repositorio, puedes seleccionar la que deseas desplegar. Tambi\u00e9n puedes asignar un nombre a esta aplicaci\u00f3n. Aseg\u00farate de seleccionar una <a href=\"https:\/\/kinsta.com\/es\/docs\/servicio-de-informacion\/ubicaciones-de-los-centros-de-datos\/#application-and-database-hosting-data-centers\">ubicaci\u00f3n de centro de datos<\/a> entre las disponibles en 24, y entonces Kinsta detectar\u00e1 autom\u00e1ticamente un comando de inicio.<\/p>\n<figure style=\"width: 1438px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/deploying_application_to_kinsta.gif\" alt=\"Detectar autom\u00e1ticamente el comando de inicio\" width=\"1438\" height=\"736\"><figcaption class=\"wp-caption-text\">Detectar autom\u00e1ticamente el comando de inicio<\/figcaption><\/figure>\n<p>En este momento, tu aplicaci\u00f3n comenzar\u00e1 a desplegarse. En unos minutos, se proporcionar\u00e1 un enlace para acceder a la versi\u00f3n desplegada de tu aplicaci\u00f3n. En este caso, es: <strong>https:\/\/kinsta-developer-portfolio-ir8w8.kinsta.app\/<\/strong><\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/03\/deployemnt-link-on-kinsta.jpg\" alt=\"Enlace de despliegue en Kinsta\" width=\"1600\" height=\"720\"><figcaption class=\"wp-caption-text\">Enlace de despliegue en Kinsta<\/figcaption><\/figure>\n<p><strong>Nota:<\/strong> Se ha activado el despliegue autom\u00e1tico, por lo que Kinsta vuelve a desplegar autom\u00e1ticamente tu aplicaci\u00f3n cada vez que realizas cambios en tu c\u00f3digo base y lo env\u00edas a GitHub.<\/p>\n\n<kinsta-video src=\"https:\/\/www.youtube.com\/watch?v=vmNem6wxfSQ\"><\/kinsta-video>\n<h2>Resumen<\/h2>\n<p>Hay varias razones por las que los desarrolladores deber\u00edan considerar el uso de Next.js para sus proyectos web. En primer lugar, proporciona un rendimiento optimizado desde el primer momento, con funciones como la precarga y la divisi\u00f3n del c\u00f3digo que ayudan a reducir los tiempos de carga de las p\u00e1ginas. En segundo lugar, proporciona una experiencia de desarrollo familiar para los desarrolladores de React, ya que admite herramientas populares como los componentes con estilo y las \u00faltimas funciones de React.<\/p>\n<p>Kinsta admite varias opciones de despliegue para Next.js, incluido el alojamiento tradicional basado en servidor y las modernas plataformas sin servidor. Esto permite a los desarrolladores elegir la opci\u00f3n de despliegue que mejor se adapte a sus necesidades, al tiempo que se benefician de las optimizaciones de rendimiento del framework y de otras ventajas.<\/p>\n<p>En este tutorial, has aprendido paso a paso c\u00f3mo construir un sitio de portafolio responsivo utilizando Next.js y luego desplegarlo en Kinsta.<\/p>\n<p>Puedes <a href=\"https:\/\/sevalla.com\/application-hosting\/\">probar gratis el Alojamiento de Aplicaciones de Kinsta<\/a>\u00a0y, si te gusta, optar por nuestro plan <a href=\"https:\/\/sevalla.com\/pricing\/\">Nivel Hobby<\/a> <strong>a partir de 7 d\u00f3lares\/mes<\/strong>.<\/p>\n<p>Ahora te toca a ti desafiarte a ti mismo: \u00a1a\u00f1ade m\u00e1s funciones a tu sitio web de portafolio reci\u00e9n desarrollado! Aqu\u00ed tienes algunas ideas para que fluya tu creatividad: a\u00f1ade m\u00e1s p\u00e1ginas con informaci\u00f3n detallada, integra un blog con MDX, implementa alguna animaci\u00f3n. Comparte tus proyectos y experiencias en los comentarios de abajo<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El portafolio de un desarrollador es una colecci\u00f3n de muestras de trabajo y proyectos que muestran tus habilidades y experiencia. Un portafolio s\u00f3lido te diferencia de &#8230;<\/p>\n","protected":false},"author":287,"featured_media":63785,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[1296],"class_list":["post-63784","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-frameworks-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js\" \/>\n<meta property=\"og:description\" content=\"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinsta.es\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-09T12:08:59+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-21T13:01:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"3042\" \/>\n\t<meta property=\"og:image:height\" content=\"1521\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_ES\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js\",\"datePublished\":\"2023-03-09T12:08:59+00:00\",\"dateModified\":\"2023-08-21T13:01:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/\"},\"wordCount\":3271,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/\",\"name\":\"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\",\"datePublished\":\"2023-03-09T12:08:59+00:00\",\"dateModified\":\"2023-08-21T13:01:39+00:00\",\"description\":\"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\",\"width\":3042,\"height\":1521},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frameworks JavaScript\",\"item\":\"https:\/\/kinsta.com\/es\/secciones\/frameworks-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/es\/#website\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluciones de alojamiento premium, r\u00e1pidas y seguras\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/es\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/es\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinsta.es\/\",\"https:\/\/x.com\/Kinsta_ES\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/es\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js - Kinsta\u00ae","description":"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/","og_locale":"es_ES","og_type":"article","og_title":"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js","og_description":"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.","og_url":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinsta.es\/","article_published_time":"2023-03-09T12:08:59+00:00","article_modified_time":"2023-08-21T13:01:39+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.","twitter_image":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_ES","twitter_misc":{"Escrito por":"Joel Olawanle","Tiempo de lectura":"20 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js","datePublished":"2023-03-09T12:08:59+00:00","dateModified":"2023-08-21T13:01:39+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/"},"wordCount":3271,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/","url":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/","name":"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","datePublished":"2023-03-09T12:08:59+00:00","dateModified":"2023-08-21T13:01:39+00:00","description":"Aprende a crear un portafolio de desarrollador usando Next.js. Despliega directamente desde tu repositorio de GitHub a la plataforma de alojamiento de aplicaciones de Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#primaryimage","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","width":3042,"height":1521},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/es\/blog\/portafolio-next-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/es\/"},{"@type":"ListItem","position":2,"name":"Frameworks JavaScript","item":"https:\/\/kinsta.com\/es\/secciones\/frameworks-javascript\/"},{"@type":"ListItem","position":3,"name":"C\u00f3mo Crear y Desplegar un Portafolio de Desarrolladores con Next.js"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/es\/#website","url":"https:\/\/kinsta.com\/es\/","name":"Kinsta\u00ae","description":"Soluciones de alojamiento premium, r\u00e1pidas y seguras","publisher":{"@id":"https:\/\/kinsta.com\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/es\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/es\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/es\/wp-content\/uploads\/sites\/8\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinsta.es\/","https:\/\/x.com\/Kinsta_ES","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/kinsta.com\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/es\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/63784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/comments?post=63784"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/63784\/revisions"}],"predecessor-version":[{"id":67449,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/posts\/63784\/revisions\/67449"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/translations\/dk"},{"href":"https:\/\/kinsta.com\/es\/wp-json\/kinsta\/v1\/posts\/63784\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media\/63785"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/media?parent=63784"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/tags?post=63784"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/es\/wp-json\/wp\/v2\/topic?post=63784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}