TOURney — URL Map
tourney.greenskeeper.studio · every route · every link · 2026-05-06
Platform Flow
/
→
/create
→
/t/{slug}
→
all pages
/player
↔
/player-upgrade
/platform
→
/t/{slug}/admin
Shared Nav — every tournament page
Nav drawer — nav-mobile.js (static) + tourney-init.js (auth-gated)
/t/{slug} · Home
/scoreboard
/directory
/feed
/profile
/player · ⛳ My Golf
tourney.greenskeeper.studio · ← Platform
FAB → /scorecard (mobile only)
⚙ Admin → /t/{slug}/admin · admins only
⬡ Platform → /platform · Rob only
Platform Pages
›
/
Marketing landing
›
Nav
/player
My Golf
/platform
Rob only
Page
#demo
demo section anchor
/create
Get Started CTA
mailto:rob@greenskeeper.studio
Contact
/create
Create new tournament
›
Nav
/
← Back to platform
/player
My Golf
Dynamic (post-create)
/t/{newSlug}
redirect after create
/player
My Golf — platform player profile
›
Nav
tourney.greenskeeper.studio
← Platform home
/create
Create tournament
/player
Self (reload)
Page
/player-upgrade
Upgrade account
tel:{phone}
Player phone (if set)
Dynamic — per tournament (injected)
{tourney}/
Tourney home
{tourney}/scoreboard
Leaderboard
{tourney}/scorecard
Score entry
{tourney}/feed
Feed
{tourney}/admin
Admin only
/player-upgrade
Upgrade player account
›
/player
← Back
/platform
Superadmin dashboard
Rob only
›
Dynamic — per tournament row
/t/{slug}/admin
Admin for each tourney
/login
Auth — platform level
›
?redirect= param
returns to originating page after auth
Tournament Pages — /t/{slug}/…
›
/t/{slug}
Tournament home
›
Nav (static)
/scoreboard
Leaderboard
/feed
Feed
/directory
Players
/profile
My profile
Anchor links (on-page)
#about · #format · #schedule · #teams · #rsvp
Page
/player-upgrade
Upgrade CTA
+ Shared Nav (see above)
/t/{slug}/scoreboard
Live leaderboard
›
Nav (static)
/
Home
/scoreboard
Self (active)
/feed · /directory · /profile
Auth-gated nav (desktop)
/t/{slug}/admin
Admin only
+ Shared Nav
/t/{slug}/scorecard
Score entry
›
Nav (static)
/
Home
/scoreboard · /feed · /directory · /profile
Auth-gated nav (desktop)
/t/{slug}/admin
Admin only
+ Shared Nav (FAB = this page)
/t/{slug}/directory
Player directory
›
Nav (static)
/
Home
/scoreboard · /feed · /directory · /profile
Auth-gated nav (desktop)
/t/{slug}/admin
Admin only
Dynamic — per player row
mailto:{email}
Email player
tel:{phone}
Call player
+ Shared Nav
/t/{slug}/profile
Player profile
›
Nav (static)
/
Home
/scoreboard · /feed · /directory · /profile
Auth-gated nav (desktop)
/t/{slug}/admin
Admin only
Page
/player-upgrade
Upgrade account CTA
+ Shared Nav
/t/{slug}/feed
Activity feed
›
Nav (static)
/
Home
/scoreboard · /feed · /directory · /profile
Auth-gated nav (desktop)
/t/{slug}/admin
Admin only
+ Shared Nav
/t/{slug}/admin
Admin dashboard
Admin only
›
Nav (static)
/
Home
/scoreboard · /feed · /directory · /profile
Dynamic — per player row
/player?as={email}
View as player
mailto:{email}
Email player
tel:{phone}
Call player
+ Shared Nav
/t/{slug}/champions
Past champions
›
Nav (static)
/
Home
/scoreboard · /feed · /directory · /profile
Auth-gated nav (desktop)
/t/{slug}/admin
Admin only
+ Shared Nav
/t/{slug}/course
Course info
›
Nav (static)
/
Home
/scoreboard · /feed · /directory · /profile
Auth-gated nav (desktop)
/t/{slug}/admin
Admin only
+ Shared Nav
/t/{slug}/login
Auth — tournament level
›
?redirect= param
returns to originating tourney page
/t/{slug}/install
PWA install guide
›
/t/{slug}
← Home
Active Redirects
›
bova-app.vercel.app/*
→ bova.greenskeeper.studio/t/bova/ (301)
/t/bova-2026/*
→ /t/bova/* (301)
bova.greenskeeper.studio
→ tourney.greenskeeper.studio/t/bova/ (subdomain)
/favicon.ico
→ /favicon.svg