ff-jarvis
A fantasy football model that tests popular draft narratives against 15 seasons of data and keeps only the ones that win. Powers the Draft War Room and Team Watch.
+24 to +55points a season over drafting by ADP, in simulated drafts 2011 to 2025; ahead in 12 of 15 seasons
- Python
- pandas
- React
- Vite
- Tailwind
- Vercel
- Data from ESPN, Yahoo, Sleeper, nflverse, betting props and weather, pulled nightly.
- Backtested in simulated 12-team drafts on the 2011 to 2025 seasons.
- A Python pipeline turns 15 seasons of draft and stat data into one JSON file the React board loads.
- The pick engine is pure JavaScript, so the board re-ranks in the browser after every pick, no server.
- The same engine can draft for you, running 30 full drafts from your seat in a few seconds, every strategy on the same random draws.
Team Watch
Your fantasy stats, start/sit calls and player breakdowns in one place, powered by ff-jarvis.
- Claude
- Python
- Vanilla JS
- Canvas 2D
- CSS
- Vercel
- Claude writes the words and Python checks them. A number that isn't in the data sends the reply back once, then it's replaced with plain facts.
- For game previews, Claude predicts each game before it sees the betting line, and every pick is graded against the final score.
- For highlights, Claude picks from a shortlist Python builds, and each line is checked against that player's numbers.
- For the league roast, one Claude pass drafts and a second ranks, and the best draft that passes the checks ships.
- The pack tear follows your finger, with drag progress driving the CSS variables that peel the foil.
- The stat crystal is hand-rolled 3D on a 2D canvas, and a tap tilts it flat into a radar chart.
Restock Watch
Pings Discord when sealed Pokémon, One Piece or Riftbound product restocks at 7 big retailers, and flags whether the price is fair or a scalper's markup.
- Python
- Browser automation
- Discord
- Vercel
- Each retailer gets its own method, from Best Buy's official API to Walmart's embedded page data to Target read inside a real Chrome.
- Prices each restock against retail, with TCGplayer for market value.
- Within 10% of retail is an urgent Discord ping; above that, a quiet one.
- A hot score ranks products by market premium, product type, Reddit buzz and stock state.
Seat Scout
Finds the best seats still open for selected showings in California.
- Node.js
- Chrome DevTools Protocol
- Discord
- Vercel
- Reads seat maps from inside a real Chrome session over the DevTools protocol.
- Seats are tiered Center, Mid-back or Edge by depth and side; the front 30% of rows never count.
- A run of n open seats together yields floor(n/2) pairs, each rated by its worse seat.
- The public page shows counts only, sorted by distance from you. A Discord bot scans when @mentioned.
Team Lock
A fantasy football auto-battler. Build a roster, call plays, and lead your team to the championship.

In design
- Python
- PixiJS
- WebGL
- ComfyUI
- A Python simulator plays out each down from seeded rules that switch on and off.
- The animation runs on a Spine-style 2D rigging engine built from scratch, where each drawing is cut into parts and each part is a PixiJS mesh bent every frame.
- Springs give soft parts follow-through, and two-bone IK keeps planted feet on the ground.
- Motion is layered pulses with smoothstep easing, not keyframes.
- Character art comes from a ComfyUI pipeline.