Gatsby Ghub is a Gatsby starter that proves a mixed static-and-dynamic JAMstack pattern: it statically renders resumes from GitHub profiles at build time, then uses Netlify Identity and Apollo Client to serve on-demand GraphQL queries for the interactive App section. Built as a fork of swyx's jamstack-hackathon-starter, this boilerplate gives you authentication, GitHub API integration, and a deploy pipeline out of the box.
What is Gatsby Ghub?
Gatsby Ghub is a Gatsby starter for building web apps that combine static and dynamic content. It takes GitHub profile data as its input and produces static resume pages during the Gatsby build, while the client-side App section uses Apollo Client to run GraphQL queries on demand. The template runs on Gatsby, deploys to Netlify with a one-click button, and includes Netlify Identity for user sign-up and management. It was created as a fork of the jamstack-hackathon-starter by swyx, with credit to the Gatsby team, and is intended as a proof of concept for mixing static rendering with live API queries.
Key Features
- Static and dynamic content — a resume-book section statically renders user profiles fetched from GitHub, while an App section handles dynamic, on-demand GraphQL queries.
- Netlify Identity integration — user sign-up, login, and management are handled through Netlify's built-in authentication service, so you don't need a separate auth provider.
- GitHub GraphQL API — uses a personal access token to query GitHub's GraphQL endpoint, fetching profile data that populates the resume pages.
- One-click Netlify deploy — the README includes a Deploy to Netlify button that sets up the repository, build settings, and the identity stack automatically, though you must configure the tokens in Netlify afterward.
- Configurable query limit — the number of users fetched in gatsby-node.js and resume-book.js is a hardcoded value (53 in the original) that you can lower to 5 to avoid rate-limiting GitHub.
- Environment-based secrets — requires .env.development and .env.production files, each containing a GitHub token and a Gatsby token used during build and client-side.
Who is it for?
- JAMstack developers who want a working reference for combining Gatsby's static generation with dynamic GraphQL queries and authentication.
- Bootcamp instructors and students who need to create resume pages for a cohort — the starter ships configured for 53 users and can be adapted to any group size.
- Hackathon participants who need a starter with Netlify Identity and API integration already wired, saving setup time on a short deadline.
What can you do with it?
- Bootcamp cohorts: generate a resume book for an entire class by setting the query limit to your cohort size and letting Gatsby build individual pages from each user's GitHub profile.
- Job seekers: present a portfolio where resume pages update as GitHub activity changes, with live data pulled through Apollo Client.
- Hackathon teams: bootstrap a project that needs authenticated user areas and external API data without writing auth and GraphQL plumbing from scratch.
How does it work?
First, clone or deploy the repository through the Netlify button. Then create two environment files, .env.development and .env.production, each with your GitHub personal access token stored as a token variable. Before building, edit gatsby-node.js and resume-book.js to set the number of GitHub profiles to fetch (the default is 53; the README recommends 5). At build time Gatsby generates static resume pages from the GitHub API; on the client, Apollo Client makes authenticated GraphQL calls for the App section's dynamic behavior.
