The Changelog: Software Development, Open Source - The Great GatsbyJS (Interview)

Episode Date: July 18, 2018

From open source project to a $3.8 million dollar seed round to transform Gatsby.js into a full-blown startup that's building what's becoming the defacto modern web frontend. In this episode, we talk ...with Jason Lengstorf about this blazing-fast static site generator, its building blocks and how they all fit together, the future of web development on the JAMstack (JavaScript + APIs), the importance of site performance, site rebuilds, getting started, and how they're focused on building an awesome product and an awesome community.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at fastly.com. We move fast and fix things here at Changelog because of Rollbar. Check them out at rollbar.com. And we're hosted on Linode servers. Head to linode.com slash changelog. This episode is sponsored by our friends at Rollbar. How important is it for you to catch errors before your users do? What if you could resolve those errors in minutes and then deploy with confidence? That's exactly what Rollbar enables for software teams. One of the most frustrating things we all deal with is errors.
Starting point is 00:00:32 Most teams either A, rely on their users to report errors or B, use log files and lists of errors to debug problems. That's such a waste of time. Instantly know what's broken and why with Rollbar. Reduce time wasted debugging and automatically capture errors alongside rich diagnostic data We'll see you next time. Welcome back, everyone. This is the ChangeLog, a podcast featuring the hackers, the leaders, and the innovators of software development. I'm your host, Adam Stachowiak, editor-in-chief of ChangeLog. On today's show, Jared and I are talking about Gatsby.js with Jason Lengstorf. Jason is a developer advocate at Gatsby.
Starting point is 00:01:42 Gatsby is a blazing fast static site generator for React. And we talk about that term too, and how it applies to Gatsby and maybe even how it's misleading. We talked about their recent raise of $3.8 million, a seed round that takes them from open source project to full blown startup. They're hiring by the way. We also talked about the building blocks of Gatsby and how they all fit together. The future of web development on the Jamstack, which is JavaScript and APIs. The importance of site performance, site rebuilds, getting started, and how they're focused onatsbyJS raised a $3.8 million seed round is now a startup. GatsbyJS is a static site generator. And so the question that just leaves out of my tongue is like, how is a static site generator raising almost $4 million and going to be a big
Starting point is 00:02:44 business? Just amazing. Can you tell us how that went down? Yeah. So I don't have the specifics because I wasn't in on the fundraising, but what I think the difference is, is this is something we're struggling with at Gatsby right now is that static site generator, the word static is kind of ingrained in everybody's mind that it just takes something and it spits out HTML and that's it. And the reason that I think Gatsby was able to grow into a company that got venture funding is that most static site generators, you take some data, you process it, you spit out some files. What Gatsby is doing is a little bit beyond that on a couple fronts. So the biggest one is we're very
Starting point is 00:03:25 performance focused. When you build a site through Gatsby, we're going to automatically handle your code splitting, your minification, like all of the optimizations that need to happen, preloading in the background, image processing, so on and so forth. So that the site that you build without any type of manual performance tuning is already going to perform better than most as soon as you ship it. And that's even more important, you know, like we, I don't know if you saw, uh, here a couple of weeks ago, or I guess it was not that, not that long ago, there was a, an announcement from Google that they're going to start using mobile, mobile page performance as an indicator in search
Starting point is 00:04:06 range, your search engine rankings, which is, you know, that's going to be a big deal. And so that's something that Gatsby is, is very well suited to handle. The other thing that we do that I think is one of the reasons people are very excited about it. Gatsby is able to act as a universal data consumer. So we can take data from pretty much anything that it can expose a JSON object. We can take, you know, a database, we can take markdown files, we can take your, you know, any rest API endpoint. We can even take like an Excel sheet, like Google sheets, and we can consume that and we put it into a central data endpoint, like a GraphQL endpoint. And that means that developers, when they're working on a Gatsby site, they always have a really uniform surface to work on. They're working in React
Starting point is 00:04:56 and they're grabbing data from GraphQL. But what that means for content editors, when this is where we think the big change is, content editors, like the content team is working in WordPress. The, uh, the sales team is working in Salesforce. The, uh, you know, the, the developers are writing docs in Markdown and nobody has to change their workflow because Gatsby can consume all of that and make it so that the front end team is just able to build this amazing site. That's very uniform and, and, uh, and a completely cohesive experience, despite the fact that data is coming from all over the place. Um, so I think those are like our two key competitive advantages. And I think the reason that people are interested, um, and the other reason is just, I think our long-term vision, which is, is, uh, maybe a bit bigger of
Starting point is 00:05:40 a discussion, but just the ecosystem that we want to build around Gatsby as an open source project. So about a year ago, we had the Netlify team on the show talking about Jamstack and they're trying to get this term into the zeitgeist in order to have people move past the idea of static site generators, which I agree has kind of stuck in my mind, at least as like a very specific thing. That being said, you know, GatsbyJS.org does show, you know, a blazing fast static site generator is Jamstack something that you all are trying to align yourself with or is it? It absolutely is. So Kurt Kemple is one of our one of our our developers, and he is he's famous for making like silly stickers. Uh, at
Starting point is 00:06:26 one point he made socks with like Ken Wheeler from formidable labs, uh, his face on the socks, like the, just silly things like that. But he's currently working on a sticker that is just a jar of jam. And it just says Gatsby is my jam. Um, and it, which led us to having this conversation about like, can we make actual like fruit preserves and make that part of our swag? Cause it just seems like such a fun thing to do. Um, especially cause there's so many pun opportunities. Like we absolutely need to make the jam stack. So a box of like three jars stacked on top of each other. And then one of them is 100% going to be called the grape Gatsby. Come on. Like it's such a,
Starting point is 00:07:10 like all of my dad jokes can be funneled through swag at this point, which is about the best thing that I could have hoped for in a career. I think. Yeah. It's interesting. Now you're stealing my episode name ideas. So I'm going to have to come up with something else. Certainly is helpful considering all that,
Starting point is 00:07:28 that, uh, which may be where it stems from, but the color purple was your brand color. So, I mean, it's, it's a personal brand. Yeah. I mean, so it's actually, um, that had nothing to do with our decision-making. Um, we, we actually chose that particular shade of purple. That's, um, Rebecca purple, which was named after, uh, Eric Meyer's daughter. Um, so it's kind of a little homage to, you know, the stuff that he's done for the web and, and, uh, just, you know, uh, we, we were playing with brand colors and somebody came up with purple and we were like, well, we should use Rebecca purple. And we've kind of adopted that as like the core of our palette.
Starting point is 00:08:03 Wow. So you have big ambitions, the static site generators, open source projects, like things like these don't usually start with the big ambitions. Like sometimes it grows. Some people start with like huge ambition. Who's the fellow, Adam, who's doing Redox OS? Like someone who's like, I'm going to write an operating system in Rust. Like that is a huge ambition.
Starting point is 00:08:20 But somebody who's going to take, you know, some things and process them and spit them out in HTML. We've all I mean, many of us have kind of done that, like we were in our own little, you know, site generators. And so there's lots of these things. And maybe you weren't there for the for the genesis of Gatsby. But do you know, like, what was the initial ambition? I'm assuming it was because React was cool. But what got Gatsby started and got it down this path to where now it's able to have this big ambition of more than just an open source project? Sure. Yeah. So Gatsby was created by Kyle Matthews.
Starting point is 00:08:55 I think it's three years old now. And it was right when React and GraphQL were starting to be recognized. I think this predated Apollo. It was on the relay in GraphQL approach. So we've got all the graph terminology, the jargon, like edges and nodes and things like that. And then it was also because React created this really easy development experience. And Kyle at the time was working at another startup and was just trying to find something that let him have the, the good react development workflow that he liked without giving up all the control that, you know, a CMS would, would give him. And so he started just kind of
Starting point is 00:09:38 scratching his own itch and over time it expanded and expanded. And, and there was suddenly there was a plugin ecosystem and people were getting excited. And, and, and there was suddenly there was a plugin ecosystem and people were getting excited. And, and I think he just, he was very fortunate to have just backed two technologies at the right time to have a good influx of like early adopters to help push the project forward. And, and we had, you know, amazing input from people all over, like the Facebook team has contributed. The GraphQL core team has, has been involved in discussions. Um, there's, there's been a really, it was a really good, um, like an intersection of like, Kyle's a very good developer. The timing was great for the technologies that he chose and the community was ready for something that could
Starting point is 00:10:21 move beyond the limitations of something like WordPress. This is about the same time. I think I might have my timelines mixed up here, but this is about the same time that headless CMSs started to become something that people were like really interested in. So it was, it was just a lot of like good timing mixed with a solution that was flexible enough to, to adapt as people were coming up with newer and better ideas. Um, and, and, you know, now it's grown into, I think about the time V1 hit, um, it, it had just seen this, there was just this amazing core group. We had hundreds of developers at that point contributing to the Gatsby core. Um, and that's about the same time that, that Kyle started thinking, Hey, maybe this is like a business. And that was, I can't remember when V1 was released, but in 2017 was when they started, Kyle and Sam Bhagwat, who was the other, the co-founder, they started really talking about
Starting point is 00:11:17 this in earnest and shopping it around and talking to people about their broader vision to get Gatsby funded into a company. When you think about that, sure, okay, it's got great uses, but then you got to think about who's going to buy it. So a business is something that actually earns money from sales of some sort, right? So what is the sales for Gatsby, you know, the dot-com version, the business version? Yeah, so what we're trying to do with Gatsby is, like, Gatsby as an open source product is not really going to change. Gatsby is an open source product is
Starting point is 00:11:45 not really going to change. It's going to stay open source where the limitations of static site generators come in though, is that you're moving from this model where the user requests a page from a server and that server builds a page and sends it back. And you're changing to this model where now you have to pre-compile everything ahead of time. And when you're dealing with a small site, that's not a big deal. But when you start dealing with tens of thousands of pages or hundreds of thousands of pages, suddenly you're looking
Starting point is 00:12:11 at like these build times of, you know, five minutes, 10 minutes in extreme cases, we've seen like an hour to build a static site. That's totally fine if you're pushing to master and then you get to walk away and like the changes go live when, when CI completes. But if you're pushing to master and then you get to walk away and like the changes go live when, when CI completes. But if you're somebody who's editing content, like if you're a, if you're not a developer and you're editing this content and you need to push an article live, waiting an hour for your article to go live, to realize that you made a typo and then wait another hour for that change to go live, that's not really a feasible workflow. So what we're trying to do is we're bringing in some backend ecosystem, things that require server resources and things like that, to make sure that people have a ready-made system to
Starting point is 00:12:58 build static sites extremely quickly. And that's the part that we're selling. So we've got standard things like enterprise support contracts. So if you're building a Gatsby site, you can hire us. We'll come in and consult on architecture, et cetera, et cetera. Um, you can also event in the future where we're getting ready to launch an alpha. Um, we are doing cloud-based preview where effectively somebody who's non-technical will be able to edit a Gatsby site that's in develop mode. So when they make a change, they'll be able to see those changes live as they make them rather than having to install it locally and build the site. And then we also want to build an infrastructure that would allow for, you know, extremely fast rebuilds so that an enterprise client, you know, somebody who's got like a
Starting point is 00:13:45 Wikipedia sized page will be able to make a change and see that change go live near instantly. So you basically, we're trying to, to create the infrastructure that works around the limitations of statically building sites. So that puts you in competition with a, with a Netlify then, or? I don't think so because Netlify is solving a different use case. Like Netlify is an excellent platform for the vast majority of people who use Gatsby. We're, we're going kind of further along to very specialized use cases where you've got, you know, a huge team and you've got a lot of people on the team who are non-technical who need to be able to edit content and see that content live. So that's moving outside of what Netlify even does. That's, you know, now
Starting point is 00:14:28 you're, you're like running a server to the side of Netlify and when they publish, you could still publish to Netlify using this, this system. And then if your site grows to where you need, um, extremely fast turnaround, like one of the problems that, that you run into with Netlify is with a big site, they have a timeout and like memory caps. So if you've got a huge site, you'll hit their memory limit or you'll hit the timeout, which I think is around 15 minutes where Netlify is like, Hey, this exceeds what we're willing to deal with. And they just kill the container and then your build fails. And now, you know, you, you have to like start it again. You have to eliminate things and figure out what went wrong. And that just makes it a little more hostile to a large team development workflow where you don't necessarily want to have somebody who has to just babysit the build all day.
Starting point is 00:15:13 So we're kind of looking to provide a way to step beyond, like, Netlify is an excellent base use case. And then if you push it too far to one end, we want to have the, like the enterprise grade build a Gatsby site solution. So it's going to be highly tailored to us, highly tailored to using Gatsby. So, you know, it's, it's not something that we think Netlify is really going to be interested in doing because it's extraordinarily coupled to our particular platform. That makes sense. There, there's a lot of these generators out there, as I mentioned before, and then many of us, you know, cut our teeth on Jekyll. Um, some plenty of people still using Jekyll today, if you're publishing the GitHub pages
Starting point is 00:15:51 or even to your own site. I know for myself personally, I, my blog is still on Jekyll, which is why I don't write for it anymore because over time as I got enough markdown files in my repo, uh, it just took too long to, uh, to compile. And so like the writing processes became painful. And so that's my excuse for not writing quite so often.
Starting point is 00:16:14 Um, but when it came to speed, like Hugo, Hugo came around and I'm not sure exactly when he came out, which is a go based static site generator, which is blazing fast as well. I'm just trying to think of comparisons and like what makes Gatsby stand out. And so there are other blazing fast at excite generators.
Starting point is 00:16:30 And so to me, it seems like the big differentiator beyond that is the react and the graph QL is kind of these core components that are burgeoning and people are excited about. Have you found that a lot of like the blazing fast is nice to have and is definitely a feature but do you think people are coming for blazing fast are they coming for react and graphql well i i think i mean the answer to both is yes but i i think there's um there's a distinction that should be drawn hugo is a an extremely fast build um but gatsby is a blazing fast product so like the the build process for gatsby is actually slow that's something that we're actively working on but compared to competition like react static
Starting point is 00:17:13 hugo we're actually one of the slower build processes what the the blazing fast in gatsby's case is that we will um we've got such a finely tuned build pipeline, like the stuff that we're doing with web pack and code splitting and preloading and all these things. The site that comes out the other end is, is basically going to ace that lighthouse audit right out of the box. Uh, whereas a Hugo site absolutely can, you know, I, I use Hugo before I switched to Gatsby a little while ago and my Hugo site did pass the lighthouse audits, but I had to manually do that. My Gatsby site, I didn't have to do those manual tune that any of that manual tuning. It just did the stuff right away because that's what Gatsby is optimized to do.
Starting point is 00:17:58 So what's the stuff? So there, there are a few things that, that you're going to be expected to do to pass the Lighthouse audit. The first one is like you don't want any blocking scripts. You want to make sure that you're only sending render critical stuff down to the viewport. So basically not rendering anything off screen. You're lazy loading your images. You've got like the proper code splitting so that you're not loading CSS. It's not being rendered on the page.
Starting point is 00:18:24 You're not loading JS. It's not being rendered on the page. You're not loading JS. It's not being rendered right now. And all of this is possible to do with Webpack and various JavaScript modules. So what Gatsby is doing is it's pre-configuring these things. So we look at your routes based on your individual pages. And then we can tell, because it's React, When we do the static rendering, we know what's on the page, what's actually visible, and we can split the code accordingly so that you only receive like, even if your full page bundle would be, let's say like two or three megabytes,
Starting point is 00:18:55 we can send down 300 kilobytes total of HTML, CSS, and JavaScript that gets that initial page rendered. And then in the background, we'll load everything for your about page or your footer. That's not visible right now. Um, the images that are off screen, all of that stuff happens after you get to your initial paint, which means that the, you know, on 3g, um, the rule, the kind of the, the guideline that is put forth by Google is that if your site doesn't load in three seconds, you're going to lose 50% of your visitors. Um, on 3g, I think the last average that I saw was that sites are taking between like 12 and 16 seconds on 3g on average, a Gatsby site on the other hand is going to take
Starting point is 00:19:37 like one to five seconds, depending on how much stuff you're putting on the page. So it, and that's just what we've baked into the core. And obviously you can make decisions that will make your site slow. We've, we've seen some Gatsby sites that are scoring like zero on the, the lighthouse audit. And we've reached out to the authors to try to help them figure out what went wrong. But by default, if you, if you follow our recommendations and use the tooling that we've built, like our image handling and that sort of stuff, your site is going to probably score in the high 90s on Lighthouse by default. That's a nice bonus. Yeah, so that's the differentiation.
Starting point is 00:20:13 That's a heck of a distinction because when I see Blazing Fast Generator, I think the generation is fast. I don't think the end product is fast. Yeah, this is something that when we took the funding, we realized that our messaging was written for an open source project. We put no time or effort into it. So we're, we're trying to figure out how to explain this in a way that doesn't, um, like we, you know, we don't want to get hypey, but we also want to make sure that we're being clear about what we're saying. And like blazing fast is a, is it's true, but what do you want to make sure that people know how it's true? Because I, I've had like, that's a very common misconception that like when,
Starting point is 00:20:53 when Hugo is fast and Gatsby is fast, it's fast the same way. And that's actually very, it's a very different way of being fast. I'm just looking through some of the things you're saying here. You're saying future proof, at least on the.org. So you got.org.com.
Starting point is 00:21:05 So for listeners, you can see both those. Gatsbyjs.org and.com. .com is the business. .org is the open source. But you got future proof, progressive. I'm just looking at some of the adjectives you're using here. Scale to the entire internet. Talking about scaling your servers.
Starting point is 00:21:24 Speeding past competition. Well, not scaling servers. It's actually removing the need for servers. One of the things that we really want to do is because of the way that static sites work, you don't need a server. You can actually take an enterprise-level application that's run through Gatsby,
Starting point is 00:21:43 put it into an S3 bucket and use CloudFront or put it on Netlify or put it on whatever, any kind of CDN and host the whole thing with no servers. We just ran a case study on a company called, I think, Escalade Sports, that they were paying $5,000 a month in hosting. They reconfigured to use Gatsby with, I believe, Contentful as their backend and some Lambda functions to handle any backend processing that needed to be done async. And they went to a $5 a month hosting bill. $5,000 to $5? That's crazy. It was big enough that it surprised me too.
Starting point is 00:22:21 I was like, come on, that sounds made up, but it, it turns out that was, uh, they were paying for like these big bare metal servers to handle the server loads, uh, for like sale day launches. And when you go to a CDN, the CDN is paying for those big bare metal servers to handle traffic searches. So you, you're basically paying, you're already paying in your CDN fees for that kind of traffic. And typically most of us never use it. So, so basically we're all amortizing the cost of like big sale day launches for other people on the same CDN. Um, so yeah, it was, it was extraordinarily cheap for them once they, once they cut out the need for those, uh, those traffic resistant servers. This episode is brought to you by DigitalOcean.
Starting point is 00:23:23 DigitalOcean is a cloud computing platform built with simplicity at the forefront. So managing infrastructure is easy. Whether you're a business running one single virtual machine or 10,000, DigitalOcean gets out of your way so teams can build, deploy, and scale cloud apps faster and more efficiently. Join the ranks of Docker, GitLab, Slack, HashiCorp, WeWork, Fastly, and more. Enjoy simple, predictable pricing. Sign up, deploy your app in seconds head to do.co slash changelog and our listeners get a free 100 credit to spend in your first 60 days try it free once again head to do.co slash changelog so jason let's talk about some of these moving pieces i did go through the tutorial today and i npm installed gas bcli 211 packages from 105 contributors so uh good old-fashioned javascript open source just tons of tons of uh sand on the giants
Starting point is 00:24:35 sitting on the shoulders of many giants um the two i mean the three i would name would be react graphql and webpack um Are there any other huge moving parts that I don't know about that are dependencies? I feel like that's a better question to ask Kyle or Mike Allenson or Mikhail, I'm going to murder his last name, Pikowski, I think it is. They're the three kind of like core OSS maintainers.
Starting point is 00:25:02 But yeah, React, GraphQL, and Webpack, I would say are the three that are most notable. Yeah, and huge things I think make it stand alone in many regards to some of the other offerings out there. So let's zoom in on the GraphQL bit because as I went through some of the tutorials, I think this is the thing that stuck out the most to me as being like, oh, this is novel and different.
Starting point is 00:25:21 And you mentioned it earlier in the call, kind of in passing, where it's kind of this normalization of data access from like disparate sources in the file system, a CMS with a JSON endpoint, like all these different places. But inside Gatsby, when you're actually building your stuff out,
Starting point is 00:25:41 it's like this uniform GraphQL thing. Can you tell us, A, is that a correct assessment? And B, can you tell us more about it? That's absolutely a correct assessment. And I think this, if I had to take a guess on what gets people most excited about Gatsby and why they stay, um, it's, it's this, and it really, so I, um, prior to coming to Gatsby, I was a front end architect at IBM and one of my big pro I guess, like the big project that I did there was I rolled out a GraphQL layer to, um, one of IBM's products. And it was, it was amazing to watch the shift in velocity for teams that went from using like traditional multiple rest
Starting point is 00:26:27 endpoints to load data for UIs to using a centralized GraphQL service as the way to get data. It just fundamentally shifts the way that you build front ends because, you know, there's this context switch when you go from writing a bunch of async calls to load data, and then you're doing data munging, and then you're doing data munging, and then you're getting it somewhere where you can actually access it. That's a whole different set of critical thinking that breaks your flow when you're just trying to get data onto the screen. And so when we rolled out GraphQL as a service on these teams in IBM, we saw things that were taking six months, more than six months to build.
Starting point is 00:27:05 Suddenly these timelines compressed to like six weeks. And a lot of it was because the developers were no longer switching contexts. They were, they were looking at GraphQL. They would define the, I mean, GraphQL, the way that it's, it's easy to describe it. This isn't technically accurate, but you basically write an empty JSON object. And what comes back is just that JSON object with values attached. Um, there's more to it than that. There's a little more nuance in there, but, but fundamentally, like as a conceptual model, that's, that's how you're working. So the, the developers who are working on the front end, they just say, Oh, okay. So I'm building this UI. I need this data. They describe that data in a GraphQL query and then it's available and they, they can test this in a user interface. Uh, it's called graphical, um, or they can use, uh, uh,
Starting point is 00:27:51 the Prisma team has something called GraphQL Explorer, I believe, which is a great tool. Um, but you just, you do this right in the browser and then you drop that into your code and it just works. Like you're no longer writing, writing, you know, async request. You're not dealing with like any of the AJAX stuff that usually trips people up. It's a it's a really, really powerful thing to do. And so Gatsby takes that and kind of moves it to the next level, which is now instead of having to do all of that work of building a GraphQL layer in-house, you're able to do that through your build tool. So we have, I think the Gatsby ecosystem now is over 300 plugins. Many of those are source plugins. And so you can get, I think there's a, you know, there's a
Starting point is 00:28:38 Contentful plugin and a GraphCMS plugin and a WordPress plugin and a Drupal plugin so that you can at build time, pull in those, those endpoints and say like, Hey, I want all my WordPress data, or I want all my Drupal data that comes in and then shows up in a GraphQL endpoint. And you didn't, as a developer, you didn't have to do anything. You just went and found, you know, your, your API token for whatever service and drop that into our plugin. And now you've got it. Um, and the, the documentation on how to create source plugins is, is pretty straightforward. You know, I, I just had to create one for, um, Shopify's by SDK, uh, that was compatible with version two. And I think it took me, you know, like a couple hours because the,
Starting point is 00:29:22 the documentation is like, okay, get an object, drop in the object and all right, you're done. Um, and you know, there's nuance to that as well, but, but overall there's just, it just eliminates this whole category of what effectively feels like busy work when you're trying to build a UI. Um, and I think that's like, once you've worked that way, I, I recently, after, after using Gatsby for a while, went back and maintained one of the other sites that I built just for fun. And it's got this kind of like async like fetching layer that's pulling data from all these different places. And I was like, oh, this is a nightmare.
Starting point is 00:29:59 I should just convert this whole thing to Gatsby so I don't have to do this anymore. I feel like it really it really spoils you once you get in and just see how much nicer it is to work with. So in the case of something like Shopify or something like that, so you're saying that WordPress or pick your CMS or source of data, you can build a Gatsby site on your own, but use Shopify data and essentially build your own storefront with Gatsby. Yes, we actually just did this. One of my most recent projects was to build a swag store. So Gatsby, just like I just got the boxes today, got some t-shirts and everything.
Starting point is 00:30:37 And so we got custom t-shirts, custom socks, and we needed a way to get these out to contributors. So one of the things that we're trying to do is whenever somebody contributes to Gatsby, you know, we're now we're like a funded company. We want to make sure that like people know we really, really appreciate that. And the open source part of Gatsby is still super dependent on open source, the open source community. Because, you know, we're never going to keep up with, with demand for open source. So we wanted to give, like, come up with a way to give back. So I built a store using Auth0, Shopify, GitHub, MailChimp. And I think that was it.
Starting point is 00:31:16 And we we made it so that anybody who contributes to Gatsby gets automatically invited to be a maintainer on the org. So you can like review and merge pull requests and stuff because we want to give the power to the community. And then we also automatically qualify you to get a discount code to claim for a t-shirt or socks. You can, so through the Shopify store, like we built the store with Shopify, but then we pull in that data to Gatsby. And then I built just kind of like a really, really simple API that creates a Shopify customer to whitelist you. And so, yeah, you log in with Auth0. It's kind of, once you get into the authenticated part, it's just a React app.
Starting point is 00:31:58 Like Gatsby doesn't do anything there. It's basically identifying like, oh, once you get to slash account, it's a react app, let it be just a react app. Um, and then on the front end, we're loading in the, the Shopify products, displaying those, and you can add them to your cart, check out all the same way that you would through a Shopify store, but it's all being done through like a Gatsby react based website. Um, but yeah, that's, that's our, exactly our intention is to make it so that literally anything that exposes an API where you can, where we can get at the data, we can then consume and put into Gatsby so that you can build a static site out of that data. What happens at product modification time? So I'm thinking, thinking you know you say you have this exact setup maybe each
Starting point is 00:32:45 product each t-shirt has its own page on your site and so at build time gaspy would you know basically do the graphql query or whatever that middle layer is in order for you to write your graphql query and get the product information loop over those and generate a page what happens when somebody goes into the cms into the Shopify side and says, this is no longer for sale. Doesn't Gatsby have to rebuild in order to reflect that in the static side? Is there like a...
Starting point is 00:33:11 It does. And Shopify has webhooks. So we build... The Gatsby store right now is built on Netlify. And so I went into Shopify and hooked up webhooks so that whenever somebody edits the Shopify store, it triggers a rebuild for Netlify. So at the speed of like disabling or at the speed of rebuilding the Gatsby site, which that one takes a couple of minutes because it's pretty small, then the interface will update with whatever changes.
Starting point is 00:33:47 If it's incremental builds, though, and it's just content, you could probably skip over a lot of the other stuff that's like modification, munging, things that typically take CI processes, which you mentioned earlier. You know, a long time if you're at larger content site, like why rebuild the whole thing when you could just rebuild that fragment or that portion? That is exactly what we're working on right now. It's something that we've wanted to do for a long time, but we didn't have the space to do it. So funding gives us the ability to like dedicate people full-time to it. And we have a really like a great team of, um, open source people who are like working. We, we basically have a combination of like open source contributors,
Starting point is 00:34:23 full-time people at Gatsby and, uh, and a couple of contractors to solve specific problems. Like, you know, we hired, uh, we hired Tobias from Webpack to help us solve some key Webpack problems. And we're trying to use the funding from Gatsby to give back to the open source community. And like, we have a problem, cool, hire the person from that, that project and like pay them to solve a problem that, that makes their product better and helps us solve an issue that we're overcoming. I mean, to answer your question in a like in a single sentence, incremental building is ideal and we're working toward it, but we're not there yet. Who's competition for you? Like for one thing, it's a business now, right?
Starting point is 00:34:59 You graduated from open source to funded proving out a business model. It's like you are a business, but you're from what I can tell, you're not quite selling yet. So you're sort of proving the model of what to sell. So you're still in that, will we survive stage potentially? And you can answer yes or no to that. But once you get past that, like, do you have competition who competes with you? Are you, are you in a blue ocean?
Starting point is 00:35:21 Uh, it, I mean, I guess it depends on what we ultimately end up offering for sale. Um, it, it feels very blue ocean in a sense, because Gatsby has some maturity that a lot of other projects in the ecosystem just, you know, they just haven't been around as long. Um, that being said though, there's some really, really exciting stuff happening in the view space that is, uh, you know, we were seeing things come up that were like, oh, man, we should build that. So I think that we're going to see some stuff. I think like view press is one of them. e-commerce view platform that's, that's offering a really similar kind of solution to what Gatsby does that, uh, that's, you know, like we were like, oh man, that's also a really good idea.
Starting point is 00:36:11 So I think, um, we, there's not a ton of competition now, but we're seeing things coming out and like react static is an excellent tool. Um, there, uh, you know, we're, we're seeing, um, just some really, really fast builds and the stuff that Tanner's working on is, is really exciting. Um, so there, there's competition, but there's not formal competition. Like, I don't think there are businesses that are specifically pursuing, like, can we auto generate massively performance sites and like do this at scale? I think that that is a very,
Starting point is 00:36:47 very limited window though, because I think it's coming. Maybe this is more of a question for you, but then it is for Jason, but like, have you seen anything out there like Gatsby where it's like, Hey, we'll be the one way to build front ends and one way to build websites.
Starting point is 00:37:00 And you can get your data from anywhere. Is there anything else out there like this? I don't know. I haven't, I mean, everybody seems to be like coming to our camp whereas gatsby's like playing whatever sandbox you want to will just be your front end and the way you build your site and we'll be partnered with anybody pretty much out there rather than competition yeah i mean it might be unique it might be things that we don't know about. There are some companies that I think are doing similar things, but the, so like Apollo or Prisma are interesting models in the same way where they're like, yeah, we don't care where your data comes from. We just want to make it easy to use. Um, what I think is unique about Gatsby is that Gatsby is kind of spanning from the, like all the way in
Starting point is 00:37:41 the back, like how, how do we get data, um, all the way to the front? Like, here's how you display data. And I think most people are either doing one or the other. So I think it's, we're not unique. I think we just are in kind of a very niche space. So we, we do the same thing as some companies and the same thing as other companies, but I don't think there are any companies that do everything that we do same but different let's go back to this idea of the web hooks and the like re-triggering builds of course when you get your incremental builds out there then everything will be faster and and maybe you can even just you know have your site rebuild once every five minutes and you know what will come what may but and what about when
Starting point is 00:38:25 you're trying to integrate with a cms that doesn't have the hooks that a shopify has or a github has maybe i don't know if google sheets has the ability to like trigger a thing when you update the spreadsheet data are there situations where you're kind of hamstrung because you can't ping gatsby and say hey rebuild rebuild yeah And we tend to just solve that problem with like, uh, we solve it with a hammer, you know, we just set up cron job. Yeah. Um, it's, we're finding it's, it's not as common as we had feared to, to have sites that just like, don't play well with web hooks. Um, the, the thing that's really nice about the modern web is that I feel like companies are much more open to the idea of being part of an ecosystem instead of being the ecosystem.
Starting point is 00:39:13 You know, back in the day you would have like before WordPress made the decision to become a headless CMS in addition to being just a CMS, it was, it was kind of like, Hey, if you're going to use WordPress, you got to to go all WordPress. Um, and you would see the same thing with like Magento is kind of like that. If you, if you're going to use Magento, like your data's in Magento, your front end's in Magento. And I don't even think they, they might have plans, but I haven't seen like a Magento API so that you can get data out. Um, but then you look at it. If you're on Magento, you're probably never going to get off to Magento. That's where you are and that's where you'll live the rest of your days. But then in contrast, you've got companies like Shopify where Shopify is like, we don't,
Starting point is 00:39:52 we don't care. We're going to like handle your products and inventory and we'll like process orders for you. And if you want to display it through Shopify, great. Here's some tools. If you don't, great. Here's an API, a contentful graph CMS. Like they're all doing the same thing, these open CMSs.
Starting point is 00:40:07 And then on the back end, you've got things like Netlify, where Netlify is like, yeah, we want to host your stuff, but we don't care where it comes from as long as it's like files. to realize that like specialization and collaboration is really the trick because then we can all deliver one piece of a fantastic experience without having to also deliver every other piece of that experience. Cause you know, we've, we've seen it happen over and over and over again. You've got a thing that does one thing really well, and then you try to make it do all of the things so that you can be competitive in the market. And inevitably all of those other things suck or your main thing starts to suffer because you're converting too many resources to the other things. And that,
Starting point is 00:40:51 you know, I I'm really happy that that's no longer like a default business model. This seems like the, the ultimate sample it wherever you want kind of mentality where like, if this is the way you build your site, but you can get your data and things from anywhere else when you know, Shopify tanks, which it never will, of course course it's awesome it's ran by phenomenal teams but let's say it changes its business model to something you don't agree with and you want to move to
Starting point is 00:41:14 something else well you could probably do that so long as you're willing to do all the product movement stuff like that but just point your site to a different place for your data you can easily move to something new or sample the the modern way to do things. It seems, you know, it seems very logical, but it took a long time for somebody to come up with this idea of Gatsby. Yeah. I mean, it's, it's, I think one of those, those things, it was just like, it, it fit a need at the time when that need was capable of being met. But I mean, it like, it's, it opens such exciting possibilities. Like for example, you could, if you had a WordPress site and you just had years and years and years of WordPress content, but you wanted to migrate over to a new CMS,
Starting point is 00:41:56 traditionally you would have to find a way to do that migration. You'd have to like get a dump of your WordPress database and shape it to whatever the new CMS thing was. And of course, a lot of CMSs are going to offer that WordPress import. But with Gatsby, you don't even have to do that. You could just import the WordPress stuff and build it into your blog and then import the new CMS stuff and like new posts from that blog get built in the exact same place. And like, you know, time goes on and like, that's it. So it, it just opens these amazing possibilities where you don't have to throw away parts of your tech stack to do other things. You can, you can have a consistent web experience and completely change the underlying pieces,
Starting point is 00:42:38 um, without, without the introduction of tremendous tech debt. I mean, obviously there are ways you could create tremendous tech debt, but this is a, if well-considered, you can shave off a lot of, of migration paths and, um, and like huge projects to move old content. That's not really important, but is too important to throw away to a new stack just so that it can be archived there. You know, you've got some examples on your site. Is there any outliers or anybody that's maybe known to our audience, a very developer audience that is already using Gatsby to do some really cool stuff? Any, anybody that's like you'd mentioned a $5,000 hosting bill to $5, anything that's similar to that where they've been able to prove a lot of what you're saying? Uh, yeah, I think, I think a couple of cool examples,
Starting point is 00:43:26 like one that I love is the React docs are using Gatsby. And so they're doing things like using different Netlify branches or deploy previews as a way to show different versions of the content. So rather than having to build like a full separate instance of the site, they just grab a commit and that commit becomes like the frozen in time version of like the, the react version 15 docs. Um, another really cool example is that I think I, I hope I'm getting the name right. Escalade sports. Um, they built a site called Cajun bow fishing.com, which uses, um, I don't know if it's salesify or salsify, but it's, uh, it's like a product coordination thing. Um, I don't know,
Starting point is 00:44:15 it, it sounded very, very powerful. And, and I, it was clearly something that I didn't quite grasp how they did it, but coordinates product data from all over the place. Um, but so they, you know, they're pulling this like archive of data from all over the place and updating their site without having to rewrite a bunch of their backend. Um, or even like a kind of a silly example. Um, Ryan Florence of react router fame has recently started this business called workshop.me and he didn't really want to deal with a CMS. So he has people like submit workshops to him through a Google form that Google form puts the workshop data into Google sheets. He does minor edits and then rebuilds his Gatsby site using Google sheets as the data source. So he doesn't actually ever have to transfer data anywhere. People write down what they want to do.
Starting point is 00:45:09 He makes sure that he's cool with that being on the website and he hits a button and it goes live for him. So it's, it's kind of like, you know, use data the way that it fits into your workflow. You don't have to do these, these, you don't have to jump through hoops. You're not doing copy paste anything. You just keep it where it lives and put it on the Internet the way that suits you. now partner with Algolia. If you've ever searched Hacker News, Teespring, Medium, Twitch, or even Product Hunt, then you've experienced the results of Algolia's search API. And as we expand our content, we knew that one day we'd have to either roll our own search solution on top of Postgres, or we could partner up with Algolia. And I'm happy to report that phase one of our search is now powered by Algolia. We're able to fine tune our indexing,
Starting point is 00:46:05 gain insights from search patterns and analytics. We can create custom query rules to influence ranking behavior, as well as improve our search experience by adding synonyms and alternative corrections to queries. Sure, we could build search ourselves, but that would mean we would be busy doing that instead of shipping shows like you're listening to right now. Huge thanks to our friends at Algolia for working with us. Check the show notes for a link to get started for free or learn more by heading to algolia.com. So Jason, with all things surely it's not all rainbows and unicorns i know we've been talking about the stuff that gets excited and i'm excited about gaspy it seems like there's tons of potential
Starting point is 00:46:59 here but um being so close to it i'm sure you know all some of the warts some of the drawbacks some of the cons i want to provide the drawbacks, some of the cons. I want to provide a little bit of a balanced perspective here because we've been getting hyped up or at least I am personally listening to all the stuff that you can do, especially the GraphQL layer is really awesome. But where are some of the places where Gatsby lacks or there's holes or headaches in using this technology? Sure. I think like the places where we've been seeing the most struggles are, you know, what we were talking about with build times, that's probably the biggest, most obvious pain, um, as your site grows and as you see more and more content coming into
Starting point is 00:47:37 it, it, you just see the build times start to grow. Um, and sometimes we've been seeing them grow like non-linearly, which we're trying to figure out why. Uh, and we're, we've been seeing them grow like non-linearly which we're trying to figure out why uh and we're we've got a pr open right now where um kyle has he's calling it his hulk smash uh pr and he's just been working on a ton of different build time optimizations and we're seeing i mean it really is like a lot of improvement is coming but for the time being builds are still not as fast as we want them to be. Um, it can be difficult to use Gatsby on a mixed team. So if, if not everybody on the team is a developer, it can be challenging to work through some of the, the initial setup
Starting point is 00:48:18 so that people who are doing content are able to see what's happening when they edit that content. That's something that we're aiming to fix in the future. Um, that's going to be one of the, like the doc, like the Gatsby Inc, um, commercial products is going to be like, you get an account to preview things live without having to use any code. Um, another one that we're struggling with is, is some of the more advanced use cases. Like we don't have a good internationalization story. You can do it, but basically you're, you're rolling your own solution when you start doing internationalization in Gatsby. Um, and so we're, we're trying to figure out like, is that something that Gatsby
Starting point is 00:48:58 itself should have an opinion on? Like, should we have an official Gatsby internationalization plugin that solves that problem for you? And then, you know, when you get into the kind of the depths of our really like low level things, the documentation just isn't quite finished. But we're trying to, you know, that's a big focus of ours. We've got multiple people who are working really hard on docs. Like Shannon, um, is doing, uh, uh, Shannon Soper is, is managing like an information architecture overhaul of our documentation. She's finding the gaps in it and making sure that it's, it's actually meeting the needs of the people who show up on the site.
Starting point is 00:49:39 Uh, but in the meantime, it's, you know, you'll, you'll find some gaps. And if you get down into the low level APIs, you're going to be like, I have literally, I know, I have no idea how this works and you're going to find yourself reading source code to figure it out. Um, but so like a lot of it is, is edges that we haven't run into yet. Um, are still kind of like you, you cross that edge of the map and now it's, you're, you're like building it yourself edge of the map and now you're building it yourself. You're back on your own. And that's pretty standard for any sufficiently advanced use case, but some of them feel like they shouldn't be advanced use cases.
Starting point is 00:50:16 Internationalization should not be an advanced use case. We don't have a great accessibility story. We do the basics. We run the JSX accessibility plugin in our ESLint config. And, um, we're, we're trying to do things like that, but we're also trying to figure out like, uh, we were in talks with, uh, Leonie Watson about how can we make it so that when you navigate between pages, screen readers will actually announce that a page change. That's a pretty classic problem with single page apps is that when you navigate between pages using react router, um, there's no indication
Starting point is 00:50:49 to the person who's using a screen reader that the navigation is complete. They just have to like guess. And that's a problem. So we, we, we haven't solved that problem either. Uh, but it's something that we're working toward and it looks like, uh, Ryan Florence, I believe is working on something called reach router, which I believe solves that problem. So we're going to try to migrate over to that to have a better accessibility story inside of Gatsby as well. But yeah, I mean, it's like standard use cases, you'll probably be fine. When you start getting to the edges, you'll start to see where we just haven't had, we haven't had the time to, to work through a standard approach, or we just haven't had a chance to document things yet. I think the accessibility bit would be huge to bake that kind of stuff in, especially now that we have, you know, the Firefox dev tools added an inspector, you know, we'll have better auditing for these things
Starting point is 00:51:40 and accessibility is really hard to get. I mean, it performance is accessibility in certain ways, but, um, it's, it's a hard thing to do well and often. And so like the more that tools give us the ability to, you know, be winners and not losers in that you're going to empower a lot more people to have much better experiences. So that would be something that I think would definitely differentiate it. Um, yeah. And, and I think that we need to, we need to make that part of like the core technical, technical offerings that we have because we have amazing people out there, you know, like Leonie Watson that I mentioned before, we've got Marcy Sutton. Um, we've got like, there's this whole group of people doing amazing work in, in evangelizing accessibility, but the vast majority of us have probably not seen their talks. And those of us who have seen their talks,
Starting point is 00:52:27 the vast majority of us probably don't have time to implement all of those solutions. So if we can bake that right into the technology that we're shipping, like it's not hard to do, it's just time consuming. So we should make sure that we're making it as easy as possible for people to do this. Like that's our entire goal with Gatsby is like,
Starting point is 00:52:45 we want to make the right thing, the easy thing. And we've started by doing that with performance. And we're, we want to kind of expand that to cover additional stories like internationalization and accessibility. Well, now you have some runway.
Starting point is 00:52:57 Now you have some money to spend on these particular things. Tell us about that. Ever since the raise happened and the team has been expanding, what's the money being spent on how you expand in the team. Tell us about that side of things. Tell us about that ever since the raise happened and the team has been expanding. What's the money being spent on? How are you expanding the team? Tell us about that side of things. Sure. We raised, I think we officially closed the funding in late 2017. I joined up in March or maybe February. And we've only scaled so far to 10 people. We've got a few contractors that we're, that we've hired to help us solve very specific problems. So we're, we're trying to overcome a few different things. Like there's, there's the initial challenge of how do you take
Starting point is 00:53:36 an open source project and inject funding into it without alienating the open source community? Um, and that's one of the reasons why, like I'm putting such a big focus on, like, I want to make sure that the people who community, who are part of the Gatsby community and the open source community in general are just taken really good care of. Um, you know, the, the swag store is one of the ways that we're doing that. We just started a program where, um, me, uh, Kyle Matthews, Mike Allenson, Mikhail Pekowski, Kurt Kemple, we're all going to do community pairing hours where anybody in the community can ask for like just basically say, hey, I'd like to pair up with you for an hour. We'll get on a video call with you. And, you know, ostensibly, we're going to work on something Gatsby related.
Starting point is 00:54:23 But honestly, we just want to help people in the community. So what can, you know, what can we help with? Let's debug something. Let's get started on your first Gatsby project. Let's build something together to just try to like pay it forward into the community and give back because open source is the reason that we're able to do what we're currently doing. And we want to make sure that that like that goes back into the community and that we are spreading as much of that love and appreciation as we can back into the community, as opposed to becoming like a place where it's being soaked up. We want, we want the value to stay distributed. And then we're also trying to figure out like, how do we scale properly? You know, we, we started out by hiring
Starting point is 00:55:05 people directly from the open source community. Um, but that has like advantages. We've got people who are extremely familiar with how Gatsby works technologically. Um, but it has disadvantages like, you know, people who work on GitHub are predominantly white males. And so we have, have a disproportionately, uh, white male team right now. And so now we're trying to figure out, okay, how do we work with like underrepresented communities? Um, how do we make sure that we're reaching out to the right people? So we're, we've been in talks with, um, a lot of developers in Nigeria to try to figure out how to get into that community. Can we get contractors out of the Nigerian community? Um, we're in talks with, uh, a group in Portland where I live, uh, called women who code and we're, we're attempting to, um, like put together some workshops to,
Starting point is 00:55:58 to try to train. So I'm not, I'm going to run one workshop, but I'm going to have somebody from, um, from this group work with me as like a TA. And then the next time they'll lead the workshop and I'll work as a TA. And the third time I'm not going to be there at all. They'll be able to just run that workshop. So we're trying to train up people in the community to be kind of on, like be able to take value out of Gatsby on their own. And hopefully we'll be able to hire those people and, uh, and grow our team in that way. So we're, we're doing, you know, we, and like, how do we do that in a way that is, you know, sustainable, that's going to help us grow and, and make sure that we're not,
Starting point is 00:56:34 uh, tripping over our own feet there. There are a lot of really, really interesting and really not related to code questions that we're, we're trying to figure out as we scale, which is like both extremely fun because we get to look at like, okay, we, we've always worked at companies and we've, we, you know, I don't know if you've had this experience, but like every company I've ever worked at, uh, except the one that I owned, I sit down and I look at the company and I go, Oh, I could run this better. Here are all the reasons my boss is an idiot. And now we're in this situation where we are that idiot boss. So we get to put up or shut up. Like, how are we going to make the company that we always wanted to work at?
Starting point is 00:57:15 And, you know, what are we going to do to make sure that this is a company that not just I want to work at, but that everybody wants to work at? How can we make sure that like when we open a job opening, we get flooded with resumes from literally everyone, like every corner of the internet, every different group, like, you know, we want to be that company. And so we're trying to solve that puzzle. How do we make amazing technology that people are really excited to use? What do we do to incentivize the internet at large to use Gatsby as like their technology of choice? And beyond that, how do we make a Gatsby into a company that is like a model company for the, for the tech world, for companies in general, that is a place that people are
Starting point is 00:57:59 excited to work at that, you know, if you say, Hey, I work at Gatsby, people go, Oh man, I'm so jealous that you get to work there. That sounds so awesome. Um, really this is a, the most terrifying and most exciting challenge that, that I've ever had. And I think that everybody in Gatsby right now shares that, that excitement and terror that, uh, we, we really want to get this right, like on all fronts. And so we're, you know, I've been reading books. I just like, just ravenously reading books on like team culture. How do you make communities welcoming? How do you make people feel safe? Um, I'm like, I was on Twitter, like, Hey, help me, like send me books so that I can be less of a, of a jerk to, to my team and like more make people feel comfortable giving me feedback. Um, and, uh, it's, it's, uh, I don't know, man, I'm terrified, but I'm also having a lot of
Starting point is 00:58:46 fun. Where does community live at for you? I mean, is there a central place where you do community? Like, is it in Slack? Is it in issues? Is it spread around? Where does it typically happen? And how do you get that feedback from the community to know if you're doing right or not? It's largely happening in GitHub issues and Twitter right now. And we haven't really had the chance to think through how to centralize that because we want to have a way for people to do this well. And maybe that's GitHub issues, but then GitHub issues can be a problem
Starting point is 00:59:17 because not everybody who can contribute is necessarily going to be a GitHub user. We could potentially use something like, uh, like discourse or, uh, you know, um, you want to, you know, one of those, one of those types of, of, uh, community services. Um, but we're not sure if you've got ideas on, on all ears, because we just, we, we aren't quite sure how to scale properly. Well, the one idea I'd give, and Jared, you've heard me give this, this advice every single time when we have this kind of question or have this conversation around community is like,
Starting point is 00:59:53 you've got to put a community link in your main navigation, right? If people got to find it, search it, or like, ask the question like me, where's that? Then, you know, it's, it's your first step is shooting yourself in the foot. It's like if there's no community button that says, hey, here's where you come to find out where it begins. Then you're really – that's your first step there is kind of identifying that. Because if you have – Don't mind me.
Starting point is 01:00:17 I'm just taking notes in the background. I do see discourse as an icon over to the right in the.org's main navigation. But, you know, to me, I feel like when you put a community link in your navigation, it's like it's an invitation. Right. Yeah. And then you say, here's who everyone's welcome here. Yeah. We I'm only we get this right because I had thought through this and we do have community in that in our main navigation. And we do say, Hey, everyone's welcome here.
Starting point is 01:00:46 Like this is where you can hang your hat. This is where you can hang out with fellow developers, ask questions, whatever, like you're welcome here. And I feel like that's a core step to getting it right. And if that's so important to you, you know, that could be a first step for you, but you know, I love that, but getting it right though i mean i don't think there's any sort of perfect recipe to say hey here's how we get community
Starting point is 01:01:09 focus right or here's how we welcome people or here's how we build a company that people are jealous of and they want to work at when they hear that you work there but the pair programming thing is pretty interesting you know it gets people on board faster as you know you kind of knocked your docs a little bit i think your docs are maybe they're not as fully featured as you want them to be, but they're so easy to navigate. I think you've done a really great job on that front there. In terms of scaling your team, I mean, geez, that's every startup's hardest part is scaling, right? Right. Yeah. Yeah.
Starting point is 01:01:40 No, I definitely agree with you. And, you know, I think when I hear this from probably any other startup, I'm like, I, I, I definitely agree with you. And, um, you know, I think when, when I hear this from probably any other startup, I'm like, yeah, yeah, that sounds hard. And now that it's me, I'm like, Oh my God, I'm going to, we're going to get this so wrong. I like how you said that's your most exciting and most terrifying because that lets you know you're in the right place. I feel like that's the perfect combination of doing what you do, what you love, because you're a little terrified of your day. You're a little excited about your day and you're like, I can get it wrong. I can get it right.
Starting point is 01:02:09 And that's that's the fun part. Yeah. Yeah. I think that's where I want to live in the Venn diagram. Yeah. The overlap between excitement and terror is probably the best place to be in a startup. And it certainly suits my personality best. You know, one of the reasons I left IBM was because it felt like all
Starting point is 01:02:25 the decisions had been made. Um, so being, being in a startup where, you know, almost none of the decisions have been made is significantly more stressful, but it feels like good stress. It doesn't, you know, I don't wake up dreading my life. I don't wake up in cold sweats or anything, but I am absolutely like every day thinking, okay, well we get to make decisions today that will echo through the rest of our company because we're, we're small enough now and we're making decisions now that if we don't get this right, if we build bad habits and hire people while we still have these bad habits, this culture, you know, it's going to implode in the future. So we need to be thinking
Starting point is 01:03:05 like, how do we make sure that everybody in the company is, is thinking about the company in a way that helps us grow together? How do we become a culture rather than a collection of people who work at the same place? Um, and then once we've become a culture, how do we make sure that we're a culture that, that is headed in the right direction and has the right values. And there, there was a, I mean, I feel like there's a long philosophical discussion about how to define a company's values and what those values should be. So I probably won't get into that, but I mean, there's a, there's a, it's a really, really interesting and fascinating place to be. And, um, it gives me an excuse to read a lot of books that I've been putting off for a long time. So it's, you know, if nothing else, I, I at least get to do some great reading.
Starting point is 01:03:48 That's always fun too. Whenever you step into a job, um, not that you haven't done this before, but you step into a job to have the feelings that we just talked about, but then also be like, I've got to read because I've been in positions like that where I'm like clamoring for new books to read and consume, to do my job day to day better or the future where I'm like clamoring for new books to read and consume to do my job day to day better or the future job I'm trying to grow into, you know, as whatever I'm doing, like that's an interesting place to be at too. Whenever you're just like, what book can I read to learn the next thing I need to know to do the next leapfrog or the next lily pad to get to in my journey of what I'm doing. So that's interesting.
Starting point is 01:04:25 There was a recent blog post that you all had. We kind of cover a little bit of the learning process, but I thought it was kind of interesting that you had this teacher who kind of covered learning Gatsby in a really interesting way for people who were kind of like from a graphical background. I guess the question to maybe tie off on for the end of the show may be how to get started. For these people, it was really easy because it was really very intuitive in a lot of ways. It was speed, a lot of fun stuff in terms of the commands and whatnot.
Starting point is 01:04:58 The hot reloading was, you know, let them do something and then automatically see some feedback. When you say, hey, go learn Gatsby. Where do you point people to? And what do you, what do you link them up to? What gets people to that first step to say, aha. So our tutorial gets, um, a lot of props for, for getting people to that aha moment. Um, I think what, what we're trying to do is, you know, we, we want to get you up and running with something that's actually a website. And I feel like where I really struggled with computer science and where I've seen a lot of people struggle with it is that the beginning stages don't feel like doing anything. It feels like
Starting point is 01:05:35 memorizing stuff. It's you're back in high school doing math and you're just kind of wondering like, when am I ever going to use this? And so Gatsby, um, we have really tried to focus on making it so that you immediately start building real things. And the stuff that you're building is, is designed to be, um, visual, you know? So we, we took away a lot of the, the initial boiler plate and configuration. So you can just install a starter and hit, you know, run Gatsby develop, and you're just looking at a real website. And if you go in and change one of the files, you see that website update in real time. So it's, it's a little easier to start to feel the repercussions of what happens when you change code, um, as opposed to, you know, in a JavaScript exercise
Starting point is 01:06:22 where maybe you're just trying to edit an array and get a value out of that array. That's very, very useful information. And it's something that you will eventually need to know as a developer, but it's not particularly exciting and it doesn't feel like you're doing anything until later when you understand why it's important. So we're trying to flip that on its head. We want to, we want you to be able to create something now. And when you get to the point where you need to know why something's important, then you get pointed to the relevant computer science that'll help you do that. Did that actually answer your question? I feel like I went on a little bit of a tangent.
Starting point is 01:06:52 It was a good answer. I mean, what you were already starting to. Is there a slash get started? You know? Oh, yeah, yeah, yeah, yeah. There's a gatsbyjs.org slash tutorial. There is, it starts from absolute zero. Like we'll link you out to what is the command line if you need that.
Starting point is 01:07:11 And if you don't, then you just kind of skip ahead to the part where you feel comfortable. And we'll walk you through the process of building a site, loading in data, doing styles, doing everything that you would need to build a functional production ready website with Gatsby. We'll make sure we link that up. It looks like it's about seven different steps or seven different sections with lots of different sections to dive into everything from components and CSS to building a page with graphical queries, transforming plugins, all that good stuff. Yeah. And there's a really cool pull request in progress right now with Shannon Soper and Florian Kisling, who Shannon's doing our like UX and information architecture research. And then Florian is our, our lead designer and they are kind of overhauling the way that the docs are set up. So if you're interested in seeing such
Starting point is 01:07:56 things, there's a pull request on, on the Gatsby repo that has the new, there's a preview to see the, the Netlify branch that has those, the new docs information architecture. It's a, it's pretty cool. And there were some design updates, makes it look really nice. Nice. Well, since you mentioned up next, what, what else is upcoming that we're not aware of that can be like, you know, whoever's listening is like, I really got to try this now you hear this and it's like, I really got to try it now you hear this and it's like I really got to try it what's coming up we are trying to get version 2 to stable so version 2 is in beta right now you can use it it's significantly faster than version 1 we added some things that make uh make it less there's no more magic in Gatsby we uh we're using the standard react way of doing things now
Starting point is 01:08:42 um so there's a change log that you can look at to see that. But I think the, the things that I'm like really most excited about, we have someone working on putting schema stitching into our GraphQL like schema so that you don't have to build a plugin if you already have a GraphQL endpoint. So for example, like GitHub already has a GraphQL API. So you can just stitch that right into Gatsby and use it right away. There's no need to put together a source plugin for it anymore.
Starting point is 01:09:10 That's super exciting. We're working on some new stuff with images where you can lazy load your images, but generate SVG, like low poly versions, which basically means it starts to look like impressionist art. Like it, it turns your photo into 12 triangles and rectangles that, uh, that roughly resemble
Starting point is 01:09:31 the image. And then your, your high res image fades on top of it. It looks amazing. Um, and, uh, outside of that, we're just doing a, Oh, the, the store is probably the other thing that I'm most excited about. We're rolling out a lot of automations inside of the Gatsby organization on GitHub so that we can give people, anybody who contributes to the repo, we're going to have swag available for you as a thank you. And anybody who contributes a merged PR is going to automatically be invited to become a maintainer,
Starting point is 01:10:03 which means you'll have the ability to review pull requests and merge pull requests. We want to really make sure that Gatsby is in control of the open source community. We always want to emphasize that it is an open source community-driven project. It's not a commercial project that uses predatory open source practice. And that's a big thing for us. Jason, thanks for coming on the show. I mean, it's been a blast learning about Gatsby. You're certainly passionate about it.
Starting point is 01:10:32 And great product to put out there. Excited to see how it's turned into a business. I'm looking forward to seeing how you sustain the business long-term. You've got great ambitions towards it. And I can't wait to see what you guys execute on. Yeah. Thanks so much for having me on.
Starting point is 01:10:49 This was a blast. And I'm looking forward to doing all that stuff myself. All right. Thanks for tuning into this episode of The Change Law. Talking about Gatsby JS. Wow. $3.8 million raise to build this from an open source product to a company. Super impressed.
Starting point is 01:11:07 Super impressed. If you enjoyed this show, do us a favor. Share it with a friend. Rate us on iTunes. Share a link on Twitter. Blog about it. And, of course, thank you to our sponsors, Rollbar, DigitalOcean, and our newest partner, Algolia. Also, thanks to Fastly for our bandwidth.
Starting point is 01:11:22 Head to Fastly.com to learn more. And we catch our errors before our users do here at Changelog because of Rollbar. Check them out at Rollbar.com slash Changelog. And we're hosted on Leno Cloud servers. Head to Leno.com slash Changelog. Check them out. Support this show. Jared Santo and I host this show every single week.
Starting point is 01:11:39 We love doing it. The mix and mastering is done by Tim Smith. The beats are by Breakmaster Cylinder. And you can find more shows just like this at changelog.com. When you go there, lots to catch up on. The Changelog, JS Party, Founders Talk, Away From Keyboard, a brand new show from Tim Smith, a brand new show called Practical AI. Lots to catch up on. Subscribe through the master feed. Thanks for tuning in. We'll see you next week.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.