OpenTrailPaper
Open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO, with offline maps, GPX routes, FIT recording and Bluetooth sensors.
AI-powered training, running, and fueling log for marathon prep.
Sports & fitnessGitHub @trial756OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
workout/fuel log
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗A mobile-first fitness tracking web app: log workouts, runs, and meals in plain English, and Claude turns each entry into structured data plus a line of coaching feedback. Built with Next.js (App Router) + Tailwind CSS, persisted in Supabase (Postgres), and deployed as a standard web app.
workouts, runs, meals, favorites.claude-sonnet-4-6, server-side only) — parses free-text entries into structured fields via a forced tool call, and returns coaching feedback in the same response.All AI parsing and database access happens in Next.js API routes
(app/api/**/route.ts), which run server-side — the Anthropic key and the
Supabase service role key are never sent to the browser.
supabase/schema.sql. This creates the workouts, runs, meals, and favorites tables (with RLS enabled and no public policies — all access goes through the service role key server-side).service_role secret key.Create a key at console.anthropic.com if you don't have one.
Copy .env.example to .env.local and fill in the three values:
cp .env.example .env.local
ANTHROPIC_API_KEY=sk-ant-...
SUPABASE_URL=https://xxxx.supabase.co
SUPABASE_SERVICE_ROLE_KEY=eyJ...
npm install
npm run dev
Open http://localhost:3000 — resize your browser to a phone width (or open on an actual phone) to see the intended mobile layout.
This is a standard Next.js app — deploy it anywhere Next.js runs (Vercel is the simplest path since API routes need a Node.js server, not a static host):
ANTHROPIC_API_KEY,
SUPABASE_URL, SUPABASE_SERVICE_ROLE_KEY) in the Vercel project settings.Any other Node-capable host (Render, Railway, Fly.io, a VPS with next start,
etc.) works the same way — set the three env vars and run npm run build && npm start.
raw_text) alongside the
AI-parsed structured fields and a coaching_feedback string — so nothing is
lost if the parse is imperfect, and you can always see what was originally typed.favorites snapshot the parsed structured data for a past entry, so
"log again" from History re-inserts a new row instantly without calling
Claude a second time.lib/marathonPlan.ts) is fully static/deterministic —
it computes each week's date range backward from the race date and requires
no database or API calls.