Active product. Newest first. Updated whenever something meaningful lands in production.
race-directorPro+ Team
Race director Pro features — embed, GPX, webhook ingest
Sprint D shipped end-to-end. Race-director story now has everything a paying customer expects on day one.
Embed iframe `/r/<slug>/embed` — bare race map with optional leaderboard, iframable on any origin via middleware-level CSP override.
Per-runner GPX download from the race admin — live data pulled from the matching provider (Garmin, SPOT, Zoleo, webhook).
Webhook ingest endpoint POST `/api/r/<slug>/ingest` with Bearer auth, batch support, lat/lon validation. Trackers with `provider=webhook` get their session straight from the ingest table.
Provider-agnostic session loader (`lib/raceTrackerSession.ts`) — one code path serves both MapShare-polled and webhook-fed runners.
adminrace-directorlaunch
Admin tools, race director MVP, launch polish — 24 h sprint to prod
Sprint A + B + C shipped together. Production is launch-ready for Show HN.
Synthetic feed generator (`/admin/feeds`) — upload a GPX, get N MapShare-compatible URLs spread along the route. Race demos without a single physical inReach.
Admin dashboard, user search/detail page, plan switcher, CSV export with fake-runner names.
Race entity + bulk CSV import + public `/r/<slug>` page with searchable / filterable leaderboard, status badges, mobile bottom sheet.
Multi-tracker share links (`shareLink.mapshareConfigIds`) — one share, multiple devices.
Cookie banner with PostHog gating, EU trust strip, GDPR-compliant by default.
Per-route OG images for FAQ, press, vs-comparison, demo, status. Sitemap + robots.txt.
Onboarding wizard for new signups — paste URL, pick provider, done.
UptimeRobot-backed `/status` page with live monitor list and outage banner.
multi-trackerdemo
Multi-tracker foundation + live demo
First commits of the multi-tracker stack and the public live demo at `trailcasts.com/demo`.
TrackMap renders every configured Garmin / SPOT / Zoleo at once — own colour, marker, track line.
`/trackers` page for adding, removing, promoting trackers between primary and secondary.
`/demo` page mounts the real app shell against a synthetic UTMB Stage 3 feed (480 trkpts, +2390 m elevation, ±20 m GPS jitter, 10 h loop) — anyone can see the product live without owning a device.
Snap-to-trail rendering, raw-pings overlay, tracer along the GPX — all working against synthetic data so demo screenshots are reproducible.
Want to be notified about new releases?
Follow on X or read the founder's Indie Hackers updates.