Components

Original components built for this site, covering sports, live events, and blueprint aesthetics, published as a shadcn registry.

Field tested / Schott Classic

Built at the ballpark.

Many of these pieces started as tools for tournament day at the Schott Classic. I turned the useful patterns into portable components for schedules, scorekeeping, and live operations.

Source mark / 01

195.97²

Schott Classic wiffle ballThe Schott Classic wiffle ball icon shown as an animated blueprint drawing.
Schott ClassicVector study
Looking for interactive content formats & widgets?View Snax Format Demonstrations →

Tournament Day

Brackets, seeds, pools, and the countdown to first pitch.

Double Elimination Bracket

npx shadcn@latest add https://benhof.ai/r/double-elimination-bracket.jsonDocs & API →

Double Elimination Tournament Bracket

Winners Bracket (0 Losses)
Winners Semifinals
1Backyard Bombers6
4Scuff City2
Sat 10:00 AMField 1
2Dad Bod Dynasty4
3The Whiffleblowers7
Sat 10:00 AMField 2
Winners Finals
1Backyard Bombers5
3The Whiffleblowers3
Sat 1:00 PMField 1
Losers Bracket (1 Loss — Elimination Games)
Elimination Round 1
4Scuff City8
2Dad Bod Dynasty5
Sat 11:30 AMField 3
Losers Finals
3The Whiffleblowers4
4Scuff City6
Sat 2:30 PMField 1
Grand Championship Showdown
1Backyard Bombers-
4Scuff City-
Grand Championship (If Necessary)Main Field

Tournament Bracket

npx shadcn@latest add https://benhof.ai/r/tournament-bracket.jsonDocs & API →

buildBracketRounds(): first round + results in, later rounds derived from winners. Hover a team to trace their run.

Round of 16
1Backyard Bombers8
16The Ringers1
Sat 9:00 AMField 1
8Caught Looking3
9Basement Legends4
Sat 9:00 AMField 2
5Scuff City6
12Rip City2
Sat 9:00 AMField 3
4Plastic Fantastic4
13Dad Bod Dynasty5
Sat 9:00 AMField 4
6Pitch Please7
11The Big Sticks5
Sat 10:00 AMField 1
3The Whiffleblowers9
14Off the Garage3
Sat 10:00 AMField 2
7Yellow Bat Society5
10Fully Loaded4
Sat 10:00 AMField 3
2Bat Attitudes6
15Mercy Rule0
Sat 10:00 AMField 4
Quarterfinals
1Backyard Bombers5
9Basement Legends2
Sat 11:30 AMField 1
5Scuff City3
13Dad Bod Dynasty4
Sat 11:30 AMField 2
6Pitch Please2
3The Whiffleblowers6
Sat 11:30 AMField 3
7Yellow Bat Society4
2Bat Attitudes7
Sat 11:30 AMField 4
Semifinals
1Backyard Bombers7
13Dad Bod Dynasty3
Sat 1:30 PMField 1
3The Whiffleblowers4
2Bat Attitudes5
Sat 1:30 PMField 2
Champion
2Bat Attitudes
Round of 16
1Backyard Bombers8
16The Ringers1
Sat 9:00 AMField 1
8Caught Looking3
9Basement Legends4
Sat 9:00 AMField 2
5Scuff City6
12Rip City2
Sat 9:00 AMField 3
4Plastic Fantastic4
13Dad Bod Dynasty5
Sat 9:00 AMField 4
6Pitch Please7
11The Big Sticks5
Sat 10:00 AMField 1
3The Whiffleblowers9
14Off the Garage3
Sat 10:00 AMField 2
7Yellow Bat Society5
10Fully Loaded4
Sat 10:00 AMField 3
2Bat Attitudes6
15Mercy Rule0
Sat 10:00 AMField 4
Quarterfinals
1Backyard Bombers5
9Basement Legends2
Sat 11:30 AMField 1
5Scuff City3
13Dad Bod Dynasty4
Sat 11:30 AMField 2
6Pitch Please2
3The Whiffleblowers6
Sat 11:30 AMField 3
7Yellow Bat Society4
2Bat Attitudes7
Sat 11:30 AMField 4
Semifinals
1Backyard Bombers7
13Dad Bod Dynasty3
Sat 1:30 PMField 1
3The Whiffleblowers4
2Bat Attitudes5
Sat 1:30 PMField 2
Champion
2Bat Attitudes

schedulePlacement="between" for tournament day: one game live, one upcoming, final TBD

Semifinals
1Backyard Bombers4
LiveField 1
13Dad Bod Dynasty2
3The Whiffleblowers
Sat 1:30 PMField 2
2Bat Attitudes
Final
TBD
Sat 3:30 PMField 1
TBD
Semifinals
1Backyard Bombers4
LiveField 1
13Dad Bod Dynasty2
3The Whiffleblowers
Sat 1:30 PMField 2
2Bat Attitudes
Final
TBD
Sat 3:30 PMField 1
TBD

Bracket Pick'em

npx shadcn@latest add https://benhof.ai/r/bracket-pickem.jsonDocs & API →
Tap a team to pick: 0/7 games picked
Quarterfinals
1Backyard Bombers
8Caught Looking
4Plastic Fantastic
5Scuff City
3The Whiffleblowers
6Pitch Please
2Bat Attitudes
7Yellow Bat Society
Semifinals
TBD
TBD
TBD
TBD
Final
TBD
TBD
Quarterfinals
1Backyard Bombers
8Caught Looking
4Plastic Fantastic
5Scuff City
3The Whiffleblowers
6Pitch Please
2Bat Attitudes
7Yellow Bat Society
Semifinals
TBD
TBD
TBD
TBD
Final
TBD
TBD

Pool Standings

npx shadcn@latest add https://benhof.ai/r/pool-standings.jsonDocs & API →
Pool A
Rank#TeamW-LRDRS
1Backyard Bombers3-0+1521
2Scuff City2-1+415
3Mercy Rule1-2-59
4The Ringers0-3-144
Pool B
Rank#TeamW-L-TRDRS
1Bat Attitudes2-0-1+917
2The Whiffleblowers2-1-0+1019
3Dad Bod Dynasty1-1-1012
4Fully Loaded0-3-0-195

Event Countdown

npx shadcn@latest add https://benhof.ai/r/event-countdown.jsonDocs & API →
Schott Classic 2026
LIVE
13
fields
4
games guaranteed

Event Operations

Schedules, check-in, weather alerts, and live timing for tournament day.

Weather Delay Banner

npx shadcn@latest add https://benhof.ai/r/weather-delay-banner.jsonDocs & API →
LIGHTNING DELAY — FIELDS CLEARED

30-minute mandatory lightning hold in effect. All fields cleared. Next safety evaluation at 1:30 PM.

Fields 1-4 Tarped / Infield Maintenance Active

Hold Timer
30:00
Estimated Resume
1:45 PM EST
Simulate Status:

Field Schedule

npx shadcn@latest add https://benhof.ai/r/field-schedule.jsonDocs & API →
Saturday pool play
TimeField 1Field 2Field 3
8:30 AM
Bombers6
Ringers2
Final
Scuff City3
Rip City4
Live
Big Sticks
Fully Loaded
Scheduled
9:45 AM
Bat Attitudes
Pitch Please
Scheduled
Mercy Rule
Dad Bod Dynasty
Delayed
Open

Roster Check-In

npx shadcn@latest add https://benhof.ai/r/roster-check-in.jsonDocs & API →

Roster check-in

Backyard Bombers

1 / 4 ready

PlayerArrivedWaiver
  • Riley Chen

    #7

  • Marcus Hill

    #12

  • Eli Brooks

    #4

  • Noah Patel

    #21

Run of Show

npx shadcn@latest add https://benhof.ai/r/run-of-show.jsonDocs & API →

Tournament morning

  1. Gates and registration open

    OpsDone
  2. Captain meeting

    Rules, weather plan, and field assignments

    BenHappening now
  3. Pool play begins

    FieldsUpcoming
  4. Bracket lock

    Confirm seeds before publishing

    ScoringUpcoming

Scorekeeping

Ported from the Schott Classic scorekeeping app and rebuilt as components for an umpire's phone.

Leaderboard Table

npx shadcn@latest add https://benhof.ai/r/leaderboard-table.jsonDocs & API →

Schott Classic Tournament Leaderboard

RankPlayer / TeamHR Runs AVG Diff
1
Ben Hofstetter
Backyard Bombers
1428.438+34
2
Jake Miller
Dad Bod Dynasty
1122.379+21
3
Sam Vance
The Whiffleblowers
919.321+18
4
Alex Reed
Scuff City
816.307+12
5
Tyler Scott
Yellow Bat Society
715.280+8
6
Chris Evans
Bat Attitudes
614.250+4

Game Setup Panel

npx shadcn@latest add https://benhof.ai/r/game-setup-panel.jsonDocs & API →
11:23

Set up your game

Name the teams, pick the innings, and choose a run rule.

Innings
Run rule

Active Game Card

npx shadcn@latest add https://benhof.ai/r/active-game-card.jsonDocs & API →
11:23

Current game

Backyard Field / Saved just now

Paused
Away

Whiffleblowers

3

Inning▼ 4 of 5
Home

Bat Attitudes

4

Score Panel

npx shadcn@latest add https://benhof.ai/r/score-panel.jsonDocs & API →

A working mini-scorekeeper composed with score-panel, count-display, base-diamond, and play-by-play. Call the game.

▲ 1of 5
Whiffleblowers
At bat
0
Bat Attitudes
0
Ghost runners
Play-by-play

No plays yet.

Count Display

npx shadcn@latest add https://benhof.ai/r/count-display.jsonDocs & API →

Base Diamond

npx shadcn@latest add https://benhof.ai/r/base-diamond.jsonDocs & API →
Ghost runners

Play-by-Play

npx shadcn@latest add https://benhof.ai/r/play-by-play.jsonDocs & API →
  1. ▲ 5Side retired. Bases cleared
  2. ▼ 4Strikeout
  3. ▼ 4Bat Attitudes runner scores from third
  4. ▼ 4Single. Runners move up
  5. ▼ 4Ball

Scoreboard

npx shadcn@latest add https://benhof.ai/r/scoreboard.jsonDocs & API →
Team12345RH
Whiffleblowers0201·36
Bat Attitudes1030·47

Scorekeeper Layout

npx shadcn@latest add https://benhof.ai/r/scorekeeper-layout.jsonDocs & API →
11:23
Live/Field 1
Game 24 / Synced
▼ 4of 5
Whiffleblowers
3
Bat Attitudes
At bat
4

Final Score Summary

npx shadcn@latest add https://benhof.ai/r/final-score-summary.jsonDocs & API →
11:23

Final score

Backyard Field / Completed after 5 innings

Final
Whiffleblowers
3
Bat Attitudes
7

Bat Attitudes win

Site & Play

Pieces of this site, extracted because they might be useful.

Blueprint Frame

npx shadcn@latest add https://benhof.ai/r/blueprint-frame.jsonDocs & API →
FIG_002

Now Section

npx shadcn@latest add https://benhof.ai/r/now-section.jsonDocs & API →
  • Running a wiffle ball tournament with unreasonable software

  • Publishing the components this site is made of

  • Writing again

Updated 2026-07-05

404 Ballpark Radar

npx shadcn@latest add https://benhof.ai/r/wiffle-at-bat.jsonDocs & API →
404 // OUT OF BOUNDS RADAR

Foul ball out of play. Route /components is beyond the outfield fence.

Main FieldField NotesComponents Registry
Click field to trace pitch
SCHOTT CLASSIC // BALLPARK RADAR 04
TARGET COORDINATES
GRID 01-A // HOME BASE

Return to benhof.ai homepage

Or search site index: