Pressione isto: Como Faust.js escuta a comunidade

Publicados: 2023-09-01

Bem-vindo ao Press This, o podcast da comunidade WordPress do WMR. Cada episódio apresenta convidados de toda a comunidade e discussões sobre os maiores problemas enfrentados pelos desenvolvedores do WordPress. A seguir está uma transcrição da gravação original.

Desenvolvido por RedCircle

Doc Pop : Você está ouvindo Press This, um podcast da comunidade WordPress no WMR. Toda semana destacamos membros da comunidade WordPress. Sou seu anfitrião, Doutor Pop. Apoio a comunidade WordPress por meio de minha função no WP Engine e de minhas contribuições no TorqueMag.Io, onde posso fazer podcasts e desenhar desenhos animados e vídeos tutoriais. Dê uma olhada.

Você pode assinar Press This no Red Circle, iTunes, Spotify, seu aplicativo de podcasting favorito ou pode baixar episódios diretamente em wmr.fm.

Faust.js é uma estrutura JavaScript feita para liberar o poder do WordPress para sites headless. Faust é uma das únicas, senão a única, estruturas JavaScript construídas especificamente em torno do WordPress sem cabeça, e Faust.js saiu oficialmente da versão beta em 12 de junho de 2023. E pode até ter alguns recursos chegando em breve, bem a tempo para o WordCamp US , que acontecerá na próxima semana. Meu convidado de hoje é Joe Fusco, engenheiro de software sênior da WP Engine que está trabalhando no Faust. E vamos falar sobre alguns desses novos recursos e o que mudou desde que o Faust saiu da versão beta.

Joe, como você está hoje?

Joe Fusco: Ótimo, doutor, obrigado por me receber.

Doc Pop: Sim, muito obrigado por se juntar a nós. Vamos começar contando-nos como você entrou no WordPress?

Joe Fusco: Sim, claro. Então, minha história de origem do WordPress, comecei a usar o WordPress em 2013 por volta da versão 3.5. Na época, eu estava apenas trabalhando em uma ideia que tive, apenas construindo alguns tipos menores de sites e mexendo, e realmente comecei a trabalhar com uma agência local em Rochester, Nova York, construindo alguns temas personalizados.

E a partir daí, consegui meu primeiro emprego remoto trabalhando na Inksub, que é a empresa por trás do WPMU Dev, EduBlogs e Campus Press. Então tive um tempinho com cada uma dessas partes. Então, trabalhei para essas empresas e, de lá, mudei-me para Tampa, Flórida, onde tive a oportunidade de trabalhar para uma empresa de manufatura que usava WordPress não apenas para seu site de marketing, mas também internamente para um monte de ferramentas diferentes. Então comecei a usar o Headless WordPress.

Eu fiz muito desenvolvimento personalizado lá. Isso foi durante a pandemia, então tudo estava mudando para remoto. Na verdade, tive a oportunidade de voltar para Rochester e foi quando comecei a trabalhar para o WP Engine. Então, sim, tem sido ótimo desde então.

Doc Pop: Você mencionou algo lá, eu não tinha pensado, mas você estava fazendo WordPress, trabalhando com ótimos temas e produtos. E então, quando você se mudou para a Flórida, você ainda usava WordPress, mas fazia WordPress sem cabeça para uma fábrica. Parece muito interessante para mim e sinto que você precisa mergulhar um pouco mais nesse detalhe.

Joe Fusco: Absolutamente. Sim. Então, nesta oportunidade, um dia recebi um e-mail dizendo: “Ei, gostamos do seu material no GitHub. Podemos pedir para você descer?

E eu pensei que era falso no início, parecia muito spam. E então eu pensei, sim, claro, vou descer.

E eles me ofereceram um emprego. É com um dos maiores fabricantes de portas do mundo. Eles têm alguns prédios em Tampa. E foi realmente surreal, mudou toda a família para lá, ficamos três anos lá. E foram muitos componentes sem cabeça que começamos a construir.

Portanto, a organização real e o lado do marketing estavam muito familiarizados com o WordPress. Eles investiram muito no WordPress. Portanto, usar o WordPress headless fazia sentido, visto que já tínhamos esses sistemas configurados na época. Então, sim, algumas coisas muito legais foram criadas a partir disso, como alguns configuradores de portas.

Doc Pop: Adoro isso, muito obrigado por mergulhar nisso.

Joe Fusco: Ah, sim.

Doc Pop: Adoro que a história tenha se transformado no maior fabricante de portas do mundo e na tecnologia WordPress sem cabeça e esteja tudo interligado. Voltemos a falar sobre Fausto. Acredito que o Faust.js primeiro, o WP Engine lançou uma versão pela primeira vez no final de 2021.

Como em setembro de 2021. E recentemente, há alguns meses, eles saíram da versão beta com o lançamento oficial do produto. Você pode simplesmente contar aos nossos ouvintes o que é Faust.js e o que aconteceu nesses poucos anos entre o início do projeto e a saída da versão beta?

Joe Fusco: Sim, certamente, Faust.js começou originalmente como uma espécie de projeto hackathon, acredito, e então evoluiu a partir daí. Passou por alguns tipos diferentes de fases. Um deles foi com o GQty, que é um cliente GraphQL. A partir daí, simplesmente não era a melhor ferramenta para a época, pois estávamos expandindo.

Então decidimos mudar para o Apollo. E a partir daí, desenvolvemos muitos recursos novos. Mais recentemente, saindo da versão beta, queríamos apenas indicar à comunidade que este é um tipo de estrutura pronta para produção, portanto, embora nada especificamente estivesse vinculado a essa versão 1.0, surgiram algumas ideias enormes. para os quais atualmente temos RFCs no GitHub.

Doc Pop: Então vamos falar sobre essas RFCs. Em primeiro lugar, não vejo muitos pedidos de comentários sobre plugins na comunidade WordPress. Muitas vezes, parece que os desenvolvedores estão ouvindo, verificando o Twitter ou coisas assim. Mas, o tipo real de abertura e obtenção de feedback. Isso é muito interessante. Talvez seja porque este é um projeto tão grande que é por isso que vocês estão fazendo isso.

Mas eu queria saber antes de entrarmos nas RFCs específicas, talvez você pudesse nos dizer por que vocês foram ao GitHub e pediram comentários dos usuários?

Joe Fusco: Sim, então Faust é um projeto de código aberto. No entanto, foi patrocinado corporativamente por um WP Engine. Então, com isso vêm seus próprios desafios. Temos nosso próprio processo internamente, mas estamos no código aberto do GitHub e existe toda a cultura de código aberto.

Em torno disso, com outros engenheiros contribuindo de volta. Portanto, havia realmente uma pequena lacuna que estávamos percebendo com o feedback e nem tudo estava aberto, ou acho que você poderia dizer, construindo em público com essas decisões.

Queríamos incorporar RFCs em nosso fluxo de trabalho. Obtenha feedback direto da comunidade e repita essas idéias apenas em público. Então tem sido ótimo até agora. Adoramos o feedback fornecido e estamos ansiosos para fazer mais isso.

Doc Pop: Um dos primeiros tickets que vi foi uma solicitação de comentários sobre componentes React para blocos de Gutenberg. Este documento fornece uma proposta detalhada para converter componentes React existentes em blocos de Gutenberg. As pessoas que estão ouvindo devem saber o que são os blocos de Gutenberg, mas essas são as edições baseadas em blocos para as quais o WordPress se baseou. Você pode nos contar para que serve a proposta aqui?

Joe Fusco: Os componentes React para blocos de Gutenberg. Esta é a próxima evolução da ponte React Gutenberg, se você preferir, e essencialmente o que queremos fazer é pegar os componentes React existentes que estão em um aplicativo Next e apenas sincronizá-los automaticamente com o WordPress. Então, se você tiver um bloco de Gutenberg criado em um só lugar. Você não precisa duplicar isso e instalar um plugin e tê-lo em ambos os lados com código duplicado. Então, realmente queremos que Faust seja capaz de lidar com isso e facilitar esse tipo de conexão entre os dois ecossistemas, por assim dizer.

Doc Pop: E quais são os desafios de fazer algo assim?

Joe Fusco: Sim, desafios até agora, quero dizer, definitivamente ainda estamos descobrindo coisas diferentes com isso, mas construímos alguns POCs até agora e nos levaram a 90 por cento do caminho até lá. Então, alguns dos desafios agora, um dos maiores é nomear. Eu sei que isso não é uma coisa técnica, mas como chamamos isso?

Nomear é sempre difícil. Mas, além disso, tentar fazer o WordPress pensar que esse bloco, que o WordPress normalmente não procura por blocos como esse, está remotamente em outro lugar, mas apenas faz com que ele funcione bem com o WordPress. Então, no que diz respeito ao WordPress, seria apenas um tipo tradicional de bloco que você criaria talvez com o auxiliar do WordPress. Eu acho que é como o bloco de criação NPX.

Doc Pop: Na solicitação de comentários, todos vocês receberam algum feedback sobre esse assunto específico que ajudou sua equipe ou mostrou que há uma prioridade sobre a qual vocês não esperavam ouvir?

Joe Fusco: No momento não ou ainda não. Acho que grande parte da conversa até agora foi apenas uma espécie de conceituação do que é essa ideia, porque estamos neste espaço agora onde, tipo, ninguém realmente fez nada assim, pelo que pude ver. Então, muita inovação aqui. E com isso vem a construção desses modelos mentais para a comunidade entender.

Doc Pop: Sim, acho que é uma boa maneira de colocar isso. Este é definitivamente um território desconhecido, como você está falando, mesmo com a nomenclatura. Nomear partes dele é difícil, e há muitas partes funcionais, mas também sinto que Gutenberg e o Editor de Blocos ainda são talvez um alvo em movimento. Isso tem sido um problema quando você está desenvolvendo algo em torno de Gutenberg, onde há uma mudança inesperada no núcleo ou Gutenberg está bastante estável atualmente?

Joe Fusco: Sim, ótima pergunta. Então, no começo, quando entrei para a equipe, sim, havia absolutamente algumas mudanças acontecendo que nos atrasaram um pouco, apenas tipos diferentes de esquemas e outras coisas. Eu diria que este ano tem estado bastante estável, pelo menos com as partes que estamos utilizando do WordPress.

Então tem sido muito melhor. Na verdade, estamos nos concentrando apenas nas coisas prontas para produção, mas ainda mantendo nossos ouvidos atentos aos recursos mais avançados de Gutenberg.

Doc Pop: E esse é um bom lugar para fazermos uma pausa rápida. Quando voltarmos, continuaremos nossa conversa com Joe Fusco sobre Faust.js e Headless WordPress, então fique ligado para saber mais após este breve intervalo.

Doc Pop: Bem-vindo de volta ao Press This, um podcast da comunidade WordPress. Sou seu anfitrião, Doutor Pop. Hoje estamos conversando com Joe Fusco do WP Engine sobre Faust.js e o que está acontecendo com a solicitação de comentários para algumas alterações propostas. E estávamos conversando no início do programa sobre como poucos dos plug-ins que sigo fazem solicitações de comentários que vejo, mas talvez o façam, e não estou muito atento a isso, mas estamos falando sobre aqueles que estão sendo lançados pela equipe do Faust.js agora, e falamos sobre um RFC para componentes React para blocos de Gutenberg, outro que acho que vale a pena mencionar é Next.js, AppRouterSupport e Faust. Joe, você pode nos dizer qual é a proposta aqui?

Joe Fusco: o próximo. js App Router e proposta Faust. Fizemos algumas pesquisas para ver como podemos oferecer suporte ao novo recurso App Router em Next.js. Com isso, propomos algumas soluções possíveis aqui.

Mas essencialmente, o que estamos tentando fazer é que o AppRouter está usando componentes do servidor React. Isso significa que podemos buscar dados do WordPress no servidor, em vez de fazer um grande tipo de consulta GraphQL para pegar tudo, como você pode ver atualmente em nossos exemplos atuais no repositório Faust. Então, sim, estamos todos muito entusiasmados com isso.

Isso meio que abre Fausto para ser mais agnóstico em termos de estrutura também. Apenas ser capaz de oferecer suporte aos componentes do servidor React em geral. Então, você pode imaginar que talvez tenha alguns campos personalizados em uma postagem e talvez alguns campos personalizados em outro lugar ou como um menu. Idealmente, queremos que os arquivos sejam capazes de buscá-los ou, pelo menos, fornecer utilitários para ajudar os desenvolvedores a diminuir o atrito ao começar a usar o WordPress e o headless.

Doc Pop: E vejo como parte da proposta que, com a introdução do AppRouter, há um novo arquivo chamado head.Js que tem suporte personalizado para busca de metadados, o que deve ajudar os usuários com SEO. Você pode falar um pouco sobre os benefícios disso?

Joe Fusco: Estamos trabalhando ou apenas pensando em como queremos lidar com isso. Portanto, o SEO é uma grande parte do WordPress, muitos plug-ins de SEO, e realmente do lado sem cabeça, o SEO não é, não é realmente priorizado, pelo menos com o WordPress sem cabeça. É como criar seu próprio tipo de solução.

Então, queremos que o Faust seja capaz de preencher essa lacuna e achamos que essa API de metadados poderia definitivamente nos ajudar a chegar lá.

Doc Pop: E também como parte dessa mudança, você mencionou que isso ajudaria a manter Fausto agnóstico. E estou vendo aqui que isso vai ajudar os desenvolvedores de plugins e as pessoas que usam plugins. Você pode falar sobre o que essa mudança significa? Por que o suporte do AppRouter pode ajudar os plug-ins a funcionar melhor com o Faust?

Joe Fusco: Sim, sim, certamente. Com esta proposta, é uma espécie de mudança de paradigma. Não pensamos tanto em substituir a forma como o Faust está configurado atualmente, mas sim em apenas oferecer mais utilitários e um ajudante. Então você pode imaginar que um plugin do WordPress tem algumas configurações personalizadas. Faust fornece uma ferramenta para capturar rapidamente aqueles que estão no front-end do seu aplicativo Next. Sim, apenas ajuda a facilitar a conexão entre esses dois ecossistemas do WordPress e do Next.

Doc Pop: A API Rest do WordPress foi lançada na versão 4.7. Não me lembro se talvez fosse 2016. E estou meio curioso sobre o que é GraphQL, porque estamos falando muito sobre isso com Faust.js. O que o GraphQL oferece que talvez as pessoas não conseguissem obter com a API REST que está no núcleo do WordPress?

Joe Fusco: Sim, sim, ótima pergunta. GraphQL permite, eu diria o mais importante, sem entrar muito no que é GraphQL, mas apenas moldo seus dados como você deseja. Então posso decidir, ei, só quero que X, Y e Z sejam retornados do WordPress. Posso enviar uma solicitação que tenha apenas essas coisas na ordem que desejo.

E o GraphQL por meio do plugin WP GraphQL fornecerá isso exatamente no formato que eu desejo. Portanto, não preciso filtrar um monte de boatos em uma resposta. Isso pode ser como REST. Há muitas coisas extras lá.

Doc Pop: WordCamp US, mencionei no início do programa, o WordCamp US está chegando, no que diz respeito à gravação, é na próxima semana. Estou apenas curioso para saber, em primeiro lugar, se você está planejando ir para o WordCamp nos EUA e se as pessoas podem entrar em contato com você lá. E em segundo lugar, se haverá alguma representação de Faust ou GraphQL lá, como no estande do WP Engine, ou talvez novos anúncios sobre isso.

Joe Fusco: Sim, sim, certamente. Então, com certeza irei para o WordCamp US. Muito animado com isso. Este será o meu segundo. Acho que meu outro foi na Filadélfia em 2015. Mas sim, estarei lá, ficarei feliz em responder a qualquer dúvida, estarei no estande da WP Engine. Haverá outras pessoas comigo, acredito que sejam Jeff Everhart e Jordan Maslin, então definitivamente venha e diga oi e escolha nossos cérebros.

Doc Pop: WP Engine costuma ter ótimos ganhos. Não vi nenhum, mas vai haver algum adesivo ou algo assim para Fausto? Não sei se essa comunidade ainda tem sua própria marca.

Joe Fusco: Então, não acredito que teremos neste momento adesivos específicos do Fausto. Eu sei que haverá outros brindes lá, mas sim, estamos no começo de apenas começar a marcar Fausto um pouco à medida que ele amadurece.

Doc Pop: Sobre esse assunto, se as pessoas estão interessadas, se estão ouvindo isso e estão interessadas em Fausto, o que talvez seja uma boa coisa para elas aprenderem sobre isso e mergulharem um pouco para Experimente?

Joe Fusco: Adoraríamos receber todos vocês, qualquer pessoa interessada em experimentar. Eu diria que a melhor maneira é simplesmente visitar nosso site, faustjs.org. Você pode ir até a seção Primeiros passos e ela o guiará por um de nossos projetos de exemplo, onde você pode simplesmente configurá-lo com um único comando e colocá-lo em execução e ver como os dados fluem e funcionam lá.

Doc Pop: Para esse projeto de amostra, ele é baseado na web. Você sabe se é o mesmo que WordPress, acho que se chama, não sei se é sandbox do WordPress, mas como o tipo de versão web online do WordPress onde você pode experimentá-lo sem realmente hospedá-lo. Vocês estão usando a mesma coisa aí?

Joe Fusco: Portanto, não temos nenhum WordPress Playgrounds configurado em nosso site atual, mas isso é algo que estou analisando pessoalmente e também estou pesquisando. Então, eu tenho uma Code Pen que poderia compartilhar depois disso, com um link que tem o plugin Faust WordPress configurado com GraphQL no WordPress Playground.

Então essa é definitivamente uma maneira rápida de verificar o lado WordPress das coisas.

Doc Pop: No site que você acabou de mencionar, as pessoas também podem encontrar um link para o GitHub? Ou deveríamos fornecer a eles um link rápido para isso também?

Joe Fusco: Sim, posso adicionar um link para isso, mas sim, GitHub é WPEngine.Faustjs, e ele abriga nossos pacotes NPM e o plugin WordPress, então venha e dê uma olhada,

Doc Pop: Faremos mais uma pausa rápida e, quando voltarmos, encerraremos nossa conversa com Joe Fusco sobre Faust.Js, GraphQL e Headless WordPress, então fique ligado logo após este breve quebrar.

Doc Pop: Bem-vindo de volta ao Press This, um podcast da comunidade WordPress. Sou seu anfitrião, Doutor Pop. Hoje estamos conversando com Joe Fusco sobre Faust.js e algumas das coisas que estão por vir. Já conversamos sobre o pedido de comentários. Já falamos sobre sair oficialmente da versão beta. Já falamos sobre o WordCamp US. E acho que a última coisa que quero perguntar ao Joe é que estou sempre curioso quando há novas tecnologias como essa, se há maneiras de eu vê-las na natureza.

Existem bons exemplos que você possa imaginar de Faust.js sendo usado em estado selvagem para as pessoas brincarem, ou pelo menos apenas ouvirem sobre a história de como ele está sendo usado.

Joe Fusco: Sim, com certeza. Então, estamos muito felizes com a quantidade de adoção que Faust está conseguindo até agora. Tanto é verdade que até o WP Engine agora está utilizando Faust e hospedado em nossa plataforma Atlas. Então, definitivamente dê uma olhada, veja como é extremamente rápido e sim, é muito legal.

No faustjs.org, estamos planejando adicionar uma pequena seção de demonstração que destaca alguns dos sites incríveis que usam o Faust atualmente. E sim, um deles é nosso site principal, WPEngine.com, também na plataforma Atlas.

Você não precisa estar no WP Engine para usar o Faust. Só quero esclarecer isso. Pode ser usado com qualquer tipo de plataforma. Mas sentimos que o Atlas é o melhor ambiente para o Fausto ser hospedado.

Doc Pop: E não falamos sobre Atlas em particular. Você quer identificar rapidamente a diferença entre Atlas e Fausto?

Joe Fusco: Sim, então Atlas é a estrutura headless do WP Engine. Então é assim, se você deseja hospedar um site WordPress, e o lado do Node, a próxima etapa, Atlas é onde você deseja ir. Há também várias outras ferramentas oferecidas com isso, como o Atlas Search. É muito poderoso, com muitos recursos incríveis incluídos e sendo desenvolvidos ativamente.

Doc Pop: Bem, esse é um ótimo lugar para encerrarmos esta conversa com Joe Fusco. Se quiser saber mais sobre Faust.js, você pode acessar faustjs.org. Você também pode encontrá-los no GitHub. E tenho certeza que se você procurar no Twitter e em outros lugares, também encontrará pessoas falando sobre isso.

Doc Pop: Obrigado por ouvir Press This, um podcast da comunidade WordPress no WMR. Mais uma vez, meu nome é Doc e você pode acompanhar minhas aventuras com a revista Torque no Twitter @thetorquemag ou pode acessar torquemag.io onde contribuímos com tutoriais, vídeos e entrevistas como este todos os dias. Então confira torquemag.io ou siga-nos no Twitter. Você pode assinar Press This no Red Circle, iTunes, Spotify ou pode baixá-lo diretamente em wmr.fm todas as semanas. Sou seu anfitrião, Doutor Popular. Apoio a comunidade WordPress por meio de minha função no WP Engine. E adoro destacar os membros da comunidade todas as semanas no Press This.