Skip to content

feelthesea/talus

Repository files navigation

Talus — Race Blueprint Engine

Precision race strategy for serious trail runners. Next.js + Vercel + Strava OAuth + Anthropic API.

Setup

1. Install dependencies

npm install

2. Configure environment variables

Edit .env.local:

STRAVA_CLIENT_ID=244814
STRAVA_CLIENT_SECRET=a8afacabbf4551781b818526e788b5bd20230c26
NEXT_PUBLIC_BASE_URL=http://localhost:3000
ANTHROPIC_API_KEY=sk-ant-...your key here...
SESSION_SECRET=some-random-32-char-string-here-ok

3. Run locally

npm run dev

Open http://localhost:3000

4. Deploy to Vercel

npm install -g vercel
vercel

Then in Vercel dashboard → Project Settings → Environment Variables, add all five variables from .env.local. Also update:

  • NEXT_PUBLIC_BASE_URL → your Vercel URL (e.g. https://talus.vercel.app)
  • In Strava API settings → change Authorization Callback Domain to your Vercel domain

5. Strava Callback URL

In https://www.strava.com/settings/api, set:

  • Authorization Callback Domain: localhost (local) or your-domain.vercel.app (production)

The full redirect URI used is: {NEXT_PUBLIC_BASE_URL}/api/auth/callback

Architecture

app/
├── page.tsx                     # Landing — Strava connect or demo mode
├── callback/page.tsx            # OAuth redirect handler
├── blueprint/page.tsx           # Main app — params → race → blueprint
└── api/
    ├── auth/strava/route.ts     # Initiates OAuth flow
    ├── auth/callback/route.ts   # Token exchange (server-side, secret stays safe)
    ├── blueprint/route.ts       # Streams Anthropic API response
    └── session/route.ts         # Returns current session info to client

lib/
├── strava.ts                    # Strava API client
├── blueprint-engine.ts          # Core race calculation logic
└── session.ts                   # iron-session cookie management

Adding races

Edit lib/blueprint-engine.tsRACES object. Add CPs with km, elev, gainFromStart and an elevation profile array.

Roadmap

  • Race Mode view (minimal on-course UI)
  • Post-Race Autopsy (upload .fit file, find the collapse point)
  • Offline PWA support
  • COROS / Garmin Connect integration

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors