Diamond Academy ← csonnier.com
Live Season 1 · Week 1 of 6 · Science & History · Grades 3 & 4

Diamond Academy

Every lesson is a game. Every card is earned.

We homeschool our two boys, and they live for baseball. So instead of fighting it, I built their science and history curriculum into a baseball season. Each week is a unit. Each lesson is a game played around the bases. Mistakes cost nothing, cards are earned, and XP clears the fence toward real rewards like picking the movie or a late bedtime.

It runs at home on an iPad. There is no public sign-up and no link here on purpose. This page is a working replica of what the boys see, built so you can walk the same path they do: pick a player, check the dashboard, play a lesson, pull a card.

Player selectWho's up?
RookieNo. 3
Ready 3
3rd grade#3 · Rookie

Beau

GP
0
AVG
.000
HR
0
XP
0

Up next: Science · Week 1 — Thinking Like a Scientist

Select Beau
VeteranNo. 4
Ready 4
4th grade#4 · Veteran

Isaac

GP
0
AVG
.000
HR
0
XP
0

Up next: History · Week 2 — Maps and Geography

Select Isaac

Step 2 · The pregame show

Night: your stats.

The dashboard reads like a broadcast. GP is lessons completed. AVG is first-try accuracy. HR is a nailed mastery question. Every number is derived from an append-only log, so nothing can be double-counted.

Player profile · #3

Beau

3rd gradeSeason 1 · Week 1 of 6
GP
0
AVG
.000
HR
0
RBI
0
SB
0
XP
0
Live Continue season

Science · Week 1 — Thinking Like a Scientist

Lesson 1: Welcome to the Baseball Science Lab

123M

Inning 1 · Pregame · 95 XP on the line · about 25 minutes

Continue

☾ Night: your stats.☀ Day: your lessons.

Lessons play in daylight

Next reward

Ice cream run

0 / 1,000 XP

02505007501,000

388 XP to go. About four lessons. Clear the fence to cash in.

250 · Pick the movie 500 · Late bedtime 1,000 · Ice cream run 1,500 · Ballpark day

Season 1 line score

Runs = XP earned each week

Wk123456XP
Science0
History128132260
FinalLiveLocked

Step 3 · Play ball

Day: your lessons.

This is a real lesson from the curriculum, Grade 3 Science, Week 1, Lesson 1, playable right here. Go around the bases: answer the pregame question, read the scouting report, take your at bat, and close it out in the bottom of the ninth.

BeauScienceWeek 1 — Thinking Like a ScientistLesson 1

Grade 3 Science · Week 1 · Lesson 1

Welcome to the Baseball Science Lab

Linescore · XP by inningInn 1
PGSRAB9thGBXP
– – – – 0

Now battingOn deck circle · Recall

Pregame

10 XP

The team wants to know why some ground balls sneak through the infield. What should its science department do first?

A prediction is never wrong. It just gets tested.

On deck1st base · Learn

Scouting Report

15 XP

Opens after Pregame.

Welcome to the lab, Beau. Every big-league club has a science and analytics department. Its job is to study the game carefully so the team can make better choices.

Scientists work the same way whether they study baseballs, bugs, or stars:

  • They ask a question, like "Do ground balls roll farther on dirt or on grass?"
  • They observe. That means they use their senses and tools such as a tape measure or a stopwatch.
  • They collect evidence. Evidence is what they observed and measured, written down so anyone can check it later.
  • They look for a pattern in the evidence and share what they found.
  • Observe

    To notice something carefully with your senses or with a tool.

  • Observation

    Something you noticed. "The ball rolled 12 feet" is an observation.

  • Measure

    To use a tool to find out how long, how heavy, how hot, or how fast something is.

  • Evidence

    Observations and measurements that are written down so they can be checked.

Scout the play

ThrowCatchHit

The pitcher throws.

Key idea: A scout writes down only what happened. The pitcher threw the ball, the catcher's glove stopped it, and on the next pitch the bat sent the ball toward the outfield. Ideas about why come later.
Observation checkCould someone standing next to you see, hear, or measure the same thing? If yes, it is an observation.

Finish the report: +15 XP

Up next2nd base · Practice

At Bat

30 XP

Opens after Scouting Report.

Question 2 of 3 · the real lesson also has a pick-every-one and a put-in-order question

A scout at a different game writes four notes. Which note is an observation?

Attempt 1

Final inningHome plate · Mastery

Bottom of the 9th

30 XP

Opens after At Bat.

The team wants to know if a new glove helps the shortstop catch more ground balls. Which plan collects real evidence?

Attempt 1 · first-try correct = a home run

Game over. Lesson complete.95 XP banked, Rookie Scientist card pulled, Lesson 2 unlocked. The Game Ball below is a bonus round.

See the pull

BonusThe mound · Reflect

Game Ball

+10 XP

Bonus round. Opens after Bottom of the 9th.

What does a scientist do that a fan in the stands might not do? Use the words observe and evidence.

Hand it in: +10 XP

Step 4 · Postgame

Earn the card. Clear the fence.

Finish a lesson and a collectible card drops, one of 24 per season with four rarities. XP stacks toward a reward track the boys negotiated themselves. Pennants hang for streaks and perfect innings.

Cards earned

3 of 24 collected · tap a card
Common#001
1
Rookie ScientistScience · Week 1
Rare#007
7
Matter ScoutScience · Week 2
Rare#012
12
Road WarriorHistory · Week 2
All-Star#018
18
State ChangerScience · Week 3

Finish the lesson above and the Rookie Scientist card flips face up.

Perfect 9th 3-lesson streak Week 1 champ No-hitter week Season sweep

Game log

Recent
  • HRPerfect Bottom of the 9thScience · Wk 3 — States of Matter · +30 XP
  • ALLPulled an All-Star: State ChangerScience · Wk 3 · Card #018
  • SBEnrichment lesson done a day earlyHistory · Wk 2 · +10 XP
  • RBIThree-lesson hit streakSeason · +15 XP

Step 5 · The front office

Under the hood.

Boring technology on purpose. Two students, one household, no multi-tenancy, no OAuth, no background jobs, no runtime AI. The whole thing is a single SQLite file and a folder of YAML.

72Lessons in Season 1

24 weekly units across Grade 3 and Grade 4, Science and History. Six weeks each, three lessons plus a hands-on Family Mission the boys do together.

YAMLCurriculum is data

Every lesson is a sequence of typed blocks in a YAML file. One rendering engine, one importer, zero lesson content in templates. Re-import is idempotent.

15Reusable animations

Pitch-catch-hit, fly ball, baserunner motion, energy chain, map regions, timelines. Stimulus modules driven by config, never per-lesson JavaScript.

0Penalty for mistakes

Attempts are recorded, never punished. AVG is first-try accuracy, mastery is eventual. XP is an append-only ledger with a unique key per award, so refreshes can't double-pay.

72Parent guides

Every lesson carries a concept, a goal, and a dinner-table check question for Mom and Dad. The admin side shows exactly what each boy was taught and where he got stuck.

2Days from concept to live

Six design concepts on a Sunday, architecture and contracts approved, then Claude Code agents built the engine, seeded the season, and wrote the specs. The boys played their first lesson Monday.

Rails 8.1SQLiteHotwire · Turbo + StimulusPropshaft + ImportmapTailwindRSpec · 500 specsDocker · GHCRHome server · CI auto-deployiPad firstBuilt with Claude Code

Why not just buy a curriculum? We tried. The good ones are dry, the fun ones are shallow, and none of them know that my 8-year-old will read three paragraphs about friction if the example is a slide into second base. Owning the whole stack means a lesson that doesn't land on Monday gets rewritten by Tuesday.

It is not for sale and it is not open to the public. It is one family's school year, built the way I build everything else.

BBeau
Game XP0
Season612
▲ Inn 1