February 2026

PeakSeek

A travel platform that ranks destinations by outdoor conditions first, then layers in cached flight data, authentication, and saved-user workflows.

Open PeakSeek →
PeakSeek

Problem

Adventure travel planning usually starts with dates or prices, even though the deciding factor is whether the destination will actually have good surf, powder, wind, or climbing conditions.

Outcome

Shipped a cache-first travel platform covering 117 public hubs across 12 sport types, shared multi-sport scoring, Supabase auth, Redis-backed weather/deal data, and hardened production routing.

PeakSeek answers a simple traveler question: where is actually good right now? Traditional travel sites sell destinations. PeakSeek sells timing: it ranks 117 public hubs by outdoor conditions first — surf, powder, wind, climbing, scuba — then overlays flight pricing, on the premise that for adventure travel the conditions matter more than the date.

Cache-First, Then Render

Most platforms hit weather APIs on every page load. PeakSeek inverts this with a waterfall pattern: scheduled jobs fetch and evaluate weather data, write results to Upstash Redis, and fall back to a checked-in durable snapshot when live cache data is unavailable. If Tomorrow.io or OpenWeather is slow, rate-limited, or down during refresh, the public site keeps serving the last verified evaluation — user-facing latency is decoupled from API reliability.

The page architecture matches this model. Discovery and destination pages use unstable_cache with 1-hour revalidation, rendering as ISR: most users hit the CDN, revalidation happens on schedule, no live API call in the request path. An in-memory LRU fallback handles Redis unavailability. The critical property is that an external API failure degrades gracefully to stale data rather than a broken page.

A Shared Sport Evaluation Layer

The public destination model spans surf, wind, powder, climbing, scuba, whitewater, and more across 117 hubs. Each sport has different acceptance criteria — powder requires temperature, snowfall depth, and recent accumulation; surf requires swell height, period, and offshore wind direction. Instead of N sport-specific scoring functions, the evaluation layer is a shared policy engine that each sport parameterizes. Adding a sport means defining its acceptance criteria, not writing new infrastructure.

All 117 public hubs run through the same code path on each refresh cycle. Scoring is consistent, ranking is reproducible, and there’s one place to tune or debug evaluation logic.

Auth and Edge Security

Supabase handles auth with row-level security policies enforcing data ownership at the database layer — users can only read and write their own saved hubs and trip data, regardless of what the client sends. Session tokens live in HttpOnly cookies, not localStorage, making them inaccessible to JavaScript in the page.

Static security headers live in the app configuration, while proxy middleware focuses on rate limiting and route-specific CORS. Auth logic has one home rather than being reproduced across API routes. Flight deal data follows the same cache pattern as weather: refreshed off the render path, Redis-backed, and never fetched on request.

Public Hubs
117/117
Sport Types
12
Validation
76 Tests
Release
Apr 2026

Travel Ranking Flow

  1. Cron jobs update weather and flight caches so render paths stay off expensive provider calls.
  2. A shared evaluation layer scores destinations across multiple outdoor sports rather than a single weather rule set.
  3. Static security headers, rate limiting, route-specific CORS, and HttpOnly auth cookies harden the app for real production traffic and authenticated user flows.

Product Architecture

PeakSeek product artwork for condition-first travel
The listing image positions PeakSeek around ranked outdoor travel conditions.
PeakSeek homepage screenshot
Destination ranking reads from cached weather evaluations instead of live provider calls.
PeakSeek live homepage with condition-based adventure travel search
The live marketing surface makes the travel promise visible before the ranking engine takes over.

Technology

PeakSeek is not just a ranking demo: caching, auth, rate limits, and edge policy are part of the production surface.

What this proves

PeakSeek shows I can turn a consumer-facing idea into a production surface with ranking logic, cache strategy, auth, and operational fallbacks behind the interface.