Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
Gatsby template for generating listing/directory websites from Google Sheets data.
WebSheets Listing Page is an open-source Gatsby template that generates listing and directory websites from Google Sheets data, turning a spreadsheet into a fast static site.
WebSheets Listing Page is a Gatsby starter repository that uses a Google Sheet as its content source and produces a static progressive web app (PWA) with SEO and offline support. The template accepts a publicly viewable Google Sheets document and a Google Sheets API key, then builds a deployable site that displays general site information and listing items. It is authored by tengkuhafidz, distributed under the MIT license, and registered with the topics gatsby, google-sheets, and hacktoberfest.
Developers who want to publish a catalog or directory without building a backend can use this template to edit a Google Sheet and regenerate the site. Small teams and organizations that need a simple directory of services, products, or resources can maintain the content collaboratively in a familiar spreadsheet interface. Prototypers and indie hackers can spin up a listing site quickly by copying the sheet template, supplying an API key, and deploying the generated static files to any static host.
Getting started involves preparing a public Google Sheet, enabling the Google Sheets API for a Google Cloud project, and creating an API key. After copying the repository with the Gatsby CLI command gatsby new [YOUR_SITE_NAME] tengkuhafidz/WebSheets-Listing-Page, you add a .env file containing the environment variables GATSBY_GOOGLE_CREDENTIALS and GATSBY_SHEET_URL. Run npm start for local development at http://localhost:8000 or npm run build followed by npm run serve for a production build served at http://localhost:9000.
Yes, the template is open source under the MIT license, so it is free to use and modify. The author accepts optional sponsorship through a Buy Me a Coffee page if you find the project helpful.
You need Node.js, the Gatsby CLI installed globally, a Google API project with the Google Sheets API enabled, and a Google Sheets document (copied from the provided template) that is publicly viewable by anyone with the link.
No. The Google Sheet acts as the content management system, and the template builds static files that can be hosted on any static host. There is no backend to maintain after the build step.
The sheet has two tabs that must keep their names: a site tab containing general site information and a listing tab containing the items you want to display. The template reads both tabs during the build.
Common causes include the Google Sheet not being publicly viewable, the Google Sheets API not being enabled for the correct project, missing double quotations around environment variable values in the .env file, or not having a .env file at the project root with the required GATSBY_GOOGLE_CREDENTIALS and GATSBY_SHEET_URL parameters.
