OpenAthlete
AGPLv3 endurance training platform: EU-oriented hosting, transparent CTL/ATL/TSB logic in code, self-hosting, and full export. Built in Grenoble.
Pick'em and Tiered Draft fantasy NASCAR leagues.
Translation pending
Sports & fitnessTypeScript · CSSGitHub @gridlinestudioa-maxOnlineOwner 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.
Fantasy NASCAR web app supporting two league types — Pick'em and Tiered
Draft — with versioned scoring rules. Built on Next.js (App Router) and
Prisma against Postgres.
• Next.js 16 (App Router, TypeScript)
• Prisma 7 ORM, @prisma/adapter-pg driver adapter, pg for the Postgres
connection
• Postgres (bring your own — Neon, Supabase, Railway, etc.)
2. Copy .env.example to .env and set DATABASE_URL to your Postgres
connection string:
3. Apply the schema to your database:
Open http://localhost:3000. The homepage
queries the database directly to confirm the connection is working.Read the full README ↗Fantasy NASCAR web app supporting two league types — Pick'em and Tiered Draft — with versioned scoring rules. Built on Next.js (App Router) and Prisma against Postgres.
@prisma/adapter-pg driver adapter, pg for the Postgres
connectionInstall dependencies:
npm install
Copy .env.example to .env and set DATABASE_URL to your Postgres
connection string:
cp .env.example .env
Apply the schema to your database:
npm run db:migrate
Start the dev server:
npm run dev
Open http://localhost:3000. The homepage queries the database directly to confirm the connection is working.
prisma/schema.prisma — the data model (Users, Leagues, versioned
RuleSets, Seasons, Races, Drivers, Tiers, Picks, Scores).prisma7.config.ts — Prisma 7 moved the datasource connection URL out of
the schema file and into this config file; it reads DATABASE_URL from
the environment.src/lib/prisma.ts — the app's PrismaClient singleton, constructed
with the @prisma/adapter-pg driver adapter (required at runtime in
Prisma 7).prisma/migrations/ — the initial migration, generated from the schema
with prisma migrate diff (no live database was available while
scaffolding this project, so it wasn't created with migrate dev).
Review it, then run npm run db:migrate (prisma migrate deploy)
against a real database.Useful scripts:
npm run db:migrate # apply migrations (prisma migrate deploy)
npm run db:migrate:dev # create + apply a new migration from schema changes
npm run db:studio # browse data in Prisma Studio
DATABASE_URL to
your Postgres connection string (for all environments you plan to
deploy).npm install runs prisma generate automatically via the
postinstall script, so the client is always in sync with the schema.npm run db:migrate against the production database (e.g. from
your machine with DATABASE_URL pointed at production, or via the
Vercel CLI/a one-off job) to create the tables. Migrations aren't run
automatically as part of the build, so a fresh database won't have
tables until you do this once.