Releases · The trail behind us
What we shipped,in order.
No hype, no spinners — every meaningful change to P4cely since open beta. Most recent at the top. Click any release to expand the change list.
- v1.2.1 · Tracking forward, smarter heatmap, fresher index13 changes
- NEW
Tracking-forward sync: when you click "Sync from Rocket League" for the first time, Pacely sets a checkpoint instead of pulling stale history. Only matches you play AFTER that moment land in your index — so your free quota goes to fresh games where the coach report can actually help you next session, not to last month's rage-quits.
- NEW
Watching dashboard: brand-new empty state for the gap between linking Rocket League and your first tracked match. Pulsing radar, live counter ("Watching for 12s"), next-poll countdown — reads like Strava's between-runs view, not a generic "no matches yet" page.
- NEW
Heatmap Compare view: a single divergent map showing exactly where you spend more time than your reference pro (rose) versus less (emerald). Replaces the side-by-side blue maps that buried subtle positional differences. Whole-match, single-glance coaching.
- NEW
"NEW" pill on freshly synced matches in the sidebar, with a slide-in animation as they arrive. Click the match and the pill clears — a quiet way to know which replays you still haven't reviewed.
- NEW
Background-sync toast: when the periodic poller lands a new match in the index, you get a "X new match(es) synced" notification — no more wondering if a refresh would surface something new.
- NEW
Tier-gated sync button: Free's "Sync from Rocket League" is now a status indicator ("Auto-sync next 8m") that respects the auto-poll cadence. Pro can still hit it any time for an instant manual fetch.
- NEW
Epic auth dialog redesigned in the editorial register — numbered step rows, proper marketing-display title, plus clipboard auto-detect: paste-or-copy the Epic JSON anywhere and the dialog auto-fills the code when you come back.
- POLISH
Heatmap intensity scale: each map now normalises to its own peak. The pro's 30-match aggregate no longer fades against your single-match cluster, and your hot zones stay legible against the pro's. Cluster shape is the comparable signal — magnitude was always misleading across asymmetric samples.
- POLISH
"Member since" on the dashboard now reflects when you joined Pacely, not when your platform identity first appeared. Survives session resets the way users actually expect.
- POLISH
Dashboard empty state copy aligned with tracking-forward: "Linking Rocket League sets your monitoring checkpoint" instead of the old "Sync pulls the last ~20 matches" promise we no longer make.
- FIX
Google account linking after platform signin no longer trips an SSL error on localhost setups — the auth callback now respects the original request protocol instead of hardcoding HTTPS.
- FIX
Platform-claim success toast now names the correct provider — "Your Epic Games account is now linked" instead of always saying "Steam" regardless of which one you actually linked.
- FIX
Mid-claim redirect loop fixed: when finishing a Google link from a Steam/Epic seed account, the dashboard no longer bounces you to the profile page mid-flow because of a dropped session header.
- NEW
- v1.2.0 · Auto rank, locked playlists, EU-friendly billing14 changes
- NEW
Rank is now read straight from Rocket League. Once you connect your platform account, Pacely syncs your tier and MMR after every parsed match — the manual rank picker steps aside in favour of a read-only "Synced from Rocket League" badge.
- NEW
Rank progression chart in Settings — your MMR over time on the currently selected playlist, drawn from every PsyNet snapshot we've captured so far.
- NEW
Free-tier playlist lock: once you finish onboarding, Free locks you to the playlist you picked. The TopBar mode toggle and Settings show the other modes with a small lock pill instead of letting you switch silently.
- NEW
Free-tier reference-player lock: the same rule extends to your chosen pro. Free picks one pro at onboarding and stays with them; Pro switches both pro and playlist any time.
- NEW
Match list now defaults to your active playlist after onboarding — no more 1v1 noise on a Free 3v3 account, no more confusion when a Pro user switches mode.
- NEW
Lenient drift hint: a Free user who hasn't played their locked playlist in a month but is active in another mode now sees an editorial nudge above the dashboard suggesting Pro.
- NEW
Switched payments to Lemon Squeezy as Merchant of Record — they handle EU VAT and are the legal seller, so Pacely can launch in the EU without a P.IVA. Checkout opens at pacely.lemonsqueezy.com; no credit-card data ever touches our servers.
- POLISH
Pricing copy aligned across the homepage, /billing and the Terms: Free clearly says "1 pro, 1 playlist (locked)"; Pro clearly says "Switch pro & playlist any time". The old "Unlimited" line is replaced with the honest "50 matches / month" cap.
- POLISH
Initial PsyNet backfill for Pro users respects the chosen playlist instead of grabbing whatever was most recent.
- POLISH
Welcome row on the dashboard now greets you by your nickname instead of the synthetic platform pseudo-email (the "Hi steam-12345" was unintentional).
- POLISH
Map names for Mannfield Dusk, AquaDome, Parc de Paris and Forbidden Temple variants — older arena codes no longer fall through to the underscore-strip fallback.
- FIX
Timeline pill markers near the end of a match no longer overflow the right edge of the track. Late-game events now anchor cleanly at the boundary while keeping their min-width for clickability.
- FIX
Rank progression chart edge cases: single snapshot now renders a visible point, constant-MMR series gets a horizontal centerline, and the SVG box keeps a 16:5 aspect ratio so mobile no longer letterboxes the chart.
- FIX
Oski's pro-picker tile is no longer blank — the avatar pointed at a renamed file that was never shipped.
- NEW
- v1.1.1 · The roster, public10 changes
- NEW
Public roster index at /pros — editorial grid of every pro Pacely tracks, in homepage order, with a team filter for the bigger orgs.
- NEW
Public per-pro dossier at /pros/[slug] — atmospheric photo banner, italic display name in the team's accent colour, four-discipline percentile bars, and BallChasing source replay links for every aggregated row.
- NEW
Per-pro editorial subhead on the dossier — a verified quote or notable moment for fourteen of the fifteen pros, sourced from Liquipedia, BLAST.tv, GGRecon and the players' own posts. No invented copy.
- NEW
Country flag + full country name on the pro byline (was a bare 'MA' / 'DK' code). Falls back gracefully when the flag CDN is blocked.
- NEW
Roster nav entry-points across the marketing surface — top header, footer Resources column, homepage hero tertiary strip, and a breadcrumb on the dossier itself.
- POLISH
Percentile labels rewritten as low / typical / high (was p25 / p50 / p75), with a one-shot reading caption above the cards — no per-row tooltip needed.
- POLISH
Per-team accent palette refined for Gentle Mates, Ninjas in Pyjamas, Shopify Rebellion, Geekay Esports and NRG. Propagates to homepage hover, index card border, and dossier paint.
- POLISH
Pro byline trimmed to Team / Origin / Last refresh / Reading window — the empty 'Total replays: 0' placeholder is gone.
- FIX
Dossier accent now correctly inherits the team palette. The previous cascade let the dark-theme neutral and the marketing red each override the per-pro accent in different ways; the colour is now anchored as an inline style on the dossier root.
- FIX
Roster card border on hover paints with the team's primary, not the marketing red default — fixed via a single slug → accent resolver shared between homepage and roster index.
- NEW
- v1.1.0 · Pro × mode dossiers12 changes
- NEW
Public pro dossier at /pros/[slug] — editorial press-room layout with per-mode percentile bars and BallChasing source links for every aggregated replay.
- NEW
Onboarding wizard at /onboarding/pro-mode — pick your reference pro and the discipline you want analyzed (1v1 ranked, 2v2 ranked, 3v3 ranked, 3v3 private). The dashboard now gates on having both set.
- NEW
Strict per-pro × per-mode × is_private baselines: comparisons no longer fall back across modalities, so private 3v3 gets compared against private 3v3 only.
- NEW
Pre-parse mode gate on upload — replays whose mode doesn't match your selection are rejected at upload-confirm with a mode_mismatch status (amber badge in the match list, dedicated panel in the detail view) instead of silently skewing the report.
- NEW
Weekly baseline cron fans out 4 refresh jobs per stale pro (1v1 ranked + 2v2 ranked + 3v3 ranked + 3v3 private) covering 10 pros per tick.
- POLISH
Baseline rolling window extended from 30 to 60 days — better aligned with pro tournament cadence.
- POLISH
Match-detail Metrics and Heatmap tabs now read the selected pro from the user-prefs store instead of prop drilling — copy stays in sync the moment you switch pro.
- POLISH
PsyNet sync silently skips matches that don't match your chosen mode before paying the CDN download — fewer noisy mode_mismatch rows on autonomous syncs.
- FIX
Bucketing scheme made p50 reachable: values exactly at the median now classify as p50 instead of being absorbed into p75.
- FIX
detectIsPrivate regex tightened — Unranked / Exhibition / Lan no longer misclassified as private lobbies.
- FIX
Recommended drills card no longer surfaces the placeholder XXXX-XXXX-XXXX-XXXX training pack code as a copyable CTA.
- FIX
4v4 dropped from app-level filters and types — the enum value remains in Postgres for historical rows but no UI surface offers it any more.
- NEW
- v1.0.4 · Mobile-ready11 changes
- NEW
Match-list drawer on mobile — full match index now reachable from the TopBar below the lg breakpoint.
- NEW
Dynamic Open Graph image at the edge — every shared link now previews with the editorial card.
- NEW
Sitewide SEO metadata: per-page titles, OG/Twitter cards, viewport, theme-color (light + dark).
- NEW
Privacy & Terms pages live, written end-to-end in plain language.
- POLISH
Section steppers redesigned: inline editorial marker (Section / One) instead of a 140px watermark that overlapped headlines on 1440–1700px viewports.
- POLISH
TopBar collapses gracefully below md — non-essential badges hide, drawer trigger surfaces.
- POLISH
Marketing footer wordmark scales down without clipping ascenders on narrow phones.
- POLISH
±20% jitter on match polling so concurrent sessions don't fan into the API on the same tick.
- FIX
Contrast bumped on /login ("Steam or Epic" connector) and /settings/platforms ("Not linked") so they pass WCAG AA on dark.
- FIX
Platform account claim loop fixed — merging Steam/Epic with Google no longer drops profile settings or traps you in an onboarding loop.
- FIX
Removed the "works best on desktop" mobile banner — the dashboard is now genuinely responsive top to bottom.
- NEW
- v1.0.3 · Editorial pass8 changes
- NEW
/billing redesigned in the editorial register — Free strip + Pro card with brand-red upgrade pill, sparkles micro-interaction.
- NEW
/dashboard/settings rebuilt as a workshop-bench: sticky left rail, hairline rules between blocks, no card-in-card chrome.
- NEW
Profile completion flow at /onboarding/profile — first/last name, nickname, contact email captured right after Steam/Epic signin.
- NEW
Dashboard match-detail tabs scroll horizontally on mobile so all five tab labels stay legible.
- POLISH
AccountMenu now shows the real nickname + contact email instead of the synthetic platform handle.
- POLISH
Mode-tile copy on onboarding rewritten with coach vocabulary (3v3 = RLCS main stage, rotation discipline).
- FIX
Pro picker no longer skipped after profile completion — gate is now DB-authoritative (current_pro_id), not a stale Zustand value from a previous browser session.
- FIX
Pricing copy aligned across home and /billing (€7/mo, €70/yr — was inconsistent at €9 in one place).
- NEW
- v1.0.2 · One door for sign-in4 changes
- NEW
Unified /login + /register: Steam OpenID and Epic Games OAuth are the only entry points. No more email/password.
- NEW
Marketing homepage rebuilt around the editorial register — italic display headlines, mono caps eyebrows, hairline rules, brand-red accent.
- POLISH
Steam linking double-toast suppressed (React StrictMode dedupe via toast id).
- FIX
Match list 500 traced to a Drizzle migration drift — schema and journal re-aligned.
- NEW
- v1.0.1 · PsyNet sync hardening4 changes
- NEW
Trial-Pro slot surfaced in the quota meter so trial-tier matches don't look like over-quota errors.
- FIX
Mutex on manual + periodic PsyNet sync killed the quota_exceeded race.
- FIX
Empty-list polling gap closed after async sync click — the sidebar now updates without a manual refresh.
- FIX
Failed matches hidden from the user-facing list (still queryable internally for triage).
- NEW
- v1.0.0 · Open beta3 changes
- NEW
First public open beta of P4cely. Steam/Epic sign-in, replay sync, AI coach report, four-tab match detail (Overview, Coach Report, Metrics, Heatmap, Timeline).
- NEW
Pro-baselined comparisons across the RLCS roster — match-by-match tape, not just stats.
- POLISH
Migrated BullMQ off pay-per-command Redis to a self-hosted Fly Redis app — sustainable for indie scale.
- NEW
Want to be notified when something ships? Sign in once, and we'll send you a single line of email per release — never marketing.