OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
L'app de rando fun et communautaire : défis, classements et badges pour marcheurs et randonneurs.
Translation pending
Sports & fitnessTypeScript · PLpgSQLGitHub @SMB721OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
Base du projet SaaS de randonnée décrite dans le cahier des charges : Next.js (App Router) + TypeScript + Tailwind CSS, authentification via Supabase Auth (email/mot de passe + Google), prête à être étendue (Stripe, GPX, carte Leaflet, génération de tracé IA...). • Frontend : Next.js 16 (App Router) + Tailwind CSS • Auth : Supabase Auth (email + Google OAuth ; Apple à activer plus tard dans le dashboard Supabase) • Base de données : à connecter — Supabase Postgres + PostGIS recommandé (cf. cahier des charges) Ouvrir http://localhost:3000.Read the full README ↗
Base du projet SaaS de randonnée décrite dans le cahier des charges : Next.js (App Router) + TypeScript + Tailwind CSS, authentification via Supabase Auth (email/mot de passe + Google), prête à être étendue (Stripe, GPX, carte Leaflet, génération de tracé IA...).
npm install
cp .env.local.example .env.local
# puis renseigner NEXT_PUBLIC_SUPABASE_URL et NEXT_PUBLIC_SUPABASE_ANON_KEY
npm run dev
Ouvrir http://localhost:3000.
anon dans
.env.local.http://localhost:3000/auth/callback comme Redirect URL (et l'URL de
prod plus tard).src/
app/
page.tsx → landing page
auth/page.tsx → page inscription / connexion
auth/callback/route.ts → callback OAuth / confirmation email
dashboard/page.tsx → page protégée (redirige vers /auth si non connecté)
components/auth/AuthForm.tsx → formulaire inscription/connexion (email + Google)
lib/supabase/client.ts → client Supabase (navigateur)
lib/supabase/server.ts → client Supabase (Server Components)
Base vérifiée : npm install, npm run lint, npx tsc --noEmit, npm run dev et npm run build passent tous sans erreur. Sans variables Supabase
réelles dans .env.local, /auth et /dashboard restent utilisables mais
les appels Supabase échoueront silencieusement (redirection vers /auth par
défaut) — configure un vrai projet Supabase pour tester le flux complet.