BMT Grad Week
Families were piecing together Lackland gate hours and ceremony details from scattered posts. I wanted the useful parts in one calm place.

The home page opens with a Family Stories banner, then the five things every family works through: schedule, gates, hotel finder, rental car, and logistics. Each one is a tap into the guide.

One input runs the whole guide. Enter a date and the plan page fills in the ceremony schedule with weather, entry gate options, hotel picks, a rental car link, and a graduation-day logistics checklist, with Add to Calendar and an email signup on the same screen.

Hotel prices and ratings are live data now. The comparison table quotes real Booking.com totals with taxes for each stay, and visitors who haven't picked a date see a typical graduation week about six weeks out instead of a hand-typed range. Expanding a hotel pulls its current Google rating and reviews on demand. A second tab covers The Rim and La Cantera.
About this build
The site itself is a static export: no server, no database, and every plan lives in its own URL. Everything dynamic runs in small single-purpose Cloudflare Workers. The two newest exist to delete stale data rather than maintain it: hotel prices and Google ratings now come straight from their sources at request time, so the repo stops carrying hand-typed numbers that rot.
- hotel-prices: Live rate proxy
One authenticated Stay22 call per stay, returned as an all-in total with taxes. With no date picked, it looks 42 days ahead to the next graduation week and quotes that as the typical week. A Durable Object caps the call budget; nothing is cached, per supplier terms.
- hotel-ratings: Live Google ratings
Expanding a hotel fetches its current Google rating and reviews for that one property, on demand. Nothing from Google is stored, cached, or logged, and a monthly budget guard caps API spend.
- email-drip: Countdown sequence
A daily cron checks each subscriber's days until ceremony and sends the next unsent email in a five-part sequence, 42-day booking reminder through day-before checklist. KV dedup and a dead-letter queue mean nothing double-sends or vanishes.