O Que É Gatsby e Como Ele Funciona

página inicial do MagMutual

Impulsionando mais de 200 mil sites em todo o mundo, o Gatsby é uma excelente estrutura para a construção de sites estáticos. Está entre as muitas ferramentas que suportam a abordagem de desenvolvimento web Jamstack, permitindo que sites e  aplicativos sejam executados sem um servidor web.

Este tutorial cobrirá tudo relacionado ao Gatsby, desde  geradores de sites estáticos e a abordagem Jamstack até os principais componentes e casos de uso do Gatsby.

O Gatsby ou Gatsby JS é uma estrutura de código aberto baseada em React.JS, GraphQL e webpack. Em outras palavras, o Gatsby JS permite que os desenvolvedores construam um site estático com React e dados de origem do banco de dados de um sistema de gerenciamento de conteúdo ou arquivos de remarcação.

Noções Básicas sobre Geradores de Sites Estáticos

Um site estático é normalmente construído em conteúdo estático contendo HTML, CSS e código JavaScript. As páginas estáticas usam renderização do lado do servidor para fornecer código pré-criado, garantindo que o conteúdo permaneça o mesmo sempre que o site for carregado. 

Por outro lado, um site dinâmico usa renderização do lado do navegador. Suas páginas da Web são carregadas de maneira diferente toda vez que os usuários as atualizam, o que pode ser devido ao fuso horário, locais e comportamento dos usuários. 

Em sites estáticos, cada elemento da página faz parte do design. Portanto, os desenvolvedores precisam criar versões separadas para cada elemento, o que pode ser um incômodo. 

Um gerador de site estático é uma ótima alternativa de sistema de gerenciamento de conteúdo (CMS) para construir sites estáticos com facilidade. Os desenvolvedores não precisam codificar cada um dos elementos da página estática, pois isso permite que eles usem temas pré-criados. 

Além da automação, um gerador de site estático oferece as seguintes vantagens: 

  • Performance melhorada. Os geradores de sites estáticos usam a técnica de pré-renderização para gerar páginas com antecedência.
  • Customização flexível. Enquanto centenas de temas e plugins pré-criados estão disponíveis, os desenvolvedores podem criar os seus próprios desde o início usando suas linguagens e estruturas preferidas.
  • Avanços tecnológicos. Ferramentas modernas de desenvolvedor, incluindo linguagens, estruturas e bibliotecas, são algumas das razões por trás da migração de sites estáticos. Eles permitem que os desenvolvedores otimizem o desempenho além dos limites da pilha tradicional de aplicativos da Web.
  • Back-end mais leve. Os geradores de sites estáticos não exigem um back-end ativo, pois só o usam para obter dados durante o tempo de compilação. Além disso, eles não precisam de muito código do lado do servidor, pois não há necessidade de consultar constantemente o servidor para busca de dados.
  • Segurança melhorada. Os geradores de sites estáticos permitem que os desenvolvedores usem um sistema CMS headless, separando o front-end do back-end. Portanto, sites estáticos são mais seguros, pois não possuem muitos pontos de entrada.

No momento da compilação, um gerador de site estático lê o conteúdo dos arquivos de marcação antes de atingir uma rede de entrega de conteúdo (CDN). Em seguida, ele cria conteúdo estático com base em um conjunto de modelos e o entrega à CDN. 

Na CDN, o conteúdo é armazenado e mantido disponível sempre que os usuários precisarem.

Página inicial Gatsby

O Gatsby JS é construído sobre as mais recentes invenções de tecnologia, como o React, um dos geradores de sites estáticos mais utilizados no mercado. Um site Gatsby processa dados usando a interface de programação de aplicativos (API) GraphQL e os mescla para gerar arquivos HTML

Além do Gatsby JS, alguns excelentes geradores de sites estáticos incluem Next.JS, Jekyll, 11ty e Pelican.

O Que é Jamstack?

Jamstack é o componente chave da arquitetura de software moderna. Baseado no lado JavaScript do lado do cliente, numa API reutilizável e numa marcação pré-criada, a arquitetura Jamstack ajuda a melhorar o desempenho, a segurança e a escalabilidade de um site. 

Vamos aprender sobre cada componente da arquitetura Jamstack:

  • JavaScript. Uma linguagem de programação que permite aos desenvolvedores criar elementos interativos da Web, como botões clicáveis, mapas interativos, gráficos animados e efeitos de rolagem de vídeo.
  • API. Um conjunto de códigos de programação que permite a transmissão de dados entre dois ou mais programas de software. Por exemplo, uma API permite que os usuários façam login em um aplicativo usando Google, LinkedIn e Facebook.
  • Marcação. Composto por HTML e CSS, o código de marcação fornece informações de formatação aos navegadores. O primeiro estrutura o conteúdo da web, definindo o título, os cabeçalhos e os parágrafos. Enquanto isso, o CSS estiliza o conteúdo HTML com fontes, cores e colunas.

O Jamstack, que fornece uma abordagem para o desenvolvimento da Web do lado do cliente, tornou-se uma  escolha de arquitetura popular para geradores de sites estáticos. 

Além disso, os sites Jamstack não exigem um banco de dados, ao contrário dos sites criados usando Drupal ou WordPress. Os desenvolvedores também podem hospedar um site Gatsby JS usando um Object Storage Service (OSS) e uma CDN, eliminando a necessidade de um servidor web.

Como Funciona o Gatsby?

Os recursos revolucionários do Gatsby, como divisão de código e malha de conteúdo, permitem que os desenvolvedores utilizem arquivos estáticos e construam sites extremamente rápidos com facilidade.

O comando de compilação gatsby build command divide automaticamente os pacotes JavaScript. Isso permite que o Gatsby carregue apenas o código HTML, CSS e JavaScript crítico em vez de entregar o aplicativo inteiro. É por isso que um site Gatsby parece incrivelmente rápido. 

A malha de conteúdo descreve a relação entre os três principais recursos de Gatsby:

  • Serviços CMS. Eles podem incluir Contentful, WordPress e Shopify. Os serviços CMS permitem a criação de conteúdo e fornecem um hub desse conteúdo para extrair dados.
  • Estruturas de desenvolvimento. Referindo-se a ferramentas de desenvolvimento modernas, os  frameworks de desenvolvimento no Gatsby são React e GraphQL.
  • Ferramentas de implantação. Integrado com Netflify, Vercel ou AWS Amplify, o Gatsby cria os arquivos estáticos prontos para implantação.
Content Mesh - um dos recursos do Gatsby que consiste em ferramentas modernas, CMS headless e desempenho do site

O Gatsby faz uma pré-busca recursos de um CMS ou arquivos markdown e cada um deles terá suas próprias pastas designadas.

Por exemplo, o Gatsby cria pastas individuais para armazenar cada página da web originada de um CMS. Se um usuário digitar /FAQ no seu navegador, o Gatsby irá buscar a página e exibi-la conforme está armazenada. 

Assim que estiver totalmente renderizado, o Gatsby fará a pré busca dos recursos de outras páginas para oferece velocidades de carregamento de mais rápidas.

O ecossistema Gatsby também oferece milhares de plug-ins, desde otimização de imagem e lazy loading até mídias sociais, comércio eletrônico e análises. 

Por exemplo, um aplicativo Gatsby usando imagens dinâmicas pode usar gatsby-plugin-image e configurar o componente de imagem Gatsby para carregá-los lentamente. Um projeto Gatsby também pode utilizar o plugin gatsby-source-filesystem para permitir que os desenvolvedores obtenham  conteúdo do computador local. 

Gatsby também fornece plugins CMS, como gatsby-source-wordpress, gatsby-plugin-netlify-cms e gatsby-source-contentful. Esses plugins permitem que os sites Gatsby JS busquem arquivos do banco de dados do CMS.

Se você planeja usar o Gatsby, certifique-se de usar um VPS Linux de alto desempenho que suporta este quadro.

Vamos nos aprofundar nos principais componentes do Gatsby – React, GraphQL e webpack.

React

páginicial do react js

React é uma biblioteca de código aberto baseada em JavaScript para criar interfaces de usuário (UI) interativas para aplicativos móveis e da web. Aqui estão alguns dos melhores recursos do Gatsby React, que tornam o desenvolvimento web mais fácil de usar:

  • JSX. Desenvolvedores PHP podem se sentir à vontade usando Gatsby React, pois o formato de arquivo JSX  permite que eles combinem HTML com código de script, como o desenvolvimento PHP típico.
  • Layout baseado em componentes. O React utiliza os componentes, que são um conjunto de trechos de código JavaScript reutilizáveis para desenvolvimento de interface do usuário. Eles permitem que a biblioteca monte rapidamente páginas da Web a partir de elementos pré criados.
  • Programação declarativa. Em vez de dizer como um programa deve executar uma tarefa, o Gatsby React descreve o que ele faz sem controlar seu fluxo. Além de  garantir os componentes certos para renderização, a programação declarativa também facilita a localização de bugs.
  • Modelo de Objeto de Documento Virtual (DOM). O React cria uma cópia local do HTML DOM, permitindo que ele remova a renderização excessiva e torne a velocidade do aplicativo incrivelmente rápida.

Um aplicativo criado no React geralmente é um app de página única. No entanto, devido à sua abordagem revolucionária ao desenvolvimento front-end, os desenvolvedores também podem usar o Gatsby React para criar grandes aplicativos da Web, incluindo sites de comércio eletrônico, serviços de armazenamento e aplicativos de streaming.

GraphQL

página inicial do graphql

GraphQL é uma linguagem de consulta usada para recuperar e modificar arquivos de bancos de dados. 

O GraphQL funciona de maneira semelhante ao SQL, mas sua sintaxe é mais simples e mais declarativa. Além disso, React e GraphQL foram inventados no Facebook, tornando o GraphQL uma das linguagens de consulta mais poderosas para incorporar dados nos componentes React. 

O Gatsby disponibiliza os dados aos usuários por meio da API GraphQL. Ele permite que sites e aplicativos obtenham dados de praticamente qualquer lugar, incluindo sistemas de gerenciamento de conteúdo, arquivos de remarcação, computadores locais e JSON

Webpack

página inciial do webpack

O Webpack é um empacotador de módulos — ele coleta módulos JavaScripts e os compila em um ou mais pacotes otimizados, permitindo que um aplicativo seja executado.

O Webpack utiliza o gráfico de dependência para determinar os módulos JavaScript dependentes de outros para garantir que um site seja executado como deveria. Para isso, o webpack usa o conteúdo webpack.config.js para encontrar pontos de partida. 

Webpack também usa webpack.config.js para armazenar suas definições de configuração. Portanto, a busca de arquivos de marcação no Gatsby pode ser feita incorporando arquivos que suportam HTML e CSS.  

Além disso, o webpack permite a divisão de código, permitindo que os desenvolvedores dividam o código em alguns pacotes para que possam carregar conforme solicitado. 

Para resumir, veja como Gatsby funciona: 

  1. Gatsby origina dados usando uma API GraphQL.
  2. Em seguida, ele cria pacotes e divide o código com o webpack.
  3. Finalmente, as páginas pré-renderizadas HTML, CSS e React são implantadas em um servidor.

Casos de Uso do Gatsby

Resumindo, Gatsby é melhor usado para sites que não precisam de mudanças frequentes. Graças à malha de conteúdo, os desenvolvedores agora podem usar o Gatsby para criar sites mais complexos, incluindo comércio eletrônico estático, B2B, SaaS, serviços financeiros e aplicativos da web  progressivos. 

Vejamos quatro casos de uso do Gatsby para entender melhor como ele funciona.

Comércio Eletrônico

A velocidade é um fator crucial que determina o sucesso de uma loja de comércio eletrônico. Sites que levam apenas um segundo para carregar têm uma taxa de conversão três vezes maior do que aqueles que carregam em cinco segundos.

A boa notícia é que os desenvolvedores podem integrar o Gatsby em uma plataforma de comércio eletrônico e construir uma vitrine estática para um comércio eletrônico headless. Além de garantir um excelente desempenho, a personalização do Gatsby é altamente flexível. Portanto, pode ajudar a:

  • Fornecer uma navegação clara. Os sites de comércio eletrônico devem ser fáceis de navegar, pois a navegação clara ajuda a facilitar a jornada do cliente.
  • Definir vantagem competitiva. A personalização flexível permite que os proprietários de empresas obtenham designs exclusivos da Web, ajudando um site de comércio eletrônico a se destacar entre os concorrentes.
  • Melhore a experiência do usuário (UX). Todos os benefícios acima combinados com um excelente tempo de carregamento da página podem resultar em um UX impecável.
página inicial do raleigh

Desde então, Raleigh mudou-se para Gatsby, viu melhorias significativas no desempenho geral do site. Aqui estão algumas das áreas que Raleigh se beneficia do Gatsby:

  • Velocidade. Depois de mudar para Gatsby, Raleigh recebeu um feedback positivo sobre o tempo de carregamento do site.
  • Flexibilidade do projeto. Como o Gatsby dá mais liberdade para os desenvolvedores criarem um design único, Raleigh vem aproveitando isso para garantir que o site não pareça antiquado.
  • Custo-benefício. A pré-renderização estática do Gatsby ajuda Raleigh a reduzir os custos de hospedagem.

Business-to-Business (B2B) e Software como Serviço (SaaS)

Assim como os sites de comércio eletrônico, os sites B2B e SaaS visam converter visitantes em clientes. Portanto, a velocidade da página e a rastreabilidade são fatores cruciais.

página inicial do Housecall Pro SaaS

A Housecall Pro, precisando que o site fosse amigável para SEO, escalável e extremamente rápido, migrou para o Gatsby.

O resultado foi imediatamente perceptível. A Housecall Pro teve sucesso e aumentou o tráfego orgânico do blog e o número de vezes que o site de marketing chegou à primeira página do Google para vários termos de pesquisa.

Serviços Financeiros

Como o Gatsby é mais seguro do que um CMS tradicional, optar por ele é uma ótima maneira de aumentar a segurança de um site. A arquitetura desacoplada do site minimiza os pontos de entrada, dificultando o roubo de dados do cliente. 

Além disso, o Gatsby ajuda a reduzir a taxa de rejeição e aumentar as conversões, pois também melhora muito o desempenho geral.

A MagMutual integrou o Gatsby com o Drupal 8 para resolver seus problemas de extração de dados. A seguradora de responsabilidade de saúde precisava de uma solução para ajudá-la a obter e organizar dados de vários serviços e APIs. Aqui estão os resultados da solução Drupal 8 desacoplado da MagMutual com Gatsby:

  • O back-end poderoso e a flexibilidade robusta da interface do usuário. O Drupal 8 oferece uma ampla capacidade de modelagem de conteúdo, enquanto o Gatsby cuida de todas as coisas do lado do cliente.
  • Melhor tempo de carregamento da página. A integração acelerou o tempo de carregamento da página inicial em 82% e a página de aprendizado em 25%.
  • Página inicial mais leve. O peso da página foi reduzido em 90%.
  • Segurança de próximo nível. Mantendo os dados dos membros em seus locais de origem, o MagMutual fez um excelente trabalho reduzindo a vulnerabilidade e a exposição a ataques cibernéticos.

Aplicativos da Web Progressivos (PWA)

O PWA é um aplicativo da Web construído em HTML, CSS e JavaScript. Ele fornece experiências semelhantes ao aplicativo nativo em referência, por exemplo, Twitter, Spotify, Pinterest e Uber. 

Vamos pegar o Spotify como exemplo.

Quando os usuários visitam Spotify.com a partir de seus navegadores, eles encontrarão o banner “Baixar Spotify” para o aplicativo Spotify. Clicando no link de download e prosseguindo com a instalação, eles receberão o aplicativo em suas telas iniciais.

Os usuários perceberão que as versões do site e do aplicativo nativo têm a mesma aparência e desempenho. Nesse caso, a versão do aplicativo da web do Spotify é um PWA.

Sem surpresa, a criação de um PWA é viável com o Gatsby. Dito isto, o ambiente deve satisfazer estes três fatores:

  • Executar o aplicativo Web em HTTPS. Como o HTTP é necessário para que o PWA funcione, não se esqueça de instalar um Certificado Secure Socket Layer (SSL).
  • Incluir um manifesto de aplicativo da web. É um arquivo JSON que fornece aos navegadores informações sobre um site ou aplicativo da web.
  • Adicionar um service worker. Contendo ativos JavaScript especializados, social workers oferecem acesso offline a um site.

Gatsby é Difícil de Aprender?

Geralmente, Gatsby é relativamente fácil de aprender.

Para pessoas novas no desenvolvimento web, algum conhecimento é necessário para ajudar a facilitar o processo de aprender a usar o Gatsby, especialmente com HTML, CSS, JavaScript e linha de comando. 

Se você está familiarizado com os fundamentos do desenvolvimento web, mas não conhece React e GraphQL, usar o Gatsby é uma das melhores maneiras de entendê-los  melhor. Além disso, Gatsby tem uma comunidade ativa com  ampla documentação porque é um projeto de código aberto.

Portanto, não hesite em dar uma chance ao Gatsby.

Conclusão

Como gerador de sites estáticos, o Gatsby tem muito a oferecer. 

Excelente velocidade, segurança aprimorada e personalização flexível estão entre as melhores vantagens do Gatsby para garantir um site com bom desempenho. Além disso, sua capacidade de integração com serviços CMS headless resulta em um back-end mais organizado.

Gatsby é relativamente fácil de aprender. Como um projeto de código aberto, o Gatsby tem uma comunidade ativa com extensa documentação. Além disso, aprender Gatsby é uma ótima maneira de começar com React e GraphQL.

Author
O autor