Podchaser Logo
Home
Episode 188 - Unlocking WordPress: Exploring the powers of WPGraphQL

Episode 188 - Unlocking WordPress: Exploring the powers of WPGraphQL

Released Sunday, 3rd March 2024
Good episode? Give it some love!
Episode 188 - Unlocking WordPress: Exploring the powers of WPGraphQL

Episode 188 - Unlocking WordPress: Exploring the powers of WPGraphQL

Episode 188 - Unlocking WordPress: Exploring the powers of WPGraphQL

Episode 188 - Unlocking WordPress: Exploring the powers of WPGraphQL

Sunday, 3rd March 2024
Good episode? Give it some love!
Rate Episode

Episode Transcript

Transcripts are displayed as originally observed. Some content, including advertisements may have changed.

Use Ctrl + F to search

0:04

Welcome to a new episode of

0:06

Frontend Happy Hour podcast. We

0:09

are on episode 188 and have

0:12

not done a dedicated episode

0:14

on WordPress. I am amazed.

0:16

I can't believe we haven't done

0:18

this. So I'm really excited to

0:21

actually dive into it. I've spent

0:23

a lot of years throughout my

0:25

career building on WordPress, you know,

0:27

building websites, applications, themes, plugins,

0:29

whatever it be, but it has been

0:31

many years since I've touched it. And

0:34

so in this episode, we are joined by

0:36

Jason to help us talk through insights about

0:38

WP GraphQL. And

0:41

so we're going to learn more about the APIs

0:43

around WordPress. And yeah,

0:45

that will be a fun topic to dive into. Jason,

0:48

do you want to give an introduction of

0:50

who you are, what you do, and what

0:53

your favorite Happy Hour beverage is? Man, yeah,

0:55

my name is Jason Ball, creator

0:58

maintainer WP GraphQL, which is a free

1:00

open source WordPress plugin that provides

1:02

GraphQL API for WordPress. I'm

1:06

principal engineer at WP

1:09

Engine, where I work on

1:11

open source software, primarily

1:13

WP GraphQL, but we have other open source

1:15

projects I help with, like a

1:17

front end for a next

1:19

base framework called Foust

1:21

JS. So I

1:23

help a little bit with that and then

1:25

maintain some extension plugins for WP GraphQL, like

1:27

WP GraphQL for advanced custom fields, for

1:30

example. But and then my favorite

1:32

Happy Hour, I don't drink alcohol, so

1:35

I'll go with Dr. Pepper, that would

1:37

be my favorite beverage. Right

1:39

on. I mean, that's the thing too, is like,

1:41

I feel like more and more people aren't drinking alcohol. So

1:44

it's like, this is good. So

1:46

having various beverages of choice is

1:48

great. All right. I only

1:50

have Cole and myself, but Cole, do you

1:53

want to give an introduction? Hi everyone. My

1:55

name is Cole Turner. I'm a software engineer

1:57

at Netflix and I've had a few encounters.

2:00

with WordPress when I was in college. Nice.

2:03

Yeah, it's a great platform. So I'm

2:05

excited for that. And I'm your host

2:07

Ryan Burgess. This episode

2:09

is sponsored by our friends

2:11

at porkbun.com. It's named the

2:14

number one domain registrar by

2:16

USA Today. Porkbun is an

2:18

excellent domain registrar for tech

2:20

professionals offering domain extensions like

2:22

.app, .dev, and .foo. The

2:25

best part is you get the great

2:27

pricing, only $1 for

2:29

the first year for .app, .dev,

2:31

and .foo domains. Which if

2:33

you're like me, if you like

2:35

to register a domain for every

2:37

great idea you have, Porkbun can

2:39

help with that. Free with every

2:41

domain, you get Whois privacy, SSL,

2:43

certificates, web and email hosting trials,

2:46

and more. Why pay for things

2:48

you don't need and should get

2:50

for free? Backed by professionalized five-star

2:52

support, 365 a

2:54

year, Porkbun has a simple user

2:57

interface you can manage everything about

2:59

your new domain from one place.

3:01

Get .app, .dev, or .foo domains

3:03

at Porkbun for only $1 for the

3:05

first year. Well, let's dive

3:07

into WordPress. Maybe let's start actually, like

3:10

I was gonna start and say like

3:12

what's WPGraphQL, which we should get to,

3:14

but even let's get a baseline of

3:16

like if someone hasn't used WordPress,

3:18

like the three of us have, which is awesome,

3:21

what is WordPress? Like how do we even define

3:23

that? Let's start there. Yeah,

3:25

I mean, yeah, WordPress is a

3:27

content management system. So it's a

3:30

web-based application, right? It's where users

3:32

can log into it and they can

3:34

publish content. It powers somewhere

3:37

in 45-ish percent of the web

3:39

right now. So pretty

3:42

much any...there's a good chance

3:44

on a daily basis you're visiting a site

3:46

that is powered by WordPress. Some of the

3:49

top sites, you know, publishing

3:51

sites like

3:53

NASA actually just relaunched on WordPress,

3:55

like NASA and their

3:58

science website, things like that. So,

4:01

yeah, it's a open

4:04

source CMS, so developers can download

4:06

it and extend it and write

4:08

code to do whatever they want.

4:10

There's a massive plugin ecosystem for

4:12

it. So you can kind

4:14

of turn it into whatever you need it to be

4:17

for your project. But yeah,

4:19

it's all web-based and yeah, let's

4:21

use this direct content and publish it to web. Yeah,

4:23

and I think that's a big thing too, what you

4:25

hit on is like the plugins. It's

4:27

extendable. You can write themes, you can download

4:29

themes, you can download plugins, integrate it, write

4:32

your own. I think that's what's been so

4:34

powerful with it. It just gives a lot

4:36

of flexibility for people to do what they

4:38

want with it. Yeah, so it's, it has,

4:41

I'm surprised. I didn't realize how much of

4:43

the web is taken over by WordPress. I

4:45

mean, I'm not surprised, but like didn't really

4:47

realize how much is being

4:49

used by WordPress. But I have

4:51

seen it leverage for so many things. Even

4:53

just, there's things that I've had to do

4:56

with it over the years that I didn't

4:58

even think possible. Like it was

5:00

like, why are we extending WordPress so hard?

5:03

But it's cool to see what you can do with it. On

5:05

that note, I guess, let's say it's me

5:07

and I haven't used WordPress in a while.

5:10

What are some typical use cases for

5:12

a developer to choose WordPress over something

5:15

else? Yeah, so

5:17

I think access is a big one. It's, first

5:20

off, it's free, right? So if you have

5:23

limited resources or whatever, like you

5:25

can just go download it and start using it. It's

5:28

very, like we talked about, there's a massive plug-in ecosystem

5:30

so you can extend it to do almost

5:32

anything you can imagine. Like it

5:35

can do, is it necessarily the best job? Maybe,

5:37

maybe not, I don't know. But like it can

5:39

do it almost certainly. So access

5:41

is a big one. Cost

5:43

is a big one. They say

5:45

it's free like a dog, right? Like you get

5:47

a dog given to you, but there is cost

5:50

associated with it still. So it's not like, it's

5:52

not like truly free,

5:54

but like the software itself is you can

5:56

start prototyping with it with no cost to

5:58

get started. But Yeah, I

6:00

think those are some big ones. There's access to

6:02

it and the limited, you know, reduced

6:04

cost of getting started with it. So that's

6:06

a big thing. And

6:08

then yeah, like 40 something percent of the

6:10

web is using it. So there's lots of

6:13

examples out there of like, oh,

6:16

I want to accomplish this. Can it be done

6:18

on WordPress? Well, here's an example. Yeah, of course.

6:20

So yeah, yeah. Yeah,

6:23

I mean, it's been around for years

6:26

too. Like the adoption is high. It's

6:28

grown significantly in, you know, bettering, making

6:30

it a lot easier for people to

6:32

leverage. You can have it hosted for

6:35

you. Like a lot of hosting platforms

6:37

have it available for you. Obviously WordPress

6:39

itself is available to just have it

6:42

online and leverage that. But

6:44

you can also host it yourself. You can move it,

6:46

migrate it wherever you want to put it, which

6:48

is pretty cool too and really flexible. Yeah,

6:51

I would say the community and documentation is

6:53

huge too, right? Like, so if you do

6:55

feel like you're stuck, if

6:57

you're working on some custom application for a

7:00

company and they're the only company running that

7:02

software, if you get stuck, it can

7:04

be hard to get out of that, right? But

7:06

with WordPress, high chance

7:09

somebody else has run into the same situation

7:11

even Kerrigan can help you, right? So the

7:14

community and documentation is massive. I feel

7:16

like it's one of

7:18

the most documented pieces of software out there

7:20

in my opinion. Both good and bad, because

7:22

there's outdated docs too and can kind of

7:24

send you down the wrong trail sometimes too.

7:27

Or there's bad docs or whatever, but it

7:29

is very highly documented. If you're searching

7:31

for something, you're gonna find somebody

7:34

else who's written about it. So that's a

7:36

positive, I think. I love

7:38

that. Because I think about where I started

7:40

in my career. I did a lot of

7:42

WordPress very early on because of exactly what

7:45

you're saying, Jason, where if you're

7:47

running into use cases you've never built before,

7:50

they could be old, they could be new, they

7:52

could be all over the place, but it's good

7:54

to have options and it's good to have other

7:56

people's work to influence your work. And I think

7:58

that is where we're going. WordPress is a

8:00

great tool for many people who are

8:04

across different skill sets because you

8:06

can do that customization as you need to

8:09

see it fit or potentially maybe

8:11

you don't need all that and you get a lot

8:13

out of the box for free. Yeah,

8:15

great points. Well, let's move

8:18

to WP GraphQL. All

8:20

right, what is WP

8:22

GraphQL and how does it differ

8:25

from traditional APIs from WordPress? Yeah,

8:28

so typically when you think of WordPress

8:30

as being a content management system, it's

8:32

what the word monolithic is thrown

8:34

around a lot. So it does everything, right?

8:36

It's one piece of software that does the

8:38

content management, but it also does the presentation

8:41

of the website for you. It has a

8:43

template system and all this stuff, right? So it's

8:46

monolithic meaning one big application

8:49

and a lot of

8:51

organizations find themselves investing

8:53

in training folks that produce content

8:56

and they want them to continue using WordPress because that's

8:58

a big cost, right? I

9:00

used to work for a newspaper publisher and we

9:02

had hundreds of people trained to publish content in

9:05

WordPress. So switching off of that

9:07

would be a massive investment, but the

9:09

front end, what's

9:12

presenting the content on

9:14

the front end, WordPress doesn't always make sense

9:16

to do that. We had native iOS

9:18

and Android apps, for example, and

9:21

you're not running PHP on phones. So like

9:23

having a WordPress template as an iOS app

9:25

doesn't make sense. So you need

9:27

to get the data from the CMS.

9:29

So we have the folks trained

9:31

to publish content, but we

9:34

need it for the web, of course, but

9:36

also for native iOS and Android apps, but

9:38

also for print. Like it's a

9:40

web first world, right? We're publishing stories on

9:42

the web and then preparing it to print.

9:45

So having access to

9:47

the data outside of how it's

9:49

rendered for the web was an important

9:51

thing. So WordPress

9:54

has a REST API, which is the REST

9:57

APIs are like an

10:00

app. endpoint per resource is kind

10:02

of how it works. So you would hit an endpoint like,

10:04

you know, your WordPress site slash posts,

10:06

and you would get a list of

10:09

posts or slash post ID one, you

10:12

know, and that'll give you an individual post.

10:15

So WordPress has that arrestful

10:17

API built into it since

10:19

I think 2015. And

10:22

we use that when I was working in the newspaper, like

10:24

I said, and we were using that pretty heavily, but we

10:26

ran into a lot of problems trying

10:28

to scale it. That's

10:31

largely because if you think of even just

10:33

like an individual newspaper article,

10:35

right? That's a lot

10:37

of resources to make one article. You have like an

10:40

image, which is a separate resource. You have

10:42

the author who wrote the article, which is

10:44

a separate resource. You have the

10:47

categories and tags that it's categorized in.

10:49

You possibly have image galleries, which are

10:51

another list of resources. You

10:53

have comments maybe on the article, which

10:55

are different resources. So just to publish

10:57

one article page, you're talking like

10:59

lots of resources and hitting an API

11:02

for each of these resources. Typically,

11:05

arrestful APIs will

11:08

give you a full resource and then

11:10

IDs to related resources. And

11:12

so you have to wait for the first

11:14

resource to come back, get the IDs, make

11:16

references back to the other resources, sometimes get

11:18

IDs to other resources. And so you're making

11:20

this like what they

11:23

call, maybe callback hell, right? And

11:26

so we were using arrest

11:28

APIs to do stuff, like I said,

11:30

our native iOS and Android apps, but

11:32

also to like syndicate content to other,

11:34

we had a network of like 50

11:36

something newspapers across the US. And

11:39

so if Denver Post, for example,

11:41

published an article about the

11:43

Broncos winning the Super Bowl or whatever, then maybe

11:46

some other cities wanted

11:49

to subscribe to that news. And so we

11:51

were sending data from one side to another

11:53

or pulling it from one side to another.

11:55

So those systems were

11:58

getting pretty complicated to scale. using

12:00

the resource-based APIs. And

12:02

so around that time GraphQL was open source by Facebook

12:05

when I was working on the newspaper. I was like, oh, this

12:07

looks like it might solve some of our problems. Because

12:11

GraphQL, you

12:13

can build it in a way where you

12:15

can consume multiple resources in one request. And

12:18

I was like, that would solve at

12:20

least some developer problems, right? Like of

12:23

us consuming all these APIs and having to wire

12:25

it together on our end as the consumer. So

12:28

if we could do it on the server and then

12:31

each of our applications could specify what exactly

12:33

they need, our iOS app could ask for

12:35

exactly what it needs in a request where

12:37

it makes sense. So

12:41

I started tinkering with it and proven it

12:43

to some of my colleagues. And then we

12:45

went ahead and production with it not

12:48

too much later in replacing most of our REST

12:51

API usage. So

12:53

that's kind of like the story of it. But yeah,

12:55

so GraphQL differs from REST in that you can, it's

12:58

a type-based system. So

13:00

everything in your application is

13:02

described as a type. So a post,

13:04

for example, in WordPress would be an

13:07

object in GraphQL, an object type.

13:09

And it would have fields like the title

13:12

and the date. And then it can have

13:14

what's called connections to other types in the

13:16

graph, right? So a post

13:18

can have a connection to author and

13:20

images and categories and times. And

13:23

so as the consumer, the person building the

13:25

iOS app, for example, they can write

13:27

a query, a GraphQL query, and

13:30

they specify exactly what fields they want

13:33

to be returned. And so

13:35

the client has full control over what they get,

13:37

and they can do a lot of, you know,

13:39

connected resources in a single request.

13:43

And so from a client perspective,

13:46

like the consumer getting the data, it usually

13:49

is a much more pleasant experience. And when

13:51

things go wrong, which it's software, things will

13:53

go wrong with REST,

13:56

you just know something on that endpoint went

13:58

wrong. And that could

14:00

be a thousand fields on that endpoint. It

14:02

can be a little tricky to debug sometimes.

14:04

With GraphQL, since you specify exactly what fields

14:06

you need, it can be a

14:08

little bit easier to identify when something goes wrong.

14:10

Oh, it's that exact field. And you

14:13

can start doing things like tracking how fast

14:15

each field responds and things like that,

14:17

and start figuring out like the granular

14:19

details of your application. So it solves

14:21

a lot of problems, I think. And yeah,

14:24

hopefully that covers

14:27

it. I like that a lot, actually.

14:29

Good explanation of it. I mean, it makes

14:32

a ton of sense. It's a similar thing

14:34

with anything that we've seen with REST API,

14:36

right? It's not scalable. I mean, it is.

14:38

I shouldn't say it's not scalable, but it's

14:40

like, yeah, GraphQL has just made it so

14:42

much simpler and more scalable and

14:45

more customizable, right? Depending on like that

14:47

iOS client, that Android client versus the

14:50

web, it's like you really get to

14:52

choose, but use that same dataset, which

14:54

is huge. It's funny hearing

14:56

you talk about like, REST even being

14:58

introduced to WordPress. That came, like you

15:01

said, like 2015 or something. I

15:04

was doing something similar at Evernote. The

15:06

task was I was supposed to integrate

15:09

in the Mac client, the iOS and

15:11

Android, and I think the

15:13

web, but they wanted a lot of

15:15

the content. It wasn't like all, obviously

15:17

all of Evernote's content, but some of

15:19

these like notifications and content was coming

15:21

from WordPress. That

15:24

was before REST even existed in WordPress.

15:26

There was a lot of hacking on

15:28

our end to get that to work. Just

15:31

seeing how much it's evolved is amazing. The

15:33

fact is, is like GraphQL didn't exist at

15:35

that time, but if GraphQL had existed, it

15:38

would have made it a lot simpler for

15:40

each of the clients to decide really what

15:42

was the information needed. I

15:44

love your explanation on that. I'll also add,

15:47

I love that we're talking

15:49

about REST versus GraphQL, but in the

15:51

context of WordPress and newspaper

15:54

type websites or other type

15:56

websites like blogs, even

15:58

Evernote and... newspapers are kind of

16:00

similar in the sense that it's a lot of unbounded

16:03

content of different varieties. So you have

16:06

like text, you have images, you have

16:08

media, and this is supposed

16:10

to flow in between the actual website

16:12

itself. And so mixing these different mediums

16:14

is a perfect use case for something

16:17

like GraphQL because different clients can take

16:19

out parts of those mediums that is

16:21

more useful for that client. And

16:23

in the case of like the New

16:25

York Times or some

16:28

other newspaper, when you want

16:30

to make sure that your experience

16:32

is performant, using something like

16:35

WordPress and GraphQL is a great fit

16:37

because it is one

16:39

request resolving many different varieties of

16:41

subjects. And to have

16:44

that be over rest could be, for

16:46

example, 100 different rest calls. And if

16:48

one of those calls fails, the rest

16:50

will just kind of topple over because

16:52

as Jason was saying, you don't have

16:54

those connections anymore to infer on. With

16:57

something like GraphQL, you have less

16:59

of that performance issue where

17:01

you're resolving one big batch

17:03

of requests and you're

17:05

not making multiple round trips between the server

17:07

and the client. So in many ways, it

17:10

makes sense that GraphQL is a great

17:12

fit for this type of user experience

17:14

where it allows you to really

17:17

optimize your performance and tailor each

17:19

client to its needs. I

17:21

will say there are trade-offs, right?

17:24

So rest, when we talk about rest not

17:26

being scalable, quote, unquote, it is obviously, and

17:29

we know it is, but it can be

17:31

frustrating for sure. But what

17:33

one upside rest has is that since

17:35

it is resource-based, it's easier to cache,

17:37

right? So like if you have

17:40

an endpoint for one object, well,

17:42

whenever that object changes, it's easy to

17:45

invalidate that endpoint. So GraphQL

17:47

being an open one endpoint

17:49

to access everything, like

17:53

that's a lot more difficult to cache, right? It's

17:55

like, oh, this is tricky. So

17:57

there are trade-offs to stuff like that. solutions

18:00

though. Like I maintain a plugin

18:02

called WP GraphQL Smart Cache, which you can add

18:04

on to WP GraphQL. And

18:08

then a lot, like my host,

18:10

my employer, WP Engine, we, we

18:13

support like edge caching for

18:15

GraphQL requests. So you can,

18:17

you can query whatever you want, whether

18:19

it's posts or users or taxonomy terms

18:21

or images or whatever you want. And

18:24

Smart Cache plugin, what it does, it tracks

18:26

those IDs and it tag it sends back

18:28

headers in the request. Or sorry, in the

18:30

API response, it sends back headers

18:33

that identify what was asked for in the request

18:35

and what was resolved. And then that can

18:37

be tagged in the cache. And then it

18:39

listens for events in WordPress, like editing

18:41

a post or publishing a new post or deleting

18:43

a post. And then it can

18:45

purge any GraphQL query response from the

18:47

cache if it was impacted by the action.

18:50

So it, it brings back some

18:52

of the benefits of caching a REST API,

18:56

but you get the benefit of the flexibility

18:58

of GraphQL. So it brings back

19:00

some of the stuff that if

19:02

you research like caching GraphQL, you'll read

19:05

a lot of arguments on like, Oh,

19:07

you can't cache it, whatever. It's

19:09

more difficult, but there are solutions and

19:12

we at least have provided some on our side. So,

19:15

yeah. And Jason, my assumption

19:18

there too, the fact that it is

19:20

a plugin is it's probably

19:22

pretty straightforward to integrate into WordPress. Am I

19:25

wrong to say that? Yeah. Yeah.

19:27

So it's a, yeah, it's free on

19:29

the wordpress.org repository. Just search WP GraphQL,

19:31

you can activate it. And then immediately

19:33

what happens when you activate it, you

19:35

get a graphical IDE. If you've ever

19:37

used GraphQL, you probably

19:40

have played with the graphical IDE. So it's just

19:42

an IDE where you put a query on the

19:44

left side and you click the execute button and

19:46

get the response on the right

19:48

side. So you get that in the WordPress admin

19:50

to start playing with. But then

19:52

you just get a GraphQL endpoint and then it's up to

19:54

you to do something with the data, right? Like it, it

19:58

Provides the API for you, but it doesn't. I

20:00

don't do anything with it, credit and let

20:02

you. Do. Something with it sorted. It's really

20:04

a developer two or. More

20:07

than like a lot of wordpress. Planes are like. You.

20:10

Do something you know it's like at it as some

20:12

you why we can drag and drop something or whatever

20:14

written this just as a way for you to access

20:16

data an A in a different way. Of

20:19

are just as A. I love that

20:21

because thinking about my experiences with Wordpress,

20:23

I remember a sewing plugins and it

20:25

was never just like plug and play.

20:28

You install plugin and you spend hours

20:30

tinkering with the settings, making shirt matches

20:32

your environment or third different needs that

20:34

you have by even just reading the

20:37

documentation and hear what you're describing. Jason

20:39

Wp Graft You all is well documented.

20:41

It handles a lot of use cases

20:43

like all the different entity ties that

20:46

you have to select from. I've even

20:48

see. It handles. Authentication.

20:50

And authorization debugging. and six just have

20:53

a solution that you plug and play

20:55

and you can actually get started to

20:57

use it. I think a lot of

20:59

developers listening to this can consider Wordpress

21:02

and Gabi Crap Wp to well as

21:04

something that they can just get started

21:06

with in start building with Vs. Here's

21:08

another plugin Years Yet another solution that

21:11

might even like lock them in. Yeah.

21:14

But. I have one of the one I'm

21:16

most common use cases where haven't like of user

21:18

for announced so I came from unique story like

21:20

in the newspaper were your suitcase data and house

21:22

or to snuff out of the guess like the

21:24

common. Use. Of gruff twelve like.

21:27

I'm. But. The the more common

21:29

like with frameworks like Next becoming you

21:31

know. On the rise the

21:33

it's already popular but it's country ski more

21:36

popular I'm and then you know the of

21:38

your smelled them you know. Knocks.

21:40

With view and all these all these

21:42

frameworks everybody wants to stuff in Javascript

21:45

and components right? Components make sense to

21:47

think a lot of people's brains fly

21:49

in. Ah, and especially if you're

21:51

on big teams working on big projects as

21:53

the site. Having. One

21:56

component that. can do everything

21:58

it needs to do usually stuff would

22:00

include styles, markup, and interactivity

22:02

all in one component. So

22:05

a lot of folks are trying to build component-based websites

22:09

or applications. And so

22:11

GraphQL lends to that very nicely. We

22:15

have a framework, like I mentioned, at WP

22:17

Engine, it's called Faust.js. You go to faustjs.org,

22:19

so that's F-A-U-S-T. But

22:22

it's like what we call a meta-framework

22:24

built on Next. And it

22:27

allows you to build Next sites, and

22:30

it works with WP GraphQL, but it does a

22:32

lot of cool stuff that you lose when you

22:34

go headless with WordPress. So WordPress

22:36

has the template system

22:39

built into it, but it's all PHP-based, right?

22:42

And so for folks that do wanna take advantage of

22:45

component-based architectures, they can

22:47

build their React components, couple

22:49

it with a GraphQL query, or what's

22:51

called a fragment in GraphQL. You can

22:54

specify just the fields that

22:56

this component needs, and

22:59

then you can write your markup and your styles

23:01

or do tailwind classes or whatever you're doing. And

23:06

then you can bring those

23:08

components in with other components, and then GraphQL

23:10

goes and gets the data for all of

23:12

your components at once. So

23:14

it's a pretty cool experience for folks. But

23:16

I think that's the most common use case

23:18

is folks building component-based front ends

23:21

right now, and I think it

23:24

lends very perfectly to that. I'd

23:26

also be curious, like we'd mentioned that, yeah, it's

23:29

a plugin, so that's awesome. It sounds like you

23:31

can integrate fairly easily. Can

23:34

existing blog

23:37

sites or whatever, like someone using WordPress for

23:39

five years and they have a lot of

23:41

data, is it hard to integrate?

23:43

Do they have to do something different or is

23:45

it pretty much like, well, you have all this

23:47

data, now you're just gonna be accessing it a

23:49

little bit differently? Yeah, so I would say it

23:51

would depend, right? If you're a, it

23:54

is a developer tool, right? So

23:57

if you're not comfortable interacting with APIs.

24:00

are making fetch requests to get data from API,

24:03

there's going to be a learning curve, right? A

24:06

lot of folks are coming from the

24:08

JavaScript ecosystem, and previously maybe

24:10

have said no to WordPress-based projects, but now

24:13

they can say, oh, I

24:15

don't have to be a PHP expert, right?

24:18

I can set up a couple plugins, and

24:20

I can get the data out into JavaScript

24:22

component architecture, with probably

24:25

not having to write much or any PHP.

24:28

There's going to be cases, depending on how a customer

24:30

project is, like you're probably

24:32

going to have to extend it, and you might have to know

24:34

some PHP or get somebody who does to help you or whatever.

24:37

But there's a lot of folks that can write

24:39

100% JavaScript and be very

24:41

successful using that now, so you don't have

24:44

to be a PHP or

24:46

WordPress expert in every

24:48

case. But it

24:50

is very much a developer tool. Like the

24:53

small business owner who just wants to click

24:55

and drag and drop stuff is probably not

24:57

for them. Will

24:59

it be maybe someday? Maybe. Maybe under

25:01

the hood it'll be used by tools

25:03

that do that, right? Like page

25:06

builder type of tools that are

25:08

built using components that have GraphQL

25:12

associated with it, but the business owner himself

25:14

probably wouldn't be the one using

25:16

GraphQL unless they're a very tech-savvy person.

25:20

I have a question, Jason. Would you describe

25:22

what we're talking about right now as sort

25:24

of a server-driven UI approach? Yeah,

25:26

I would call GraphQL... You

25:32

have the front end and the back end,

25:34

I would call GraphQL like the middle end,

25:36

right? It's basically what GraphQL does, you have

25:38

a schema and you describe all your types,

25:40

so you say this is all the types

25:42

of data that are possible. But

25:44

I don't describe... Like the GraphQL schema

25:46

doesn't describe how the things should look,

25:49

it just says, here's the data that's

25:51

possible. And so the front end still...

25:54

The front end, whoever's building the components still

25:56

ultimately decides what the UI looks like,

25:59

but they can see what's... possible to populate

26:01

that UI with by using tools

26:03

like Graphical to see what's in the schema. So

26:06

a lot of organizations

26:08

I've seen do what's called schema first development.

26:10

So you'll have your front end developer and

26:12

your back end developer come together or your

26:14

product owner, whoever it is, they'll come together

26:17

and they'll have a rough design and whatever

26:20

Figma or whatever software you're using to design these

26:22

days. And they'll say, this is

26:24

what it should look like. Does API support

26:26

that already or not? If it

26:28

does, cool, they can start building and

26:30

you can start mocking it out, right?

26:32

Like you can just populate your component

26:34

with mock JSON data and then your

26:36

back end developer can go, you

26:38

know, add fields as needed to

26:41

the schema to actually populate it. And

26:43

then all you do is get away the mock data and

26:45

put your Graphical query in and it's working. Right?

26:47

So, so it's like this kind of meat

26:50

in the middle approach where you say like, do

26:52

we already have this data? If not, okay, back end

26:54

developer, you need to go add that support front end

26:56

developer. You just need to make sure this shape of

26:58

data works with your component. Jason,

27:00

that's been huge too, right? Like that's

27:02

something that we've found, like

27:05

being at Netflix, that was something

27:07

we're using a lot of GraphQL.

27:09

And that was something that was really beneficial

27:11

in that, like, let's build those contracts between

27:14

back end and front end and being able

27:16

to, you know, agree upon that

27:18

and understand each other, what you need to do.

27:21

And you can kind of go off and create what you

27:23

need to create. And as long as you've followed

27:25

that, it works really well.

27:27

And so I've seen a lot of benefits to

27:29

like almost, you know, productivity gains where you can

27:31

actually collaborate a lot easier between the back end

27:34

and front end. So I'm glad you called that

27:36

out because I think that is a true benefit.

27:39

Yeah. And what, like what

27:41

I mentioned, we have a lot of JavaScript developers

27:43

that are, you know, attracted to this.

27:46

And you mentioned Kohler earlier, maybe before we

27:48

started recording, but advanced custom fields you used

27:50

in the past. And that's

27:52

a very popular plugin, which My

27:55

employer also owns WP Engine also Advanced. We'll

27:57

go ahead and talk about that. So

28:00

they feel that really complain with

28:02

them. Wordpress where you can. You.

28:04

Can create was com field groups seeking

28:07

the hands of the to have you

28:09

noticed the other email fields or whatever

28:11

passing the fields. your image uploader gallery

28:14

feel like all sorts of different types

28:16

of feals and you can just with

28:18

clicking buttons without having the know Pete

28:21

Pete you can fill the was in

28:23

wordpress for how to manage different types

28:25

content. And. Recently, probably since you've

28:27

used that, they added the ability to

28:29

register post types and taxonomies through a

28:31

desk as. Soon. As.

28:34

Much. As as posting pages out of

28:36

the box right as. But if you

28:39

want other things which most sites need

28:41

other things right light houses or cars

28:43

or you know, products are you know

28:45

whatever shoes or whatever you're managing enough

28:47

ah if ask us feel lousy the

28:50

say like who I want to manage

28:52

cars around a man's houses are only

28:54

use wordpress to manage x, y or

28:56

z other types data. See. Can

28:58

add those types? Just. I couldn't

29:01

a few buttons and now I maintain that we

29:03

pick up to have recess. Now.

29:05

Which which ties the together so you'd have to

29:07

be to tell him. And eight. Figures.

29:09

out what feels you have the advanced feals

29:11

and it brings for to the graft your

29:14

skin as well. And.

29:16

So. Is pretty cool experience eating her

29:18

with graduate Not like these fragments like

29:20

a mention which are like pieces of

29:22

query. Site. If you had

29:25

a little restaurant for example when you needed

29:27

to have list of types of food. You.

29:29

Can. Add support for managing

29:31

food v advanced as some fields and then

29:34

he could add your feals at me like

29:36

a price I'm a picture and. The.

29:38

Calories or whatever it is You know that you

29:40

need a putting all the ingredients. And.

29:43

Then just just by quick and some buttons

29:45

and then you could go see that in

29:47

graphical and you know and consume it with

29:49

draft. Well so javascript developer to do all

29:52

this. Without. Having a new any

29:54

pets V and then they could go build

29:56

their front end with components using craft your

29:58

fragments to say like. Wow. Component

30:00

that shows a list of ingredients. right?

30:03

And has a prominent the most headquarters

30:05

realism ingredients on. A food

30:07

type in the grass and so he also

30:09

you can simply saw this article about. A

30:12

code so. Like Wordpress is getting

30:14

to point. Where. Some low code. Kevlar.

30:17

Cms right? So you as a front end

30:19

developer can. Can. Do you from

30:22

and work he saw me to get be a developer on

30:24

that side of these are now I don't have any. Tools

30:26

at the moment that. Would. Lie to

30:29

be completely. The point and click.

30:31

Here. To. Bowl such but yeah

30:33

I mean supposedly there are tools were

30:36

a I Can Generate Frontier Web Applications

30:38

by I'm I'm still skeptical as us

30:40

and I do love what you're saying

30:42

though in terms of the plug and

30:44

play nature of all these tools. because

30:46

you already have a great platform like

30:48

Wordpress which can do so much and

30:50

a lot of developers were listening to

30:53

this, have used Wordpress and so now

30:55

it's great to know that they can

30:57

just add on these plug and play

30:59

tools like Wp Graft you well, advanced

31:01

custom fields, fast. J as to get

31:03

an even bigger, more richer platform. And

31:05

I love how we're talking about even

31:08

just like scheme of First Development because

31:10

it's Ride with Say at Netflix. That's

31:12

how we've gotten back and engineers and

31:14

print and engineers to speak the same

31:16

language. But as you're describing the ways

31:18

in which is a Pr, it's just

31:20

unblock you. He don't even

31:22

need to be a Phd expert. You can

31:24

work in the language is that you're comfortable

31:27

with and evolved your platforms with these plug

31:29

and play tools to do even so much

31:31

more. And I love that. I think like

31:33

for a lot of people figure out where

31:35

to start, work hard to build that next

31:38

website that even more richer tools like this

31:40

could really help. Yes, I also

31:42

like that you brought up the front and

31:44

aspect of it too because you're not

31:46

necessarily having to learn how to build a

31:49

full back. And for someone like Save Your

31:51

Does building. Like us for a client or

31:53

whatever that may be in and you don't

31:55

have the resources to have a dedicated back

31:58

and engineer some the like Wordpress, Gives

32:00

you so much control and then also on

32:02

the admin side for that. You know client

32:04

that like I need to add you know,

32:07

different shoes to my website or you know

32:09

restaurant needs to add different types of things

32:11

available to the for customer to order and

32:14

it's like they can do that. They have

32:16

that control they don't care. Liked about the

32:18

technology I'd they just want to be able

32:20

to be flexible or not. but then you

32:23

if you're the front an engineer skill yeah

32:25

that's taken care of for me and then

32:27

I can really focus on you know, scaling

32:29

up the front and making it a little

32:32

more custom for that client. I gotta love

32:34

that it's it's really taking the tooling to

32:36

that next level. Unity. I

32:38

mean girls of the similar upsides to

32:41

a commission. For the reason we even

32:43

started it was some frustrations with rest

32:45

and like when when things went wrong

32:47

not known was going wrong. And

32:49

the that's a big part to especially like

32:51

a couple of based development these days when.

32:54

When. Something in your application fails. You

32:56

don't want to know disliked For your

32:58

application this failing, you're like, whoa, What

33:00

part Specifically right? Like that. That

33:03

makes your job easier if you know

33:05

exactly what is failing and so being

33:07

able to like breakdown faced with component

33:10

level or components ask for specific things

33:12

and. And then grabbed your return.

33:14

Exactly what you ask for when something

33:16

does go wrong. In. My opinion, it's

33:18

a lot easier though. troubleshoot and identified

33:21

and six it. So for

33:23

the front end developer who maybe isn't a

33:25

wordpress experts stuff will go wrong like us

33:27

to software that the you know there could

33:29

be a plugin update that breaks and thing

33:31

like it could be.tick off to put him

33:33

up later could be not a plugin updates

33:35

in also like something you can go wrong

33:37

at some point. But. If you're

33:39

if everything's broken down to individual components, it's.

33:42

Often. Is easier in my

33:44

opinion. Thirty. Titan. Fi what

33:46

it is and gets a roulette resolution quicker.

33:48

Also, even just the told practice of the

33:51

said earlier jason is that. Almost.

33:53

half the or let is running on wordpress

33:55

oh yeah something does go wrong chances are

33:57

you're going to be up guys out of

33:59

where it went wrong for some help. I

34:01

think back to my experience with WordPress and

34:03

as soon as you start to become more

34:05

custom back in the day you used

34:08

to run into a wall but with tools

34:10

that you're describing today it sounds like these

34:12

are paved paths that help users almost

34:14

coalesce to each other's use cases but

34:17

I also think about like even the

34:19

maturity of some of this stuff where you

34:22

know I think to the past where I

34:24

was encouraged not to use WordPress because people

34:27

I was working for were afraid that my

34:30

software would look like someone else's software and they'd

34:32

be able to attack my software but

34:34

what you're saying is no it's matured to

34:36

such a point where there's

34:39

clarity there is observability into some

34:41

of these issues and by componentizing

34:44

our software development it

34:46

makes everything reusable it makes things

34:48

more predictable and I love that

34:50

I think that's awesome yeah there's

34:53

a lot of we have I don't know

34:55

if I can share any of their sites

34:57

but there's a customer that uses WP GraphQL

34:59

and they build headless Nux sites which is

35:01

like the Vue version of

35:04

Next.js right and they have

35:06

a bunch of Webby Awards for like

35:08

they're like these super creative like almost

35:11

makes you think of like the flash

35:13

days where everything was animated and stuff's

35:15

moving and you know like you would

35:17

never ever guess that they're WordPress sites you

35:19

know what I mean like they're completely custom but

35:21

all the data is the people

35:23

publishing the content still want to use a CMS

35:25

they're familiar with right they don't want to get

35:28

trained on some new system but the

35:30

front end looks completely different

35:32

than anything you've ever seen you

35:34

know so I

35:37

love that you just called that out Jason

35:39

like it is that too is because so

35:41

many people are using WordPress they may have

35:43

like from the publisher side of things they're

35:45

used to that they're used to that editor

35:47

having to learn a new tool is frustrating

35:50

and also if you want to completely

35:52

overhaul the site and make it more

35:54

interactive or do something that

35:56

doesn't change for the admin side of things that

35:58

doesn't change for them publishing, that's

36:01

just data that continually gets published, but

36:03

you can completely overhaul and change things

36:06

from the developer perspective and what the

36:08

user actually views, but that data doesn't

36:10

change. And I think that is really

36:13

cool to call that out. I think just

36:15

wanted to highlight that. Yeah, speaking

36:18

of that, the concept of having like

36:20

multiple front ends for the same back

36:22

end, like when

36:24

I rebuilt my front end

36:26

for wpgraphical.com, for example, at

36:28

one point I was just on a traditional WordPress site

36:31

because I needed something up fast, right? So I was

36:33

like, I'm an API, but I'm

36:35

just gonna build in a monolithic WordPress. But

36:37

on the side, I started building a

36:39

front end. At the time I was working at Gatsby,

36:43

and so we were building headless front end in

36:45

Gatsby, which pulled in data. So I can

36:47

have my traditional WordPress site rendering on the

36:50

side, I'm building a Gatsby site that's pulling in data

36:52

from my WordPress, and then when I'm ready, I just

36:54

set the DNS, right? Like I can

36:56

have two sites rendering the same data. And

36:59

then when I decided to change from Gatsby to

37:01

Next, same thing, my Gatsby site is still being

37:03

served to users. I start building on

37:05

the side, my next site, right? I'm

37:07

not changing a single thing with how I publish my

37:10

work. You know, so like my WordPress

37:12

CMS is unchanged. Normally, like if you're

37:14

going to do a rebranding for a

37:16

site running on WordPress, it's a chore.

37:18

You've got to like, typically, you migrate

37:20

the whole database somewhere else, you activate

37:22

a new theme, you know, you

37:24

do all this work. And then

37:27

there's some day where you're like, hey, guys, don't

37:29

log in for 12 hours, right? We've got

37:31

to do a content freeze while we switch

37:33

everything over. It's like, you don't have

37:35

to do that anymore. Like, you know, to

37:38

the second you change the DNS, people could

37:40

still be logged in publishing content. And

37:42

your front end developers are just building their

37:44

components over here, and when they're ready, just

37:47

flip it, you know, from pointing the

37:49

front end to WordPress to pointing to a next

37:51

site or a spelt site or whatever

37:53

you're building in. Yeah, I think it also

37:56

makes it a little bit easier for managing

37:58

data across environments to like... If you have

38:00

a local environment, test environment,

38:02

staging, whatever, all the different

38:04

environments, it does make it

38:06

easier. I absolutely remember having

38:08

to change plugins

38:11

or themes or completely overhaul

38:13

a WordPress site and

38:15

you're dealing with people that are still, they're not

38:17

stopping their job, right? You're trying

38:19

to do it behind the scenes and

38:21

you're right. It was not necessarily easy

38:23

to do that. It wasn't the hardest

38:26

thing because there are ways in which

38:28

you can develop a theme and just

38:30

switch the theme. As

38:32

long as everything works, it was pretty seamless, but

38:34

I'm 100% with you is that if you

38:37

can abstract that even more, it makes it

38:39

that much simpler. You

38:42

don't have to have those down times because businesses

38:44

don't want down times. They're like, no, I want

38:46

to keep going. Also, as a developer, you don't

38:48

want to go, oh, well, I could do it

38:51

on the weekend or I can do it late

38:53

at night in the evening because no one's working.

38:55

That sucks too. Both scenarios

38:57

don't work that well. Yeah. Another

38:59

cool thing too that we've been

39:01

seeing in the JavaScript front end

39:04

ecosystem is Vercel,

39:07

for example, if you deploy something to Vercel, it'll

39:09

deploy every time you open a port request your

39:12

code base, right? Then what's cool is you can

39:14

go look at that preview URL. You

39:16

can look at your website at that state. You

39:20

can have two different PRs. One changes your site

39:22

from blue to purple and you can look at

39:24

your blue site and your purple site or whatever.

39:26

Then you can do cool stuff like add comments

39:29

to individual pages and stuff like that. There's

39:32

some really cool stuff that you can do. Normal

39:35

WordPress, you can't look at what your site

39:38

looked like yesterday or the day before. These

39:41

headless run-ins are building static assets of your

39:43

site at a given point in time. It's

39:47

pretty cool. It's like time travel through

39:49

your website development. Yeah, it's

39:52

pretty cool. I hope it

39:54

gets so funny because we're

39:57

basically almost describing the way in which technology

39:59

is... cyclical and I feel like that's a

40:01

theme on this podcast, but in

40:03

this sense, WordPress created a

40:06

development model that these technologies like

40:08

GraphQL came back around and

40:10

made better. And WordPress is

40:12

reaping the benefits of this iteration

40:15

and innovation because now separation of

40:18

concerns is becoming better. And when

40:20

it becomes better, developers no

40:22

longer have to proliferate their changes

40:25

throughout one code base. You

40:27

have your headless CMS over here,

40:30

you have your API over there, and

40:32

that separation of concerns as you're

40:34

describing Jason makes things more reusable.

40:38

And what I love most about this,

40:40

and maybe I'm just kind of getting

40:42

caught up in the moment, but it

40:44

really democratizes development in my opinion. It

40:47

enables developers of all ranges of

40:49

skill to come in and start

40:51

with WordPress, add an API

40:53

with WP GraphQL. And

40:55

then to build their front end in such a way

40:58

that you don't have to be a WordPress expert anymore.

41:00

You can be a front end expert, you can be

41:02

an API expert, or you can be a WordPress expert.

41:06

And I just think it's cool

41:08

to see how technology continues to

41:10

improve on itself. Yeah. And

41:13

like you said, stuff is cyclical too. I

41:15

think like CMS is like web

41:18

used to be fairly static, right? There's like

41:20

HTML pages that you would upload via FTP.

41:22

And like if you want to make a change, you

41:24

got to go like change the HTML and upload a new file. And

41:27

open Dreamweaver. Yeah. And

41:29

so like, like the performance was probably pretty good,

41:31

right? It was like these static files that, you

41:34

know, there wasn't server logic in between is just

41:36

like, here's your file, man. So

41:38

now, but the CMS is like, oh, that's hard.

41:41

Like we need to solve that. But then at

41:43

the cost of okay, now it's dynamic. Now the

41:45

server's taking a hit every time people load your

41:47

page. And then there's like caching that got figured

41:49

out and whatever. But

41:52

now we're back to static. We're like a

41:54

very popular way to build sites with

41:56

Next, for example, is to output static

41:58

files. user hits, they're

42:00

getting a static asset from

42:03

Cloudflare or whatever, and there's

42:05

no server being hit. And

42:07

so, we're back to that point where

42:10

you can use a CMS though, but

42:12

like wp-graphical.com, for example, is

42:14

all static. You're getting 50, 60

42:18

millisecond responses or whatever. It's not hitting

42:20

a WordPress server. All my data or

42:22

a chunk of my data is in WordPress. I

42:24

have multiple data pool. Some of my

42:27

docs are marked down files in GitHub, but

42:29

then my marketing pages and blog posts are

42:31

in WordPress. So, it's like multiple data sources

42:33

come together and make one unified front end.

42:35

That's another cool part

42:38

about APIs and components

42:40

and stuff. So, we're back to that

42:42

point in web development where it's

42:44

a static file that the user is getting served 20

42:46

years ago, but

42:49

there's the dynamic nature. I can go hit

42:51

publish in WordPress. It invalidates next

42:54

cache, next rebuilds the page on

42:56

demand and creates a

42:58

new static file. So, my users are

43:00

always getting that static response,

43:03

50 millisecond responses,

43:07

but they're seeing up-to-date data. So, I

43:09

could go publish a new post and you'd be

43:11

able to see it within a couple seconds, but

43:14

the file is static. So, it's

43:17

a really cool step of

43:19

cyclical, but we're coming up with new solutions to

43:22

get to the same end result that we used to have. I

43:26

love it. Yeah, it's so

43:28

great. I mean, I love going down this

43:30

journey and just learning the updates on WordPress

43:32

because it has changed significantly and quite frankly,

43:34

made it a lot better for developers and

43:37

end users. I'm

43:39

curious, before we dive into our

43:41

picks, I'm curious to know, what

43:44

are some advice that you would

43:46

give someone wanting to leverage WPGraphQL?

43:50

How would they get started? What

43:52

are things that they can maybe avoid making

43:54

mistakes with? Yeah,

43:57

sure. So, yeah, like anything,

43:59

there's... There's trade-offs with

44:01

any technology, right? So like we mentioned,

44:03

one of the benefits of GraphQL is

44:05

being able to fetch multiple

44:07

resources in one request, right? But

44:10

there's a cost to that too, right? It's

44:12

not magic, right? The server still

44:14

has to get these resources and put it. So

44:17

there is a tipping point, and it's not

44:19

the same for everybody. It depends on your

44:21

other plugins you have and what type of

44:23

data you're asking for. But there is a

44:25

tipping point when asking for too much data

44:27

is too much data, right? So

44:31

be cautious, just because you can doesn't

44:33

mean you should, right? So like at

44:35

some point, you probably still should break

44:37

up your GraphQL requests into multiple requests.

44:41

Not always, it doesn't mean like every time

44:44

you fetch two resources should be two queries.

44:46

Like that's not the case, but you

44:48

shouldn't be creating for like 500,000 posts with

44:51

their authors and their terms and their comments like

44:53

all in one payload. That doesn't make any sense,

44:55

right? So use your brain a little bit too

44:59

and just be like, when I do this

45:01

outside GraphQL, would this make sense outside GraphQL,

45:04

right? And if not, then it might not make sense

45:06

in GraphQL too. It might be easier to do, but

45:09

you maybe shouldn't do it too. So

45:11

there's things like that to consider. Also with

45:14

like caching validation, like we have solutions

45:16

for caching validation, but the more

45:18

data that you query, the

45:20

more actions will be tied in validating that

45:22

data too. So like having a balance of

45:24

like getting the data that

45:27

you need, but also what does the user need,

45:29

right? Does the user actually need a thousand posts on

45:31

the blog? Probably not, like

45:34

maybe 20. And then when they scroll, maybe

45:36

a load more button or infinite

45:38

scroll or something, you know? So just be

45:40

smart, like just because you can't

45:42

do it doesn't mean you should. So those are some

45:45

things you should think about. There are plugins

45:47

for, like I said, like there's caching

45:49

plugin, there's the GraphQL plugin for

45:51

ACF, there's all sorts of different

45:53

stuff, but WordPress is

45:55

massive. There's thousands of WordPress

45:57

plugins that do lots of unique things in WordPress.

46:00

And so there's definitely not coverage for everything

46:02

out there. So if you

46:04

need X, Y, or Z

46:06

functionality, the counterpart in

46:08

GraphQL might not exist yet. So you

46:10

might have to roll up your sleeves and

46:14

make a WordPress plugin work with the

46:16

GraphQL API. So that's

46:18

true with even with like the REST API too

46:20

or anything else. You

46:23

might have to do some custom work or find someone who can

46:25

help you do it. But

46:28

so there's things like that. You do

46:30

lose some things, like I mentioned, like WordPress

46:32

does have the whole template layer to it.

46:34

If you're building sites in traditional WordPress,

46:37

if you go with React or some other technology,

46:40

you have to do a lot of that yourself, right? Like,

46:43

so fast we try and help with that. I would encourage

46:45

you to check it out if you are building stuff in

46:47

Next. Like we do things like, at the

46:51

center of WordPress, whenever you visit a URL,

46:54

WordPress knows how to translate that URL to

46:56

figure out what type of thing it is

46:58

and return a template that matches that thing,

47:01

right? Like if you visit a user profile, like

47:03

on a newspaper, you see a list

47:05

of posts written by that user. So WordPress

47:08

knows that that URL represents a user

47:10

and should load a template of users

47:12

posts, right? Or if you visit the

47:14

homepage, it knows to load the homepage template. So

47:17

fast, like we have a we have a templating

47:19

system that works very similar to

47:22

WordPress so you can build

47:24

templates based on the URL that you visit.

47:26

Fast knows how to talk to GraphQL to figure

47:29

out what data it is and

47:31

then what templates should match. And then so

47:33

you can just in Next provide templates that

47:35

match and whichever one matches first so it

47:37

will load very similar to WordPress.

47:39

So a lot of stuff like that, headless

47:41

developers are trying to figure out on their

47:43

own. And we're trying to centralize

47:46

some of that. Like the stuff that

47:48

you lose by decoupling WordPress, we're

47:50

giving it back to you. But allowing

47:52

you to take advantage of cool stuff

47:54

like components that you can't do in

47:56

the traditional WordPress. So I

47:58

love that. Yeah,

48:01

I think also one thing I would add to

48:03

maybe not so much for WP GraphQL

48:05

as a best advice, but you

48:08

mentioned plugins. We've actually mentioned it quite a

48:10

few times in this episode is

48:12

one thing I've learned over the years

48:14

is use them sparingly. Like there is

48:17

so many plugins out there and you

48:19

can go and add way too many

48:21

plugins. I've had clients that want everything

48:23

and everything that can be customizable and

48:25

it just adds more complexity that

48:27

you may not need. So that's just one piece

48:29

of advice I would share. I would just

48:32

say after listening to this episode, if you're

48:34

not sure where to start, check out the documentation because

48:36

I was looking at, I've used WordPress

48:38

before, but I was looking at the documentation

48:41

for WP GraphQL and it

48:43

is comprehensive and it's presented in a

48:45

way that I think any developer can

48:47

pick up. And so I always recommend

48:50

starting off with documentation or examples and

48:52

there are plenty. We

48:54

just launched a new site last

48:56

week for the ACF extension too.

48:59

So acf.wpgraphql.com, still some stuff

49:01

in progress in there, but for

49:03

that particular extension, it's even more comprehensive

49:06

for just that one plugin. All

49:08

right. Well, that's a good time for us to jump

49:10

into picks. In each episode of the Front End Happy

49:12

Hour podcast, we like to share picks of things that

49:15

we found interesting, want to share with all of you.

49:17

Cole, you want to start us off? Sure.

49:20

Today I have two picks.

49:22

My first pick is Costco's

49:24

Kirkland peanut butter pretzels, which

49:26

are ironically in

49:28

my background right now.

49:31

And they're very good for when you need

49:33

a snack and I just, you'll see this

49:35

kind of disappear over the day. My

49:38

second pick is I recently moved

49:40

and my house doesn't have any

49:42

forced air at the moment. And

49:44

so I've picked up one of

49:46

these CO2 sensors from Aeronet. And

49:48

as you can see right now,

49:50

even just in this episode, I'm

49:52

in the yellow territory. This is where you start

49:55

to get a little bit like lightheaded, a little

49:58

bit like you've just exercised. And

50:00

so this is a great sensor for reminding me

50:02

when I need to open a window or go

50:04

on a walk after All

50:07

day sitting in virtual meetings right

50:10

on Jason. What do you have for us? Oh Man,

50:13

I don't think I can't prepare for this.

50:15

I'll go I'll say a stream deck. So I've got

50:17

a stream deck. I have This

50:19

little tool so I could do it's got buttons, you

50:22

know that I can press I can do things like

50:24

control my lights or whatever, you know

50:26

straight from here So I can

50:29

configure shortcuts and stuff to do things like that

50:31

I can even turn on lights

50:33

in other rooms and stuff like that

50:35

just from here or like control zoom

50:37

settings or whatever We'll go

50:39

with that Yeah, that's a

50:41

good one I definitely leverage that one

50:43

especially in meetings and things like that to

50:46

you can have like raising hand or mute

50:48

Unmute like there's is a really

50:50

customizable for what you want to do with it

50:52

Which is pretty cool and actually having physical buttons

50:54

is great. So that's a good one I just

50:56

have one pick for this episode. I Obviously

50:59

been doing a lot of photography for years

51:01

on my own I love seeing my kids

51:03

get into it. And so I purchased

51:06

two cameras for one for each of

51:08

my kids It's just like a small

51:10

point-and-shoot camera It's not an expensive one

51:13

at all, but it's been

51:15

really cool to see them just like using

51:17

them. They're shooting video They're taking photos and

51:19

you know, it's just it's been a really

51:21

cool thing So if people have kids want

51:24

a cheap point-and-shoot that works well I

51:26

will link that in the show notes, but it's it's been

51:29

a cool one to try out Jason Thanks

51:31

so much for joining us. This is amazing

51:33

I love taking a thank you for taking

51:35

us down the journey of WordPress and WP

51:37

GraphQL It's been great to learn a lot

51:40

on that. Where can people get in touch

51:42

with you? Yeah, so WP GraphQL calm, of

51:44

course like Cole mentioned that's where

51:46

the docs and everything are I'm on Twitter

51:49

at WP GraphQL or at Jason ball. J

51:51

s 1 b a h l So

51:54

you find me on or X calm? I guess

51:56

I still call Twitter. What's the agreement? Do we

51:58

call it Twitter? So I still call We

52:00

call it Twitter. Yes, definitely. No one knows what

52:03

X is. I call it Twitter until

52:05

I'm not calling it at all anymore. That's

52:07

fair. Yeah, exactly.

52:10

And then on the

52:12

WPGraphQL website, if you scroll all the way to the

52:14

bottom, we have a link to Slack community. So you

52:16

can join that from that link. We

52:18

have, I don't know, 3,000 or something people

52:20

in there helping each other out,

52:23

you know, building stuff with

52:25

WPGraphQL. So I'm pretty active in there.

52:27

Awesome. I love when there's a community

52:29

around like any certain technology because you

52:31

learn a lot from one another and

52:33

can get that help, which is great.

52:36

You can find Front End Happy Hour

52:38

at frontendhappyhour.com. We are now on YouTube.

52:40

We are recording these videos, which is

52:42

great for our episodes. So you can

52:45

find us on YouTube at Front End

52:47

HH, on Twitter. Yes, Twitter at Front

52:49

End HH. Any last words?

52:51

I'm on YouTube too. I forgot that. All

52:54

right. So just search WPGraphQL on there

52:56

too. Why are we not on TikTok? TikTok

53:01

might need to be the next thing, Cole. That is

53:03

like probably the next thing that we need to be

53:05

doing. I feel like TikTok

53:07

is the new Twitter. At least I'm

53:09

seeing a lot of tech start to proliferate

53:12

there.

Rate

Join Podchaser to...

  • Rate podcasts and episodes
  • Follow podcasts and creators
  • Create podcast and episode lists
  • & much more

Episode Tags

Do you host or manage this podcast?
Claim and edit this page to your liking.
,

Unlock more with Podchaser Pro

  • Audience Insights
  • Contact Information
  • Demographics
  • Charts
  • Sponsor History
  • and More!
Pro Features