Starship countdown — bunko.me/rockets
- Python 51.8%
- HTML 47.9%
- Dockerfile 0.3%
Redesign (flight.css "navy flight briefing" family, body.flight):
- Hero for the next launch (any provider): big T-minus digits, one pill row
(hold/scrub, launched, status, weather, window, next attempt), Watch
buttons (X Live Studio overlay kept), Mission details button, Starship
page link, times in CT + UTC on one line. Old Status/Target-time cards
and the stray "›" after the title are gone.
- Upcoming is a day-grouped timeline (Today / Tomorrow / This week / Later,
America/Chicago) with provider filter chips (only groups present, with
counts, remembered per browser; scroll horizontally on phones), per-row
T− countdowns, Starship rows highlighted with a STARSHIP → /starship badge.
- Right column: Next by provider + Recently launched with outcome tags.
- Mission timeline + flight profile show on permalinks and inline on the
index only around launch (T-6h … T+2h).
- Modal, /{slug} permalinks, milestones, bg-video toggle, refresh button
and live /api/next refresh all kept. Footer "bunko.me/launches",
UA now bunko.me/launches.
LL2 budget (the iambunko key allows 15 req/h, shared with starship):
- Upcoming every 15 min, previous hourly: ~5 calls/h (was ~16/h: upcoming
every 5 min + previous every 15 min + 2 per manual refresh).
- Manual refresh re-asks LL2 at most once per 10 min (CMS is still instant).
- Responses cached to ./data (mounted at /app/data, gitignored); loaded at
startup and the warm fetch is skipped when the cache is fresher than the
poll interval, so restarts/deploys don't cost calls or blank the page.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018MESTnEwZTgDbVvtP19DrK
|
||
|---|---|---|
| app | ||
| .gitignore | ||
| docker-compose.yml | ||