Chakra UI With Next.js & GraphQL, New Fullstack GraphQL Book Chapters, and announcing GraphStuff.FM
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 – William Lyon
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 – William Lyon
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.
Full Stack GraphQL Applications
Build hyper-fast and hyper-efficient web applications with GraphQL! This practical, comprehensive guide introduces the powerful GRANDStack for developing full stack web applications based in graph data structures. In Full Stack GraphQL Applications you will learn how to: Build backend functionalities for GraphQL applications Model a GraphQL API with GraphQL type definitions Utilize Neo4j as a backend database Handle authentication and authorization with GraphQL Implement pagination and rate limiting in a GraphQL API Develop a GraphQL service with Apollo Server Install Neo4j Database on different platforms Create a basic frontend application using React and Apollo Client Deploy a full stack GraphQL application to the cloud The GraphQL query language radically reduces over-fetching or under-fetching of data by constructing precise graph-based data requests. In Full Stack GraphQL Applications you’ll learn how to build graph-aware web applications that take full advantage of GraphQL’s amazing efficiency. Neo4j’s William Lyon teaches you everything you need to know to design, deploy, and maintain a GraphQL API from scratch. He reveals how you can build your web apps with GraphQL, React, Apollo, and Neo4j Database, aka “the GRANDstack,” to get maximum performance out of GraphQL.
Chapter 6: Client Side GraphQL With React & Apollo Client
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 7: Adding Authorization & Authentication
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 Lazarevic 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.
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!
Cheers,
Will