18:13

Grist Secrets: Popups

This example walks through how to add a Notepad popup. Any widget can be used for the popup. The steps would be the same. The example document linked above also shows an Image Viewer custom widget popup.
11:26

Grist Widget Grouped Views

A Grist custom widget that displays table records grouped by any column value, similar to Notion or Airtable grouped views.
15:23

Marimo widget : run python notebooks inside Grist!

I’m extremely happy to announce the creation of a new widget: “Marimo in Grist”. Marimo is a modern alternative to Jupyter notebooks that let you edit, run, share and play with Python scripts.
15:22

Upload attachment from custom widget

A simple custom widget to upload attachment.
15:20

Gristar-- command-line utility to list, and extract attachments from .grist database files

I’ve build a prototype of a tar like gristar command which extracts grist attachments in bulk from a grist file. If you use it, be aware that this is a prototype.
15:18

More Grist Community Widgets

A modern, open source spreadsheet that goes beyond the grid
02:11

Grist: More Action Button Widget Explanation

Grist has an extremely useful feature: User Actions. Unfortunately, there is almost no documentation on this subject. This post is my attempt to solve this problem, and empower more people (both user and developers) to use them.
02:06

lookupOrAddDerived Undocumented Grist Function

There is an undocumented method lookupOrAddDerived, which behaves like lookupOne but creates a matching record if one isn’t found.
We need to explore this function. This cound be useful for several of our use cases.
19:38

Pocket ID — Grist OIDC Integration

Documentation on integrating Grist spreadsheet tool with Pocket ID as an OIDC identity provider. Step-by-step config for callback URL, env variables, and session management.
00:00

👀 Who Did What and When? - Full Audit Trail in Grist

Grist setup for a fuller audit trail that records who changed a row, when they changed it, and what field values changed, including old and new values. It uses trigger formulas and base64-encoded row snapshots to produce human-readable history entries, making it more powerful than a simple “last modified by/date” column, though also more complex to set up.