New episodes occasionally don't show on the site for several hours after the YouTube video goes live. This has been observed multiple times.
Recent example
Episode 991 ("Vite's bet on Cloudflare / VOID Framework") was scheduled for 11:00 UTC (5:00 PM GMT+6) on March 30, 2026. At 7:51 PM GMT+6 (2h51m after air time) it was still not visible on the site.
Root cause
Show markdown files are merged to main ahead of the air date, but the DB import only runs via the Vercel cron at /webhooks/refresh on a 0 */3 * * * schedule (every 3 hours). Combined with the date: { lte: new Date() } filter in the show queries, a new episode can be invisible for up to 3 hours after its scheduled publish time depending on when the cron last ran.
Suggested fix
Tighten the cron schedule — e.g. */15 * * * * (every 15 min) or 0 * * * * (every hour). The import is already hash-diffed so unchanged shows are skipped cheaply (import_or_update_all_changed_shows in src/server/shows.ts), making more frequent polling low-cost.
Alternatively, trigger /webhooks/refresh from a GitHub Actions workflow on push to main when files under shows/ change.
New episodes occasionally don't show on the site for several hours after the YouTube video goes live. This has been observed multiple times.
Recent example
Episode 991 ("Vite's bet on Cloudflare / VOID Framework") was scheduled for 11:00 UTC (5:00 PM GMT+6) on March 30, 2026. At 7:51 PM GMT+6 (2h51m after air time) it was still not visible on the site.
Root cause
Show markdown files are merged to
mainahead of the air date, but the DB import only runs via the Vercel cron at/webhooks/refreshon a0 */3 * * *schedule (every 3 hours). Combined with thedate: { lte: new Date() }filter in the show queries, a new episode can be invisible for up to 3 hours after its scheduled publish time depending on when the cron last ran.Suggested fix
Tighten the cron schedule — e.g.
*/15 * * * *(every 15 min) or0 * * * *(every hour). The import is already hash-diffed so unchanged shows are skipped cheaply (import_or_update_all_changed_showsinsrc/server/shows.ts), making more frequent polling low-cost.Alternatively, trigger
/webhooks/refreshfrom a GitHub Actions workflow on push tomainwhen files undershows/change.