Chakra UI With Next.js & GraphQL, New Fullstack GraphQL Book Chapters, and announcing GraphStuff.FM


William Lyon / March 21, 2021

5 min read

Hi folks!

In this update I want to share some things I've been working on recently.

Chakra UI, Next.js, & GraphQL#

On the Neo4j live stream I've been working on building a podcast application using GRANDstack (GraphQL, React, Apollo, & Neo4j Database). The latest two sessions focused on adding functionality to the frontend of the application: podcast search, viewing/creating playlists, user authentication, and handling a users's podcast feed.

I recently wrote up two blog posts showing how to add these features.

Here's Part 1, which focuses on introducing Chakra UI and building a podcast Episode component:

Building A Responsive Navigation Bar And Podcast Episode Feed With The Chakra UI React Component Library

March 21, 2021 • 13 min read

Building A GRANDstack Podcast App: Episode 5


and Part 2, which covers the podcast search results and playlist views:

Adding Frontend Features With Next.js, Chakra UI, & Apollo Client

March 21, 2021 • 13 min read

Building A GRANDstack Podcast App: Episode 6


New Fullstack GraphQL Book Chapters#

I've been writing a book for Manning, "Fullstack GraphQL". The ebook has been available as an early release for a while, but two new chapters were recently added to the early release.

This chapter shows how to use Apollo Client in a React application to fetch data from a GraphQL API, execute mutations, and also how to use Apollo Client and GraphQL for managing local client state in a React application. We also look at some of the newer features in Apollo Client like reactive variables for working with local client state outside of the Apollo Client cache.

Chapter seven begins the third section of the book "Fullstack Considerations" where we move beyond backend vs frontend and start thinking about features and functionality that span both, starting with authentication and authorization using Auth0. In this chapter we explore auth in both the GraphQL API and our frontend React application using JSON Web Tokens (JWTs) to encode user identify and permissions. We see how to use GraphQL authorization directives and the @cypher schema directive for adding user-specific custom logic to our GraphQL API.

Chapter 8, focusing on deployment using serverless cloud services has been written and should be added to the early release of the book soon.

Announcing The GraphStuff.FM Podcast#

My colleague Lju Lazaravic and I recently launched a new podcast focused on graphs and Neo4j from a developer's perspective called GraphStuff.FM.

The first episode, "Navigating A Technical Conference Talk From Submission To Delivery" is up now. With the deadline for speaking proposals for NODES 2021 coming up soon we thought it would be a good time to talk all about conference presentations.

You can find it in your podcast app by searching for "Neo4j" or at GraphStuff.FM. We've recorded the first few episodes and will be releasing new episodes regularly, but in the meantime I'd love to know what topics you'd like to hear about on future episodes.

What I'm Reading#

Oversubscribed: How To Get People Lining Up To Do Business With You

This is one of those business tactics books that reads kind of like a self-help book with lots of seemingly simple steps to follow in the path of the author's success. I found there were some useful concepts, and the book was a quick read. One concept that stuck for me was the "7-11-4" formula: try to get potential customers to spend 7 hours with you, across 11 different interactions, on 4 different platforms and you're likely to create a bond with them.

Product-Led Growth

I've been hearing a lot about Product-Led Growth recently and this book has been on my reading list for a while so I was happy to finally get to it. I guess if I had to boil down the PLG concept in a few bullets it would be:

  • Enable your potential customers to self educate by offering a free-trial or freemium version of your product and making all relevant materials available (rather than gating assets like a white paper for a marketing lead or sales demo)
  • Product should be involved throughout every department of the company, and the product should lead the strategy of each department
  • Instead of focusing on lead generation, Marketing should focus on driving users to the free-trial or freemium version of the product
  • The free-trial or freemium product should focus on reducing friction and reducing the time-to-value for a user (the "aha!" moment)

The key distinction of product-led vs sales-led organizations is that product-led companies are able to scale more rapidly than sales-led companies because their growth isn't dependent on sales-driven processes.

I also started reading O'Reilly's "97 Things Every Cloud Engineer Should Know". I first heard the term "cloud developer" used to refer to developers using (rather than building) managed cloud services a few months ago and hadn't thought of that as a specific type of developer before (aren't most developers cloud developers these days? I think certainly among the full-stack developer segment)

This is the first 97 Things book I've read and I have mixed feelings about the format. Each "thing" is a 1-3 page chapter written by a different author. I like that each of these "things" is short enough to convey a single point - however I often find I want a bit more depth on each topic than the format allows. I'm still early into the book so will share my final review next time.

That's it for now. To those in the Northern Hemisphere: Happy first day of Spring!




Subscribe To Will's Newsletter

Want to know when the next blog post or video is published? Subscribe now!