Implement autorefresh for meetup events#1536
Conversation
kaxil
left a comment
There was a problem hiding this comment.
Thanks for the work here, @prashant2007-wq but I'm going to close this PR because it doesn't address what #49 is asking for.
/meetups.json is a hand-edited static file checked into this repo. I only changes when a maintainer merges a PR (e.g. #1345 "Add Stuttgart as Meetup", #1203 "update member counts"),
and those land months apart. The page is served from a CDN, so refetching that same file every 5 minutes from the browser returns identical bytes. There is no upstream process making it fresher. The cache-buster
(?updated=${Date.now()}) also defeats CDN caching for a file that almost never changes, so it adds origin load without delivering new data.
The "autorefresh" #49 is asking for needs to happen one layer up: a scheduled job (e.g. a GitHub Action on a cron) that calls the Meetup API, regenerates meetups.json, and commits/triggers a deploy. The cadence only makes sense server-side, since a browser setInterval can't pick up changes that require a redeploy in the first place. The existing client
code that loads meetups.json on page load is already correct and doesn't need changing.
If you'd like to take another pass, the right shape would be:
- a workflow under
.github/workflows/that runs on a schedule, - a small script that pulls the Meetup data and writes
landing-pages/site/static/meetups.json, - a safe fallback so a failed fetch doesn't wipe the existing file.
Closing this one. Happy to review a follow-up that takes that approach.
|
Thanks for the detailed review, @kaxil. I understand the issue now. My PR handled refresh at the browser layer, but since I will not continue with this client-side approach. I will prepare a follow-up PR with the correct server-side/repository automation approach:
Thanks for clarifying the expected direction. |

Summary
Implements automatic refresh for Meetup events on the Airflow site.
Previously, the Meetups page fetched
/meetups.jsononly once when the page loaded. This PR updates the client-side meetup list logic so the page periodically refetches/meetups.jsonin the background and updates the rendered meetup cards without requiring a full page reload.Closes #49
What changed
loadMeetups()flow./meetups.jsonperiodically using a cache-busting query parameter.Why this approach
The current site already stores Meetup data in:
and the Meetups page loads this file client-side.
This PR keeps the existing data source and rendering flow, but adds automatic refresh behavior on top of it. This keeps the change small, safe, and focused while still solving the issue.
Testing
Tested locally with:
cd landing-pages yarn run lint:jsAlso verified the Meetup page behavior locally:
/meetups.jsonis refetched automatically in the background.