Tools & Services
Developing with ReactJS: An Interview with Gatsby's Kyle Mathews
With the backing of Facebook, the React programming language has made a huge splash in the last few years.
Aaron Autrand: What made you decide to go with the React toolkit?
I'm a huge fan of React's component model because it allows you to encapsulate really neatly some pretty complex functionality and reuse that in multiple places. You can have a button component which does all sorts of sophisticated stuff and it wraps it all up in this neat little button component that you can import it and use it all across your site. Anyway, that's a very neat model that's proved very scalable and very powerful in a lot of stuff I've done.
So working in Backbone was what led you into React?
In the time that you've been developing, what kind of changes have you seen and what kind of changes do you foresee?
In one sense I sympathize with that, on the other hand, I remember how hard it was three or four years ago to do stuff that now takes me hours or even minutes.
Just today I built this AJAX driven search tool with complex faceting and tomorrow morning I'm going to add bulk editing and so forth. I built this all from scratch including the backend. The backend was all done from scratch too, and I did it all in like five hours. And that's really complex stuff and it's working really well, it's fast and super performant. There's no bugs as far as I know and I don't anticipate much maintenance cost in the future. And it's funny, because I built this three years ago with Backbone and it took me literally weeks. It was this huge undertaking to figure all this stuff out and it was this tedious tricky code, and React and some other tools that I'm using like Graft QL and Relay just make it pretty trivial to do. It's awesome, just the power that you have.
Most of the sites that I've seen built in Gatsby have been closer to — and I believe you even describe this on the GitHub page for Gatsby — is it's more for things that fall on the blog side of the blog to app spectrum. What was your decision-making process in creating a tool to build blogs that function like single page apps.
The big thing is, I really like React and I don't want to use anything else. Everything else I've used just pales in comparison. So that was one big motivation. And just the developer experience is so powerful.
Who would be the typical user or the ideal user of Gatsby? Somebody who wanted to make the most out of what they were doing and wanted to push Gatsby to its logical limits. What kinds of things would people be doing with that?
The bleeding edge of Gatsby would be really interesting, kind of like a blended static and dynamic site where, imagine you had a marketing site, a doc site and a Sass app, but they're all one Gatsby program. The static stuff is statically generated, loads super fast and is public to everyone, and then dynamic stuff is password protected and loading information dynamically from the API. I would be really interested to see somebody explore that because I don't see any reason why that couldn't work. I think it could be really powerful, you could hit the home page, log in and immediately get dropped into the app and it'd all be a frictionless experience. That'd be really interesting.
Finally, I always like to give people kind of a soapbox moment. If everything in the world of web development going forward was decreed by you, if people needed to do stuff the Kyle Mathews way, what kinds of developments would you want to see?
I think static sites are amazing, they're just an incredible experience for both developer and user, so I would love more static sites. For that to really take off though we really need static site CMS, which you guys are working on ...
So React and then ReactJS is just an amazing ecosystem, like ReactJS webpack, PostCSS, there's just a lot of amazing tools being built and I kind of see Gatsby as a way of integrating all these tools together and I'd love for there just to be lots and lots of activity around Gatsby, a really big community built up around it and lots of boiler plates and Gatsby apps and people who want to put sites on the internet. It's just a very straightforward way to build powerful sites that work really well.
The Static Web Tech Meetup is a monthly gathering of developers and tech forward-thinkers who want to learn and share their insight about the technology that will power tomorrow's internet. Join us at our next event by connecting with us on Meetup!