Live game updates working again
Fixed a regression that was silently breaking the in-progress score and play feed during VIF league games.
- FiksLive game pages now update in real time again during league games

4× Norgesmester · 2× Seriemester · Stiftet 2022
Hva er nytt på vifbaseball.no
Fixed a regression that was silently breaking the in-progress score and play feed during VIF league games.
The 2026 Grand Slam Softballserien schedule is now on the site — 13 fixtures with VIF playing three games on opening day May 9 against Pretenders and Sandefjord.
Some league players had their 2026 stats split from their pre-2026 history; profiles now stitch together so career totals reflect the full multi-season story. And VIF's win against Nordlys Development Team now appears on the site with full box scores and play-by-play, marked as Exhibition so it doesn't count toward season stats or standings.
Player pages, game pages, and the sitemap now serve from cache instead of rebuilding for every visitor. Live games still update instantly.
Royals, Suns, Bergen vs each other now show their final scores and full box scores after they're played. And the 2026 batting and pitching leaderboards no longer wait for someone to hit 15 AB before showing anyone — leaders appear from the first game.
The home page hero is quieter after a loss, the scoreboard reads left to right, full box scores fill in automatically when games end, and pitchers now appear in the order they took the mound.
The equipment list now groups gear into Påbudt / Anbefalt / Valgfritt so it's clear what's required vs. optional, includes catcher gear, and the position-glove FAQ no longer pushes beginners toward position-specific gloves.
The glove guide now matches mainstream sizing for ages 11-13 and catcher's mitts, fixes a contradiction on first base, and recommends leather over synthetic with a loaner-first path for new players.
When the next VIF game is within 5 days, the home page hero swaps from the last recap to a card linking straight into that game's preview.
On open, the scoreboard ticker now scrolls so the live game (or next-upcoming if not game day) sits in the middle of the visible width. Fixes mobile especially, where the relevant card was getting cut off.
On a doubleheader Saturday, the home page sometimes linked to the wrong game once first pitch hit. Game URLs are now stable from morning to night.
When a game goes live, the home page LIVE badge and live hero cell now refresh on the next visit instead of waiting for the cache window.
Live games now refresh roughly every 10 seconds during play, instead of every 30.
Hero stops overflowing on phones, names render in title case, and the dashboard hides players who left the roster.
A simple landing at /wrapped/2025 that lists every player and links to their personal Wrapped.
Two-way persona reveals show OPS and ERA together as a slash line, pitchers without a Moment slide finally hear their music, and a few smaller fixes around fade-in and same-day duplicate slides.
Emil's Wrapped reads in Norwegian where it makes sense, stat lines stop breaking awkwardly across lines, and the Shutout flair is now Complete-Game Shutout.
The slash line slashes and the team record dash now sit at the right vertical position, and the team record digits use the brighter neon blue.
iPhone users with Reduce Motion enabled now see the tap-to-continue chevron quickly so they aren't stuck.
The grind slide's number rolls up at a slower pace, and the tap nudge holds off longer before appearing.
Wrapped slides are reorganized so each song actually plays for a meaningful stretch instead of getting cut off mid-snippet.
Jose's badge metric labels and the volume slide labels now render in Spanish, matching the rest of his localized copy.
Wrapped now auto-advances reliably across every slide; previously the deck could stall on slides like Team Impact or a badge spotlight.
Lars and Justin's Wrapped now show the names they go by, not the full names on file.
Do a shoey joins the rest of the Vet copy on the share card; the persona reveal still gets a paragraph break.
The Two-Way persona reveal now shows OPS + ERA together, with new copy that fits the dual-threat story.
The Vet share card now centers the closing line under the rest of the copy.
The Vet reveal copy gets a break before the shoey so the directive lands on its own line.
Trophy case now renders in full color on iPhone, Champion badges sit alongside the other golds, and The Eye gets tighter spacing plus a complete share card.
Walks no longer headline as your biggest swing, Junkballers get a full slash line on the reveal, and Vets get a new shoey directive.
Your Trophy Case got a fresh design, low-volume players land on a champions slide instead of a percentage, and mobile gets a nudge when you've been parked on a slide.
Wrapped soundtracks now have four songs instead of three for fuller coverage across the show.
The Vet reveal now shows your VIF seasons, not games played.
Per-player soundtracks ride along with each Wrapped. Three songs swell, crossfade, and land with the persona reveal.
Opening a Wrapped no longer flashes the homepage on the way in.
Wrapped pages were occasionally erroring under traffic spikes. Capacity raised so pages stay up when the team starts sharing.
Two visual nits on the Stories experience.
Link previews for a player's Wrapped now read with their name.
Share cards now look like a distilled version of your persona reveal.
Fixed flair spotlight slides showing misleading counts. Bullpen Savior, Multi-HR Game, hitting streaks and others no longer display per-game stats as 'X× this season'.
Wrapped reads more honestly and feels more finished. Stats only show up when they're actually impressive, slides look right, and copy is tighter throughout.
The Year-over-Year slide now shows AVG / OBP / SLG for every VIF season instead of just listing years.
Re-skinned The Slugger persona card with a deep crimson and champagne palette so the persona reads as classic power instead of royal purple.
Tuned several persona qualifiers based on real 2025 data, fixed badge displays that were showing wrong or stuck values, and unlocked the 2025 Champions trophy for the whole roster.
Tightened the Utility MVP persona so it only fires for genuine any-glove-you-need players.
The 2025 Wrapped catalog is now fully dressed. Every one of the 29 season archetypes ships with its own bespoke reveal art, no two personas looking alike — from The Bomber's crimson impact to The Glue's dugout-lamp warmth to The Vet's sepia archival. Mobile-first, same shared design system, same Honest Framing. Still unlisted alongside the rest of the pilot until the narrative wiring completes.
Four new stat-spotlight slides join the Wrapped lineup for players who earn them.
The player-facing surprise teased in 2.7.2 is now a running pilot. Every qualifying Eliteserien player will get a Spotify-Wrapped-style recap of their 2025 season — Stories-format slides, a per-player persona identity (The Bomber, The Ace, The Backstop, and 25 more on the catalog), stackable gold/silver/bronze badges across ~25 leaderboards, rare-achievement flair, and a shareable Instagram-ready card at the end. Still unlisted while the narrative content for real players gets wired up. The Bomber fixture runs start to finish today.
The Little League sesong page now reflects the 2026 Kampprogram: the Nå banner flipped from Vintertrening to Seriestart, and Viktige Datoer 2026 lists the real matches pulled from Spond — opening day ØHIL @ VIF on 2. mai, the NM arrangør weekend on 27. juni, and the season finale at the Mjøndalen Indoor Cup on 31. oktober. The Årshjul now also carries the season all the way through October instead of closing out in September.
Writing the plan for a new player-facing feature dropping before 2026 Opening Day. No user-facing changes yet — this release adds internal architecture docs, design catalogs, and a pilot implementation roadmap to the repo. Stay tuned.
When a VIF game is live, the homepages 2x2 premier card swaps from the latest-finished recap into a dedicated LIVE hero: pulsing red LIVE badge with inning state, big score, last-play banner, and the whole card routes straight into the live view.
Big leap in the mid-game experience. Two tabs at the top of the live view: GAME DAY for the dashboard, BOX SCORE for full per-player batting and pitching tables for both teams — same layout as post-game, updated live every 30s. Recent Plays is grouped by half-inning with type chips (K, OUT, 1B, 2B, 3B, HR, BB, HBP, E, SB), and scoring plays show the running score after the play instead of a plus-delta badge. Matchup cards fall back to the current games line when season stats arent available (common for opponents outside Eliteserien and NM).
Når en kamp er live får den et helt nytt mobil-først layout med pulsende LIVE-merkelapp, score + inning + outs + baser som alltid er synlige, stort count-display, siste play-fortelling, og matchup-kort med season-to-date statistikk som oppdateres hvert AB. Oppdateres via Supabase Realtime (push) med fallback-polling hvert 20s. Strike zone-plot og pitch-sequens dukker opp automatisk i kamper der scorekeeper logger pitch-for-pitch.
Backend groundwork for live game tracking — a Vercel Cron poller, a new pitches table for pitch-by-pitch detail, and Supabase Realtime wiring so the browser can push-subscribe to updates. No UI yet; that's the next step.
Fire eldre innholdssider oppdatert med lenker til de nye pagene (ordliste, klubber, hanske), faktiske faktafiks, og manglende Article-metadata for bedre Google-indeksering.
Major expansion of the Baseball Hanske guide with model recommendations across three price tiers, landed-cost calculator for imports from USA, brand comparison, maintenance and replacement sections. Page reframed for Norwegian buyer intent.
Tre nye innholdssider: komplett oversikt over alle baseball- og softballklubber i Norge med lenker til websider, Instagram og Facebook; dedikert baseball hanske-guide med størrelse etter alder og posisjon; og en introduksjonsside til softball på norsk.
2026 Eliteserien er live med komplett kampprogram, lagoversikt og tabell. Legger til Sverige-exhibition-serien med seks VIF-kamper mot Karlskoga og Rättviks — synlig på hjemmesiden og med egne kamprecaps, men helt separert fra Eliteserien-statistikken. Nordlys Development Team er ekskludert fra Eliteserien-tabellen og statistikken.
New Norwegian baseball glossary page translating 70+ English terms to Norwegian, plus a dedicated section on Baseball Regler explaining how long a baseball game lasts.
Add links to the national team website baseballnorge.no from the Baseball i Norge page and site footer.
Replace placeholder BN text with the NSBF logo for the Baseball Norge footer link.
Simplify article cards on /baseball by removing Les mer link and moving chevron into the title.
Complete redesign of scheduled game preview cards with new visual treatments, pitcher vs hitter matchup cards, and enhanced SEO metadata.
Sitemap coverage for softball splits and stats pages, admin disallowed in robots, venue name corrected in schema.
Grand Slam Softballserien gets the full treatment: stats, tabell, terminliste, kamp pages, spiller profiles with splits, and a redesigned softball hub. Baseball and softball stats live side by side. Home page layout refreshed.
Add full SportsEvent structured data to terminliste: address, image, organizer, offers, endDate, description for all venues.
Move standings to /tabell with Norwegian meta and H1, next-game snippet for Position Zero, Rommen location copy, clean table markup, BreadcrumbList, and global SportsOrganization schema.
Stronger title tag, H1, internal anchor text, and entity-rich footer on /baseball for niche authority on 'baseball' in Norway.
Unified header across Stats and Tabell: Year dropdown, Eliteserien / NM toggle, and Stats / Tabell links. NM stats hub at /stats/nm/[year] and /stats/nm/all-time with same layout as Eliteserien (team stats, batting/pitching leaders).
New interactive record book page at /rekorder with career, season, and single-game records computed from real stats, complete with bento grid layout, pursuit trackers, and detailed dialog views.
Major game detail page redesign with season game ticker for navigating between games, unified site header across all pages, compact responsive cards, and critical OPS calculation fixes for historical games.
Full sitemap audit and rewrite. Adds missing pages, replaces hardcoded years with dynamic generation, includes all historical games and players across every season, and catches pitcher-only players previously invisible to search engines.
Add all-time aggregated views for standings and stats leaderboards. Year selector now includes an All-Time option. Player pages compute VIF-only career stats from per-team year-by-year data, fixing cross-team stat leaking for loaners.
Add a public release notes page with timeline UI, color-coded change badges, and link from the Offisiell Info page.
Add release notes tracking system with pnpm script, player splits SEO metadata, Nordlys dev team identity handling, and loaner protection documentation.
Global Cmd+K player search, baseball-themed 404 page, SEO structured data, and various UI refinements.
Major query refactoring into domain modules, database performance optimization with parallelized queries and indexes, and season hub with historical standings.
Full batting and pitching stats pages, individual player profiles with splits, admin page, and general improvements for substitute players.
Instagram feed integration, major Norwegian baseball content expansion for SEO, scroll reveal animations, and comprehensive metadata optimization.
Spond calendar integration, VIF team photos and branding, mobile game flow redesign, and scoreboard ticker with team logos.
Game detail page with live data, bento-style homepage, program landing pages, skeleton loading states, and light/dark mode support.
Complete pipeline with multi-season support, play-by-play system, box scores, loaner player tracking, and automated nightly CRON sync.
Initial Next.js app with Supabase, Drizzle ORM, and shadcn/ui. Full VIF Baseball database schema
Bygget med kjærlighet for Vålerenga Baseball ⚾