explaingit

jsoma/tabletop

3,774JavaScriptAudience · developerComplexity · 1/5Setup · easy

TLDR

A now-defunct JavaScript library that used to pull data from Google Spreadsheets into web pages. Google shut down the underlying API in 2020 so it no longer works, the README recommends migrating to PapaParse instead.

Mindmap

mindmap
  root((Tabletop.js))
    Status
      Deprecated 2020
      Google API shutdown
    What it did
      Google Sheets to JS
      No backend needed
      Row callbacks
    Migration path
      PapaParse
      CSV fetch
    Original features
      Multi-sheet support
      jQuery plugin
      Node.js support
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Migrate an old Tabletop.js project to PapaParse by following the before-and-after code examples in the README

USE CASE 2

Understand the historical pattern of using a Google Sheet as a lightweight database for a simple website

Tech stack

JavaScriptNode.jsjQuery

Getting it running

Difficulty · easy Time to first run · 5min

This library no longer works, the Google API it relied on was shut down in 2020. Use PapaParse instead.

No license information mentioned in the explanation.

In plain English

Tabletop.js was a JavaScript library that let you pull data from a published Google Spreadsheet and use it on a web page. The idea was simple: publish your Google Sheet to the web, pass the URL to Tabletop, and get back your spreadsheet rows as JavaScript objects with no extra dependencies. It was aimed at journalists, designers, and others who wanted to use a spreadsheet as a lightweight database for a simple site without setting up a backend. The README opens with a prominent warning: do not use Tabletop. Google shut down the underlying infrastructure it relied on in 2020, so the library no longer works. The author recommends using a different library called PapaParse instead, which can read a Google Sheet published as CSV directly. The README shows a before-and-after code comparison to help with migration. After the warning, the README continues with the original documentation for historical reference. The basic workflow was: publish your spreadsheet from the File menu in Google Sheets, share it so anyone with a link can view it, include the Tabletop script on your page, call Tabletop.init with the spreadsheet URL, and provide a callback function that receives the data. Each row in the spreadsheet became a JavaScript object with properties matching the column headers. Tabletop supported multiple sheets within a single spreadsheet, custom callbacks, promises, and could be used from Node.js via npm as well as directly in a browser. It offered options to filter columns, work with multiple named sheets, or return data in different formats. The README includes a troubleshooting section, notes about CORS behavior, and an explanation of why it does not work with Google organizational accounts (ones tied to a workplace or school domain). There is also a list of community-contributed wrappers and plugins for frameworks like React and Angular, though all of these are similarly non-functional now that the underlying API is gone.

Copy-paste prompts

Prompt 1
I have an old project using Tabletop.js that broke when Google shut down its API. Show me how to migrate it to PapaParse to read from a published Google Sheet CSV.
Prompt 2
Using PapaParse, write JavaScript that fetches data from a Google Sheet published as CSV and converts it into an array of objects like Tabletop used to do.
Prompt 3
What is the PapaParse equivalent of Tabletop.init for loading Google Sheet data into a JavaScript callback?
Open on GitHub → Explain another repo

← jsoma on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.