{"id":57817,"date":"2023-03-09T09:14:41","date_gmt":"2023-03-09T12:14:41","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=57817&#038;preview=true&#038;preview_id=57817"},"modified":"2023-10-18T03:54:34","modified_gmt":"2023-10-18T06:54:34","slug":"portfolio-next-js","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/","title":{"rendered":"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js"},"content":{"rendered":"<p>Um portf\u00f3lio de desenvolvedor \u00e9 uma cole\u00e7\u00e3o de amostras de trabalho e projetos que mostram suas habilidades e experi\u00eancia. Um portf\u00f3lio forte o diferencia dos outros candidatos quando procura por empregos. Mas n\u00e3o apenas isso: um portf\u00f3lio tamb\u00e9m pode ser uma ferramenta valiosa para networking, manter o controle de seus aprendizados e se estabelecer como um especialista no assunto.<\/p>\n<p>Neste tutorial, voc\u00ea aprender\u00e1 como construir um portf\u00f3lio de desenvolvedor usando o Next.js e implant\u00e1-lo diretamente do seu reposit\u00f3rio GitHub para a plataforma de <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hospedagem de Aplicativos<\/a> da Kinsta, que fornece um dom\u00ednio gratuito .kinsta.app para colocar seu trabalho no ar rapidamente.<\/p>\n<p>Aqui est\u00e1 uma demonstra\u00e7\u00e3o em tempo real do <a href=\"https:\/\/kinsta-developer-portfolio-ir8w8.kinsta.app\/\">portf\u00f3lio de desenvolvedor<\/a> que voc\u00ea estar\u00e1 construindo com o Next.js.<\/p>\n<p>Voc\u00ea pode acessar o <a href=\"https:\/\/github.com\/olawanlejoel\/Kinsta-developer-portfolio\">reposit\u00f3rio do GitHub<\/a> deste projeto se quiser dar uma olhada mais detalhada, ou pode usar este modelo de <a href=\"https:\/\/github.com\/olawanlejoel\/kinsta-portfolio-starter\">projeto inicial para portf\u00f3lio<\/a> selecionando &#8220;<strong>Use this template<\/strong>&#8221; (Usar este modelo) &gt; &#8220;<strong>Create a new repository<\/strong>&#8221; (Criar um novo reposit\u00f3rio) &#8211; isso ir\u00e1 copiar o c\u00f3digo inicial para um novo reposit\u00f3rio. O projeto inicial cont\u00e9m c\u00f3digos b\u00e1sicos como estilos, um link para a Font Awesome CDN, imagens e estrutura 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 \/ Pr\u00e9-requisitos<\/h2>\n<p>Ser\u00e1 mais f\u00e1cil para voc\u00ea codificar ao longo do tutorial se voc\u00ea tiver:<\/p>\n<ul>\n<li>Conhecimento b\u00e1sico de <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-html\/\">HTML<\/a>, <a href=\"https:\/\/kinsta.com\/pt\/blog\/melhores-praticas-css\/\">CSS<\/a>, e <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a><\/li>\n<li>Um pouco de conhecimento do <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-react-js\/\">React<\/a> e talvez do Next.js<\/li>\n<li>Node.js e npm (<a href=\"https:\/\/kinsta.com\/pt\/blog\/npm-gerenciador-pacotes-node\/\">Node Package Manager<\/a>) ou yarn instalados em seu computador.<\/li>\n<\/ul>\n<h2>Por que Next.js?<\/h2>\n<p><a href=\"https:\/\/kinsta.com\/pt\/blog\/next-js\/\">Next.js<\/a> \u00e9 um <a href=\"https:\/\/kinsta.com\/pt\/blog\/bibliotecas-javascript\/\">framework de biblioteca JavaScript<\/a> de c\u00f3digo aberto baseado em React que pode ser usado para uma ampla gama de projetos de desenvolvimento web, pois simplifica a constru\u00e7\u00e3o de aplicativos renderizados no lado do servidor e est\u00e1ticos. Ele otimiza o processo, aproveitando os melhores recursos do React e aprimorando o desempenho de renderiza\u00e7\u00e3o para melhorar a experi\u00eancia do usu\u00e1rio. Alguns dos casos de uso mais comuns para o Next.js incluem:<\/p>\n<ul>\n<li><strong>Constru\u00e7\u00e3o de sites est\u00e1ticos:<\/strong> O Next.js pode construir sites est\u00e1ticos que s\u00e3o r\u00e1pidos, f\u00e1ceis de implantar e exigem manuten\u00e7\u00e3o m\u00ednima, como o site do portf\u00f3lio de desenvolvedor que construiremos ao longo deste tutorial.<\/li>\n<li><strong>Constru\u00e7\u00e3o de sites din\u00e2micos: <\/strong>O\u00a0Next.js permite que voc\u00ea crie sites din\u00e2micos que podem alterar o conte\u00fado com base em intera\u00e7\u00f5es do usu\u00e1rio ou recupera\u00e7\u00e3o de dados no lado do servidor.<\/li>\n<\/ul>\n<ul>\n<li><strong>Constru\u00e7\u00e3o de sites de eCommerce:<\/strong> O Next.js \u00e9 bem adequado para a constru\u00e7\u00e3o de sites de eCommerce que requerem renderiza\u00e7\u00e3o no lado do servidor para melhorar o SEO e o desempenho.<\/li>\n<\/ul>\n<ul>\n<li><strong>Constru\u00e7\u00e3o de aplicativos da web progressivos (PWAs):<\/strong> O Next.js suporta a cria\u00e7\u00e3o de PWAs, que s\u00e3o aplicativos da web que funcionam como aplicativos nativos e podem ser instalados no dispositivo do usu\u00e1rio.<\/li>\n<\/ul>\n<h2>Como configurar seu ambiente de desenvolvimento Next.js<\/h2>\n<p>Para configurar um ambiente de desenvolvimento para o Next.js, primeiro <a href=\"https:\/\/kinsta.com\/pt\/blog\/como-instalar-o-node-js\/\">instale o Node.js<\/a> em seu computador, pois voc\u00ea usar\u00e1 o comando <code>npx<\/code> para executar pacotes npm sem precisar instal\u00e1-los globalmente em seu sistema. Uma vez feito isso, voc\u00ea pode criar um projeto Next.js executando o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">npx create-next-app@latest my-portfolio<\/code><\/pre>\n<p>Uma janela de prompt aparecer\u00e1, pedindo que voc\u00ea confirme algumas depend\u00eancias adicionais. Depois disso, voc\u00ea pode executar <code>npm run dev<\/code> para disponibilizar seu aplicativo em <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=\"Criando um novo projeto Next.js.\" width=\"1600\" height=\"569\"><figcaption class=\"wp-caption-text\">Criando um novo projeto Next.js.<\/figcaption><\/figure>\n<p>Ao criar um projeto Next.js usando o comando <code>npx<\/code>, ele automaticamente cria uma estrutura de pastas com os seguintes diret\u00f3rios principais:<\/p>\n<ol start=\"1\">\n<li><strong>pages:<\/strong> esta pasta cont\u00e9m as p\u00e1ginas do aplicativo, que s\u00e3o automaticamente roteadas com base no nome do arquivo. Por exemplo, <strong>pages\/index.js<\/strong> seria a p\u00e1gina inicial, enquanto <strong>pages\/about.js<\/strong> seria a p\u00e1gina &#8220;sobre&#8221;.<\/li>\n<li><strong>public:<\/strong> esta pasta cont\u00e9m arquivos est\u00e1ticos que podem ser servidos diretamente, como imagens, fontes e outros recursos.<\/li>\n<li><strong>components:<\/strong> esta pasta \u00e9 opcional e cont\u00e9m componentes de interface do usu\u00e1rio (UI) reutiliz\u00e1veis que podem ser usados em todo o aplicativo.<\/li>\n<li><strong>styles:<\/strong> esta pasta tamb\u00e9m \u00e9 opcional e cont\u00e9m estilos globais que podem ser aplicados em todo o aplicativo.<\/li>\n<\/ol>\n<p>Outros diret\u00f3rios e arquivos tamb\u00e9m podem ser gerados dependendo da configura\u00e7\u00e3o e dos recursos espec\u00edficos, mas esses s\u00e3o os diret\u00f3rios principais de um projeto b\u00e1sico do Next.js.<\/p>\n<p>Para este tutorial, tudo o que construirmos aparecer\u00e1 na p\u00e1gina inicial (nosso site de uma \u00fanica p\u00e1gina), e voc\u00ea incluir\u00e1 componentes para v\u00e1rias se\u00e7\u00f5es, como o hero, sobre, projetos e outros.<\/p>\n<h2>Como construir um portf\u00f3lio de desenvolvedor responsivo usando o Next.js<\/h2>\n<p>Um portf\u00f3lio \u00e9 geralmente composto de componentes como estes:<\/p>\n<ul>\n<li>Componente Navbar<\/li>\n<li>Componente Hero<\/li>\n<li>Componente Sobre<\/li>\n<li>Componente Habilidades<\/li>\n<li>Componente Projetos<\/li>\n<li>Componente Contato<\/li>\n<li>Componente Rodap\u00e9<\/li>\n<\/ul>\n<p>Os componentes Navbar e Rodap\u00e9 devem aparecer em todas as p\u00e1ginas, se o portf\u00f3lio tiver mais de uma p\u00e1gina. Isso pode ser alcan\u00e7ado no Next.js definindo um layout.<\/p>\n<h3>Definindo layouts no Next.js<\/h3>\n<p>No Next.js, um layout \u00e9 uma maneira de definir uma estrutura consistente para os componentes que aparecem em cada p\u00e1gina de um site. O layout geralmente inclui elementos tais como cabe\u00e7alho, menu de navega\u00e7\u00e3o e rodap\u00e9 exibido em todas as p\u00e1ginas de um site.<\/p>\n<p>Comece criando uma pasta de componentes no diret\u00f3rio <strong>src<\/strong> (fonte) do seu projeto Next.js. A seguir, crie os componentes Navbar e Footer que ser\u00e3o usados dentro do componente Layout.<\/p>\n<p>Aqui est\u00e1 o componente Navbar no <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>Aqui est\u00e1 o componente footer em <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 a fonte Font Awesome funcione, voc\u00ea deve instalar a Font Awesome em seu projeto ou usar seu CDN. Voc\u00ea pode adicionar o link CDN ao seu arquivo <strong>_document.js<\/strong> assim:<\/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>Se voc\u00ea vincular uma vers\u00e3o diferente do Font Awesome via CDN, precisar\u00e1 substituir acima do hash <code>integrity<\/code> apropriado para essa vers\u00e3o.<\/p>\n<p>Ap\u00f3s criar todos os componentes necess\u00e1rios para o layout, voc\u00ea pode criar o pr\u00f3prio componente Layout e adicion\u00e1-lo \u00e0s suas p\u00e1ginas, envolvendo o conte\u00fado da p\u00e1gina dentro dele.<\/p>\n<p>O componente Layout aceitar\u00e1 uma propriedade &lt;code&gt;children&lt;\/code&gt;, permitindo que voc\u00ea acesse o conte\u00fado das suas p\u00e1ginas do 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>Neste ponto, voc\u00ea criou com sucesso o componente Layout que cont\u00e9m o Navbar e o Footer juntamente com as propriedades children posicionadas corretamente. Agora voc\u00ea pode adicionar o componente Layout \u00e0s suas p\u00e1ginas, envolvendo o conte\u00fado da p\u00e1gina dentro dele. Isso ser\u00e1 feito no arquivo <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>Agora voc\u00ea criou um layout para o seu portf\u00f3lio de desenvolvedor. Para este portf\u00f3lio, focamos mais no Next.js e como implantar seu site na Kinsta. Ent\u00e3o, voc\u00ea pode copiar os estilos no arquivo <a href=\"https:\/\/github.com\/olawanlejoel\/Kinsta-developer-portfolio\/blob\/main\/src\/styles\/globals.css\">styles\/globals.css<\/a> para o seu pr\u00f3prio projeto. Se voc\u00ea iniciar seu site do portf\u00f3lio no modo de desenvolvimento, agora dever\u00e1 ver o layout do seu aplicativo.<\/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 layout\" width=\"1600\" height=\"619\"><figcaption class=\"wp-caption-text\">Componente de layout<\/figcaption><\/figure>\n<p>Agora \u00e9 hora de dar ao seu site de portf\u00f3lio o conte\u00fado apropriado.<\/p>\n<h3>Construindo componentes do portf\u00f3lio<\/h3>\n<p>Agora voc\u00ea pode criar componentes individuais para cada se\u00e7\u00e3o do portf\u00f3lio de desenvolvedor. Todos esses componentes ser\u00e3o importados para a p\u00e1gina inicial do seu projeto Next.js, para poderem ser exibidos quando voc\u00ea iniciar o projeto com o <code>npm run dev<\/code>.<\/p>\n<h4>O componente Hero<\/h4>\n<p>O componente Hero \u00e9 a primeira se\u00e7\u00e3o abaixo do Navbar, cujo objetivo principal \u00e9 chamar a aten\u00e7\u00e3o do usu\u00e1rio e dar a ele uma ideia do que se trata o site ou aplicativo.<\/p>\n<p>\u00a0<\/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>No c\u00f3digo acima, voc\u00ea notar\u00e1 que o <a href=\"https:\/\/nextjs.org\/docs\/api-reference\/next\/image\">componente Next.js Image<\/a> \u00e9 usado em vez da tag img HTML para adicionar a imagem, porque permite a otimiza\u00e7\u00e3o autom\u00e1tica da imagem, redimensionamento e muito mais.<\/p>\n<p>No componente Sobre, voc\u00ea tamb\u00e9m notar\u00e1 que um simples par\u00e1grafo para dizer um pouco sobre o desenvolvedor foi adicionado com alguns \u00edcones de m\u00eddia social do Font Awesome para adicionar links sociais.<\/p>\n<p>Assim deve ficar o 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>Voc\u00ea pode adicionar mais conte\u00fado ao componente Hero, ajustar os estilos no arquivo <strong>styles\/globals.css<\/strong> ou mesmo recriar esta se\u00e7\u00e3o da sua pr\u00f3pria maneira.<\/p>\n<h4>O componente about<\/h4>\n<p>O componente about (sobre) visa fornecer mais informa\u00e7\u00f5es sobre voc\u00ea em quantos par\u00e1grafos desejar. Se voc\u00ea deseja falar mais sobre si mesmo, pode criar uma p\u00e1gina dedicada &#8220;Sobre mim&#8221; e adicionar um bot\u00e3o nesta se\u00e7\u00e3o para ler mais sobre voc\u00ea.<\/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>O c\u00f3digo acima cont\u00e9m dois par\u00e1grafos de texto sobre o desenvolvedor e uma imagem do desenvolvedor. Esta \u00e9 a apar\u00eancia que se espera da se\u00e7\u00e3o Sobre:<\/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>Voc\u00ea sempre pode ajustar os estilos para adicionar mais imagens e muito mais.<\/p>\n<h4>O componente skills<\/h4>\n<p>O componente skills (habilidades) tem o objetivo de mostrar algumas das tecnologias mais utilizadas pelo desenvolvedor ou tecnologias que o desenvolvedor usou no passado.<\/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 skills\" width=\"1600\" height=\"294\"><figcaption class=\"wp-caption-text\">Componente skills<\/figcaption><\/figure>\n<p>Voc\u00ea pode tornar isso mais f\u00e1cil de manter, criando uma array em um arquivo externo e, em seguida, importando para o componente de habilidades, para que voc\u00ea possa fazer um loop em vez de duplicar c\u00f3digo semelhante.<\/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>No c\u00f3digo acima, um cart\u00e3o \u00e9 criado para cada habilidade, e cada cart\u00e3o ir\u00e1 conter o \u00edcone de tecnologia do font-awesome e o nome da tecnologia. Voc\u00ea tamb\u00e9m pode adicionar mais estilos e ajustar o c\u00f3digo para torn\u00e1-lo mais atraente e \u00fanico.<\/p>\n<h4>O Componente projects<\/h4>\n<p>O componente projects (projetos) \u00e9 uma das se\u00e7\u00f5es importantes do portf\u00f3lio de um desenvolvedor. Os projetos fornecem evid\u00eancias tang\u00edveis das habilidades e capacidades de um desenvolvedor e mostram sua capacidade de aplicar seus conhecimentos a problemas do mundo real.<\/p>\n<p>Cada projeto incluir\u00e1 uma breve descri\u00e7\u00e3o do projeto, um link para o seu c\u00f3digo-fonte (estamos usando links do <a href=\"https:\/\/kinsta.com\/pt\/blog\/que-github\/\">GitHub<\/a> aqui) e quaisquer outros detalhes que voc\u00ea desejar adicionar.<\/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 de projetos\" width=\"1600\" height=\"847\"><figcaption class=\"wp-caption-text\">Componente de projetos<\/figcaption><\/figure>\n<p>Voc\u00ea pode criar uma array para armazenar os detalhes de cada projeto e, em seguida, import\u00e1-la para o seu componente para evitar codific\u00e1-los.<\/p>\n<p>Vamos criar um arquivo <strong>data.js<\/strong> para armazenar a array de dados do projeto. Voc\u00ea pode armazenar este arquivo na pasta de componentes ou na pasta <strong>pages\/api<\/strong>. Para esta demonstra\u00e7\u00e3o, vou armazen\u00e1-lo na pasta de componentes. Esta array conter\u00e1 um objeto para cada projeto, e o objeto conter\u00e1 o nome do projeto, descri\u00e7\u00e3o e link do 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>Agora voc\u00ea pode criar um componente de projeto para utilizar esses dados, fazendo um loop facilmente. Voc\u00ea pode usar qualquer m\u00e9todo de itera\u00e7\u00e3o JavaScript, mas para este tutorial, pode usar o m\u00e9todo de array <code>map()<\/code> do JavaScript para fazer um loop pela array de dados ap\u00f3s import\u00e1-la para o componente de projetos.<\/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>No c\u00f3digo acima, voc\u00ea evitou com sucesso a repeti\u00e7\u00e3o fazendo um loop pela array para produzir todos os projetos no componente de projetos, tornando-o f\u00e1cil de manter e adicionar mais projetos.<\/p>\n<h4>O Componente contact<\/h4>\n<p>Uma raz\u00e3o para criar um portf\u00f3lio de desenvolvedor \u00e9 para que clientes em potencial possam chegar at\u00e9 voc\u00ea. Uma maneira seria as pessoas lhe enviarem um e-mail, o que vamos facilitar neste componente contact (contato).<\/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>Coloque seu endere\u00e7o de e-mail na tag <code>a<\/code> para o bot\u00e3o abrir uma aplica\u00e7\u00e3o de e-mail com uma mensagem endere\u00e7ada a voc\u00ea.<\/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>Agora voc\u00ea criou com sucesso todos os componentes para o seu aplicativo de portf\u00f3lio. O pr\u00f3ximo passo seria adicion\u00e1-los \u00e0 sua p\u00e1gina inicial. Navegue at\u00e9 o arquivo <strong>pages\/index.js<\/strong> &#8211; criado por padr\u00e3o &#8211; e substitua seu c\u00f3digo pelo seguinte.<\/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>Quando voc\u00ea agora executar seu aplicativo, voc\u00ea notar\u00e1 que foi criado um <a href=\"https:\/\/kinsta.com\/pt\/blog\/site-de-portfolio\/\">site completo do portf\u00f3lio<\/a>. Finalmente, antes de implantar seu aplicativo, instalaremos uma depend\u00eancia. Uma vantagem de usar o Next.js \u00e9 as muitas funcionalidades que ele traz para a tabela, tais como roteamento baseado em arquivos, otimiza\u00e7\u00e3o de imagens e muito mais.<\/p>\n<p>A otimiza\u00e7\u00e3o de imagens \u00e9 tratada com o componente Next.js <code>Image<\/code>. Antes de implantar um aplicativo em produ\u00e7\u00e3o que utilize o componente Next.js Image, \u00e9 fortemente recomendado que voc\u00ea instale o <a href=\"https:\/\/www.npmjs.com\/package\/sharp\">sharp<\/a>. Voc\u00ea pode fazer isso navegando at\u00e9 o seu terminal, assegurando que voc\u00ea est\u00e1 no diret\u00f3rio do seu projeto, e ent\u00e3o executando o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">npm i sharp<\/code><\/pre>\n<p>Agora voc\u00ea pode implantar seu aplicativo, e as imagens funcionar\u00e3o corretamente com a otimiza\u00e7\u00e3o completa que o Next.js fornece.<\/p>\n<h2>Como implantar um aplicativo Next.js na Kinsta<\/h2>\n<p>Ap\u00f3s ficar satisfeito com seu portf\u00f3lio exibindo seu melhor trabalho de desenvolvimento e informa\u00e7\u00f5es-chave, voc\u00ea provavelmente desejar\u00e1 compartilh\u00e1-lo com outras pessoas, certo? Vamos ver como fazer isso usando o GitHub e a plataforma de Hospedagem de Aplicativos da Kinsta.<\/p>\n<h3>Envie seu c\u00f3digo para o GitHub<\/h3>\n<p>Existem v\u00e1rias maneiras de enviar c\u00f3digos para o GitHub, mas usaremos o Git para este tutorial. O <a href=\"https:\/\/kinsta.com\/pt\/blog\/git-para-desenvolvimento-web\/\">Git \u00e9 amplamente utilizado no desenvolvimento de software<\/a> porque fornece uma maneira confi\u00e1vel e eficiente de gerenciar mudan\u00e7as de c\u00f3digo, colaborar em projetos e manter o hist\u00f3rico de vers\u00f5es.<\/p>\n<p>Voc\u00ea pode enviar seu c\u00f3digo para o GitHub seguindo os seguintes passos:<\/p>\n<p>Primeiro, crie um novo reposit\u00f3rio (como uma pasta local para armazenar seu c\u00f3digo). Voc\u00ea pode fazer isso fazendo login em sua conta do GitHub, clicando no bot\u00e3o<strong> +<\/strong> no canto superior direito da tela e selecionando <strong>Novo reposit\u00f3rio<\/strong> no menu suspenso, como visto na imagem abaixo.<\/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=\"Crie um novo reposit\u00f3rio GitHub.\" width=\"1600\" height=\"770\"><figcaption class=\"wp-caption-text\">Crie um novo reposit\u00f3rio GitHub.<\/figcaption><\/figure>\n<p>O pr\u00f3ximo passo seria dar um nome ao seu reposit\u00f3rio, adicionar uma descri\u00e7\u00e3o (opcional), e selecionar se voc\u00ea quer que seu reposit\u00f3rio seja p\u00fablico ou privado. Ent\u00e3o clique em <strong>Create repository<\/strong>. Agora voc\u00ea pode <a href=\"https:\/\/kinsta.com\/pt\/blog\/push-codigo-github\/\">enviar seu c\u00f3digo<\/a> para o novo reposit\u00f3rio do GitHub.<\/p>\n<p>Tudo o que \u00e9 necess\u00e1rio para enviar seu c\u00f3digo com o Git \u00e9 a URL do reposit\u00f3rio, que voc\u00ea pode encontrar na p\u00e1gina principal do reposit\u00f3rio, abaixo do bot\u00e3o <strong>Clone ou download<\/strong>, ou nas etapas que aparecem ap\u00f3s a cria\u00e7\u00e3o de um reposit\u00f3rio.<\/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=\"Acesse a URL do seu reposit\u00f3rio GitHub\" width=\"1600\" height=\"738\"><figcaption class=\"wp-caption-text\">Acesse a URL do seu reposit\u00f3rio GitHub<\/figcaption><\/figure>\n<p>Voc\u00ea pode se preparar para enviar seu c\u00f3digo abrindo seu terminal ou prompt de comando e navegando at\u00e9 o diret\u00f3rio que cont\u00e9m seu projeto. Use o seguinte comando para inicializar um reposit\u00f3rio Git local:<\/p>\n<pre><code class=\"language-bash\">git init<\/code><\/pre>\n<p>Agora adicione seu c\u00f3digo ao reposit\u00f3rio Git local usando o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">git add .<\/code><\/pre>\n<p>O comando acima adiciona todos os arquivos no diret\u00f3rio atual e seus subdiret\u00f3rios ao novo reposit\u00f3rio Git. Agora voc\u00ea pode submeter suas mudan\u00e7as usando o seguinte comando:<\/p>\n<pre><code class=\"language-bash\">git commit -m \"my first commit\"<\/code><\/pre>\n<p><strong>Nota: <\/strong>Voc\u00ea pode substituir &#8220;meu primeiro commit&#8221; por sua pr\u00f3pria mensagem breve descrevendo as altera\u00e7\u00f5es que voc\u00ea fez.<\/p>\n<p>Por fim, envie seu c\u00f3digo para o GitHub usando os seguintes comandos:<\/p>\n<pre><code class=\"language-bash\">git remote add origin [repository URL]\ngit push -u origin master<\/code><\/pre>\n<p><strong>Nota:<\/strong> Assegure-se de substituir &#8220;[URL do reposit\u00f3rio]&#8221; pela URL do seu pr\u00f3prio reposit\u00f3rio GitHub.<\/p>\n<p>Uma vez que voc\u00ea tenha completado estes passos, seu c\u00f3digo ser\u00e1 enviado para o GitHub e acess\u00edvel atrav\u00e9s da URL do seu reposit\u00f3rio. Agora voc\u00ea pode implantar seu reposit\u00f3rio na Kinsta.<\/p>\n<h3>Implante seu portf\u00f3lio na Kinsta<\/h3>\n<p>A implanta\u00e7\u00e3o na Kinsta acontece em apenas alguns minutos. Comece no painel <a href=\"https:\/\/my.kinsta.com\/?lang=pt\">My Kinsta<\/a> para fazer o login ou criar sua conta.<\/p>\n<p>Em seguida, voc\u00ea <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">autorizar\u00e1 Kinsta no GitHub<\/a> nestes r\u00e1pidos passos:<\/p>\n<ol start=\"1\">\n<li>Clique em <strong>Aplicativos<\/strong> na barra lateral esquerda<\/li>\n<li>Clique em <strong>Adicionar servi\u00e7o<\/strong><\/li>\n<li>No menu suspenso, clique em <strong>Aplicativos<\/strong> porque voc\u00ea deseja implantar um aplicativo Next.js na 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=\"Crie um projeto de aplicativo no MyKinsta\" width=\"1600\" height=\"503\"><figcaption class=\"wp-caption-text\">Crie um projeto de aplicativo no MyKinsta<\/figcaption><\/figure>\n<p>Um modal aparecer\u00e1 atrav\u00e9s do qual voc\u00ea pode selecionar o reposit\u00f3rio que voc\u00ea deseja implantar.<\/p>\n<p>Se voc\u00ea tem m\u00faltiplas branches em seu reposit\u00f3rio, voc\u00ea pode selecionar aquela que voc\u00ea deseja implantar. Voc\u00ea tamb\u00e9m pode atribuir um nome a este aplicativo. Certifique-se de selecionar uma <a href=\"https:\/\/kinsta.com\/pt\/docs\/informacoes-de-servico\/localizacoes-de-centro-de-dados\/#application-and-database-hosting-data-centers\">localiza\u00e7\u00e3o do centro de dados<\/a> entre os 24 dispon\u00edveis, e ent\u00e3o Kinsta detectar\u00e1 automaticamente um comando start.<\/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=\"Comando start\" width=\"1438\" height=\"736\"><figcaption class=\"wp-caption-text\">Comando start<\/figcaption><\/figure>\n<p>Neste ponto, seu aplicativo come\u00e7ar\u00e1 a ser implantada. Dentro de alguns minutos, um link ser\u00e1 fornecido para acessar a vers\u00e3o implantada do seu aplicativo. Neste caso, ser\u00e1: <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=\"Link de implanta\u00e7\u00e3o na Kinsta\" width=\"1600\" height=\"720\"><figcaption class=\"wp-caption-text\">Link de implanta\u00e7\u00e3o na Kinsta<\/figcaption><\/figure>\n<p><strong>Nota:<\/strong> A implanta\u00e7\u00e3o autom\u00e1tica foi habilitada, ent\u00e3o Kinsta automaticamente reiniciar\u00e1 seu aplicativo sempre que voc\u00ea faz mudan\u00e7as na sua base de c\u00f3digo e a empurra para o GitHub.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Neste artigo, voc\u00ea aprendeu como implantar seu site com a Hospedagem de Aplicativos da Kinsta. Alternativamente, se voc\u00ea est\u00e1 construindo um aplicativo\/site b\u00e1sico que n\u00e3o requer renderiza\u00e7\u00e3o din\u00e2mica e n\u00e3o est\u00e1 sujeito a picos de tr\u00e1fego, voc\u00ea pode optar por hospedar seu site com a <a href=\"https:\/\/kinsta.com\/static-site-hosting\">Hospedagem de Site Est\u00e1tico<\/a> da Kinsta.<\/p>\n<\/aside>\n\n\n<kinsta-video src=\"https:\/\/www.youtube.com\/watch?v=vmNem6wxfSQ\"><\/kinsta-video>\n<h2>Resumo<\/h2>\n<p>Existem v\u00e1rias raz\u00f5es pelas quais os desenvolvedores devem considerar o uso do Next.js em seus projetos web. Em primeiro lugar, ele fornece desempenho otimizado pronto para uso, com recursos como pr\u00e9-busca e divis\u00e3o de c\u00f3digo que ajudam a reduzir os tempos de carregamento da p\u00e1gina. Em segundo lugar, ele oferece uma experi\u00eancia de desenvolvimento familiar para desenvolvedores React, suportando ferramentas populares como componentes estilizados e os recursos mais recentes do React.<\/p>\n<p>A Kinsta oferece suporte para v\u00e1rias op\u00e7\u00f5es de implanta\u00e7\u00e3o para o Next.js, incluindo hospedagem baseada em servidor tradicional e plataformas modernas sem servidor. Isso permite que os desenvolvedores escolham a op\u00e7\u00e3o de implanta\u00e7\u00e3o que melhor atenda \u00e0s suas necessidades, aproveitando as otimiza\u00e7\u00f5es de desempenho e outros benef\u00edcios do framework.<\/p>\n<p>Neste tutorial, voc\u00ea aprendeu passo a passo como construir um site de portf\u00f3lio responsivo usando o Next.js e, em seguida, implant\u00e1-lo na Kinsta.<\/p>\n<p>Voc\u00ea pode <a href=\"https:\/\/sevalla.com\/application-hosting\/\">experimentar a Hospedagem de Aplicativos da Kinsta gratuitamente<\/a> e, se gostar, opte pelo nosso plano <a href=\"https:\/\/sevalla.com\/pricing\/\">Hobby Tier<\/a> a partir de <strong>$7\/m\u00eas<\/strong>.<\/p>\n<p>Agora \u00e9 sua vez de se desafiar: adicione mais recursos ao seu novo site de portf\u00f3lio desenvolvido! Aqui est\u00e3o algumas ideias para inspir\u00e1-lo: adicione mais p\u00e1ginas com informa\u00e7\u00f5es detalhadas, integre um blog com MDX, implemente alguma anima\u00e7\u00e3o. Compartilhe seus projetos e experi\u00eancia nos coment\u00e1rios abaixo!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Um portf\u00f3lio de desenvolvedor \u00e9 uma cole\u00e7\u00e3o de amostras de trabalho e projetos que mostram suas habilidades e experi\u00eancia. Um portf\u00f3lio forte o diferencia dos outros &#8230;<\/p>\n","protected":false},"author":287,"featured_media":57818,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[977],"class_list":["post-57817","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>Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da 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\/pt\/blog\/portfolio-next-js\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js\" \/>\n<meta property=\"og:description\" content=\"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da Kinsta.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-09T12:14:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-18T06:54:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/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=\"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da Kinsta.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/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_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"19 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js\",\"datePublished\":\"2023-03-09T12:14:41+00:00\",\"dateModified\":\"2023-10-18T06:54:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/\"},\"wordCount\":3225,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\",\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/\",\"name\":\"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\",\"datePublished\":\"2023-03-09T12:14:41+00:00\",\"dateModified\":\"2023-10-18T06:54:34+00:00\",\"description\":\"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da Kinsta.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/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\/pt\/blog\/portfolio-next-js\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frameworks JavaScript\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/frameworks-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"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\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/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\/pt\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js - Kinsta\u00ae","description":"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da 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\/pt\/blog\/portfolio-next-js\/","og_locale":"pt_PT","og_type":"article","og_title":"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js","og_description":"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da Kinsta.","og_url":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2023-03-09T12:14:41+00:00","article_modified_time":"2023-10-18T06:54:34+00:00","og_image":[{"width":3042,"height":1521,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/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":"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da Kinsta.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Joel Olawanle","Tempo estimado de leitura":"19 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js","datePublished":"2023-03-09T12:14:41+00:00","dateModified":"2023-10-18T06:54:34+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/"},"wordCount":3225,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","inLanguage":"pt-PT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/","url":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/","name":"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","datePublished":"2023-03-09T12:14:41+00:00","dateModified":"2023-10-18T06:54:34+00:00","description":"Aprenda como construir um portf\u00f3lio de desenvolvedor utilizando o Next.js. Implante diretamente do seu reposit\u00f3rio GitHub para a plataforma de hospedagem de aplicativos da Kinsta.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/portfolio-next-js\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/03\/how-to-build-and-deploy-a-blazing-fast-developer-portfolio-with-next-js-1.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/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\/pt\/blog\/portfolio-next-js\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Frameworks JavaScript","item":"https:\/\/kinsta.com\/pt\/topicos\/frameworks-javascript\/"},{"@type":"ListItem","position":3,"name":"Como Criar e Implantar um Portf\u00f3lio de Desenvolvedor com Next.js"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","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\/pt\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/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\/pt\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/57817","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=57817"}],"version-history":[{"count":12,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/57817\/revisions"}],"predecessor-version":[{"id":64110,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/57817\/revisions\/64110"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/es"},{"embeddable":true,"hreflang":"sv","title":"Swedish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/se"},{"embeddable":true,"hreflang":"da","title":"Danish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/translations\/dk"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/57817\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/57818"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=57817"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=57817"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=57817"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}