How the Sync Works
Notion DB
sync-notion-content (v20)
Supabase Tables
ldw.build

The edge function runs on a cron every 15 minutes. You can also trigger it manually. Changes in Notion appear on the site within 15 minutes automatically — or immediately if you trigger the sync.

Notion Databases — What's Wired

PHOTO GALLERY

ID: 074724b8-74a6-40e1-b48c-d7667f9addbd
AUTO-SYNC · 15 MIN
Name
Photo label / caption
Files
Upload image here — syncs to site
Category
speaking, press, headshot, etc.
Active
Checkbox — uncheck to hide from site

To update site photos: Add or replace rows in this database. Upload the image to the Files field. Check Active to show on site. The next 15-min sync (or manual trigger) will update Supabase → site reflects immediately.

↗ Open in Notion

CONTENT HUB

ID: f69e7146-cb29-40ba-92d5-460001d8611d
AUTO-SYNC · 15 MIN
Title
Sermon, episode, or article title
Type
sermon / podcast / article / youtube
URL
Link to full content
Published
Date — used for sorting
Thumbnail
Cover image (optional)
Active
Checkbox — uncheck to hide

Currently 0 rows. This is the highest-value thing to populate right now. Add sermon clips, podcast episodes, and teaching content here. Each row becomes a card in the site's content section.

↗ Open in Notion
How to Add a Photo — Step by Step
What Does NOT Sync From Notion
Speaking inquiries Managed in admin-speaking.html — form goes direct to Supabase
YouTube videos Direct YouTube API → site_youtube (Notion not involved)
Instagram posts Zapier fires on post → site_instagram (Notion not involved)
Substack articles RSS proxy → articles.html fetches live on page load (Notion not involved)