What does the $99 buyer get? A design walk-through.
Every surface where a Featured Player sponsorship currently shows up, the gaps between what we promise on /sponsorships and what we deliver, and proposed upgrades to make $99/mo feel premium. Mockups below use a real player from the live DB (Marcus Spears Jr., 2027 PF, Dynamic Prep) and the actual PrepRadar dark theme so you can see roughly how this lands in production.
1Surfaces shipped todayLive
A. Homepage hero — above "Top Prospects"
Renders as soon as a sponsorship is approved. Photo, name, class/position/height/school, optional buyer blurb, "Sponsored by [name]" line, full-width on mobile and desktop.
"Proud sponsor — represents the program with class and toughness. Watch this one."
2Gaps vs the /sponsorships sales copyPromised, not built
The /sponsorships landing page bullet-lists four perks. Two are live (Homepage feature card, Custom blurb). Two are NOT yet built — that's the $99 risk. Either we build them or we change the sales copy.
"Scout-report headline placement"
Currently nothing. The scout report (auto-generated AI summary on each player page) renders the same whether the player is sponsored or not.
Proposed: see Surface C below.
"Sponsor logo on the player's page"
Currently shows the buyer's NAME (text-only) in the Sponsored badge. No logo upload anywhere.
Proposed: see Surface D below.
3Proposed upgradesBuildable
Six additions in priority order. Each one is independently buildable; you tell me which to ship and I'll do them in a single pass. The check-this-one toggles at the bottom export a brief.
C. Scout-report sponsor banner — closes the "scout-report headline placement" gap
Thin orange-tinted strip above the scout report on the player's page. Sponsor name + optional logo + tagline.
player profile · scout-report card↳ component
BPT
This scout report on Marcus Spears Jr. presented by Bedrock Performance Training · Off-season strength & conditioning for elite prospects.
Scout report
Spears Jr. has the rare combination of length, mobility, and timing… (rest of report renders unchanged).
Effort~2 hours. Add a SponsorshipBanner component above <PlayerScoutReportView>.
SchemaAdd Sponsorship.tagline (text, optional). Capture on the form.
RiskLow. Pure render, no behavior change.
D. "Presented by" callout near the player photo — closes the "logo on the player's page" gap
A small dashed-border block right under the meta line. Logo image (optional upload) + buyer name. Permanent fixture for the sponsorship period.
player profile · header↳ component
Marcus Spears Jr. ♥
PF · Dynamic Prep · Class of 2027 · 6-9
Presented by
Bedrock Performance Training
Effort~3 hours. Adds an optional logoUrl to Sponsorship via Vercel Blob upload (already wired for /submit-player). Renders on profile + scout banner.
When you click "Approve & publish", PrepRadar auto-tweets the new Featured Player and tags the sponsor. Combines two channels (Twitter discovery + sponsor exposure) into one zero-effort post.
PrepRadar
@PrepRadar · 2m
🏀 Featured Player spotlight — Marcus Spears Jr. ('27, PF, Dynamic Prep, 6-9). Watching him this season. Sponsored by @bedrockperf.
RiskLow. PrepRadar already auto-tweets blog posts; this is the same path.
F. Newsletter mention in the next blog roundup
If a Featured Player is active when a blog post generates, the post includes a small "Brought to you by [sponsor]" line. Plus a dedicated "Featured Player this week" sidebar card linking to the player's profile.
This week on PrepRadar · May 9
Three of last week's top performances came from rising 2027 forwards — and the league's pace of commits is picking up as the cycle heats into summer…
This week's Featured Player is Marcus Spears Jr. (Dynamic Prep, '27) — sponsored by Bedrock Performance Training. Read his scout report →
Effort~1.5 hours. The blog generator (lib/blog-generator.ts) takes context. Pass active sponsorship as a section in the prompt.
SchemaNone.
RiskLow. AI-generated text but bounded format.
G. OG image on player profile shows "Sponsored"
When someone shares a sponsored player's profile (Twitter, iMessage, Slack), the link preview includes a "Sponsored by [name]" footer. Minor surface, but every share counts.
Effort~1.5 hours. Edit src/app/players/[id]/opengraph-image.tsx to read the active sponsorship and overlay it.
SchemaNone.
RiskLow. Already a Next ImageResponse.
H. Sponsor "owns" the player's expanded scout panel
The longest piece of content on a player profile is the auto-generated AI scout report — pages of structured insight. Wrap that whole panel in a thin "powered by [sponsor]" frame so the most-read part of the page carries the sponsor's name.
Effort~1 hour. Conditional className on the existing panel.
SchemaNone.
RiskLow. Pure CSS / wrapper.
Bottom line — does $99/mo feel worth it?
Today, honestly: it's borderline. Two surfaces, both real but understated. The /sponsorships sales copy promises four perks, and we ship two.
Closing surfaces C + D (scout banner + presented-by callout with logo) brings us to 4-of-4 on the sales copy promises and adds visible sponsor presence on every player view, not just the homepage.
Adding E + F (auto-tweet + newsletter mention) extends the sponsorship beyond the on-site placement into the channels where buyers care about — Twitter for visibility, newsletter for warm audience. These are the multipliers that make $99 a no-brainer.
G + H are nice-to-have polish — small lift, marginal extra value. Skip on first pass.
My pick: ship C, D, E, F together. ~8.5 hours of work end-to-end. Doubles the perceived value of the package without doubling the price.