v0.95.2

Patch Notes

Plain-English summary of what shipped each version. Newest first.

v0.95

2026-05-08

New filters, new rewards, new domain — and the eBay story

  • We're now op-atlas.app
    The site moved to its own domain. Old Vercel links still redirect, but go ahead and update bookmarks to https://op-atlas.app. Same site, same data, just a real address.
  • Filters got a major redesign
    Single-row filter bar across the top with separate boxes for Origin, Star, Sort, Color, Rarity, Types, and Effects. Mobile users get a clean bottom sheet for each filter instead of a cramped chip cluster. The Effects filter is new — 12 canonical labels ("draw", "counter", "trash", etc.) that match across both ability and trigger text.
  • Rewards model overhauled
    Every 100 contribution points earns one Super Rare card (cap 50 cards per user, 350 total per page). The first 20 people to hit 1,000 points earn a random Premium Alternate. The first 3 to hit 5,000 points earn a Mythic worth 1,500+ THB. Setup is one-time: enter your shipping address on /me/rewards once, then click "Claim all prizes" whenever you want to cash in.
  • Better Atlas Est. — fewer wrong prices
    The fair-value formula now pulls from a fifth source (CardTrader) on top of Cardmarket, TCGplayer, PriceCharting, and yuyu-tei. Variant detection got tighter: parallels and alt-arts almost never show the base card's price by mistake anymore. About 92% of tracked cards now have a multi-source Atlas Est.
  • Cleaner mod and contributor experience
    Activity feed on /me distinguishes auto-approved / mod-approved / pending / under-review at a glance. Admins can self-approve their own swaps with one click, and bulk-approve the queue when they have a backlog. Mod queue prices are normalized to USD so you can compare "user said" vs "now" without doing FX math in your head.
  • Search got faster (and a race-condition bug is fixed)
    Browsing rapidly through search results no longer occasionally freezes on stale data. Per-tile caches and lazy-loaded price toggles dropped re-render cost; the first 24 tiles now eager-load images so the grid feels instant.
  • Real 404s for fake card URLs
    Typing /card/DOES-NOT-EXIST now returns a proper 404 (was silently returning a 200 with a not-found UI, which broke crawlers and link-checkers).
  • Sharing the site looks better
    Pasting an OP-Atlas link in Discord, Twitter, or Slack now renders a proper preview card with title, description, and branding. Was rendering as a bare URL before.
  • eBay sold prices: temporarily down, work-in-progress
    eBay's bot-protection layer (Akamai) recently started blocking every request from Vercel-hosted apps at the network level — affects every site like ours. The 4th price pillar is dark while we wait for an official eBay API approval (their Marketplace Insights program). Submitted 2026-05-08; review typically 1–6 weeks. The other 4 sources are unaffected.

v0.925

2026-05-04

Bug-fix sweep — variant correctness + tighter privacy

  • Parallels show their own price now, not the base print's
    When you opened a Manga / Alternate Art / SP version of a card, search results and the home grid sometimes showed the BASE print's price by mistake. We were taking the first row of price data without checking which printing it was for. Fixed across search, the daily synthesis, and card detail. ~45 of the top 200 most-valuable cards were affected.
  • Daily synthesis sanity guards tightened
    Atlas Est.'s outlier trim now properly weighs source trust, so a single low-trust reading way off from the rest can't drag the answer. Also prevents a future tuning from accidentally feeding zero-weight readings into the formula.
  • Suggesting a different product or URL: no more silent loss
    Previously when our team approved a swap suggestion, the live overlay didn't actually carry the product ID through — so the swap technically passed but didn't change anything. Fixed, and we backfilled the ones already on file.
  • Daily index refresh actually runs
    An internal cron path was pointing at an admin-protected URL; the daily 04:00 UTC refresh has been silently 401-ing. Moved to a proper cron route. Tonight's bake will run.
  • Privacy: less leakage from /api/debug
    The diagnostic endpoint at /api/debug?kind=whoami used to expose cookie names, value previews, and your email even to an unauthenticated caller. Trimmed to counts + booleans for anonymous; full diagnostic stays admin-only.
  • Auth survives outages
    When our auth provider hiccups, the app no longer bounces you to /login mid-session. We now distinguish 'auth temporarily unavailable' from 'genuinely signed out' and surface the right state.
  • Faster pages
    Logged-in pages were doing 2-3 redundant auth round-trips per render. One trip per request now. /me, /admin/*, and the moderator queue feel snappier.

v0.9

2026-05-04

Earn cards by helping with QA — plus Atlas Est. and a faster grid

  • Points for every flag, trust, and swap
    Each contribution earns points when our team approves it. Trust ✓ = 1 point, flag ! = 3, swap (pick the right product) = 9, propose a URL = 15. Survive 30 days uncontradicted and earn another 3 retroactive.
  • Real cards as rewards
    Hit 50 points → claim an SR card. Hit 250 → a Premium Anniversary card. Top contributors over time get high-value cards. Real cards from a real collection, shipped to you. Free site, free rewards.
  • Founding Verifier — first 20 to 100 points
    The first 20 people to hit 100 points become Founding Verifiers. Lifetime discount when paid features eventually launch, plus a permanent badge on your profile and the leaderboard.
  • See what's pending, what was approved, why something got rejected
    Your profile now shows every flag and trust you've made, what state it's in, and — when something's rejected — exactly why so you can learn what we needed.
  • Faster reviews from us
    If your accuracy is high enough we'll start auto-approving your trust ✓ submissions immediately so you don't wait. Every flag still goes through human review.
  • How rewards work, in one page
    New /contributors page explains the points system, the reward tiers, and shows the top 20 leaderboard all in one place. Send it to friends.
  • Sign-in is faster and never gets stuck
    Your name in the top right now appears instantly. Clicking it always opens your profile — no more bouncing back to the sign-in form when you're already signed in.
  • Atlas Est. on every card detail page
    Our daily synthesis of every market's view of a card. We pull live readings from each source we track, weight them by trust and freshness, trim outliers, and bake one number per card per day. Card detail leads with that estimate plus the source range — and a 'How we got this' panel shows every input that fed the formula and which got trimmed. (Home grid + search keep the existing price for now while we tune the formula.)
  • Card tiles got cleaner
    The EN/JP text chip is now a small UK or Japan flag. Source labels above the price are gone — every price renders in the same brand green. Less ink, easier to scan a grid.
  • Search now waits for Enter
    Typing in the home search no longer fires a search on every keystroke. Press Enter to search. On slower devices the input itself feels markedly snappier — no more grid recompute on each character. The dropdown autocomplete on card pages still works as before.
  • Refresh indicator while prices catch up
    First-load 'Refreshing prices…' pill shows while the latest yuyu-tei snapshot streams in, so you know if a number is the cached snapshot vs. fresh.
  • Moderator queue: thumbnails + side-by-side comparison
    Pending flags now show the card thumbnail, name, what the user said, and what the price source currently shows. Swap proposals render the suggested replacement (name, price, link). Propose entries get a clickable URL. Reviewing 20 flags now takes a fraction of the time.
  • Swap + propose actions land in the queue
    Earlier, suggesting a different product or pasting a new URL only saved locally. Now they land in the moderator queue alongside trust/flag, so the curation actually gets followed up.
  • Reliability — fewer ways to break the database
    We rebuilt the row-level security helpers after an early-life database hiccup left them in a flaky state, and captured the fix as a real migration so a fresh environment rebuild can't reintroduce it. Your ✗/✓ clicks, the import of pre-account flags, the moderator queue, and the leaderboard are all back to instant. Bogus card URLs now show a real 'Card not found' page instead of a blank shell.

v0.875

2026-05-01

Sign in. Get credit for your work. Earn rewards.

  • Accounts are here
    Sign in with Google or your email — no password needed. Your name now shows on every flag and trust you make, so you get credit for keeping the site accurate.
  • Your contributions, on one page
    Visit /me to see how many prices you've flagged, how many we've confirmed, and what's still pending. Hit 100 confirmed flags and you can claim a Founding slot — guaranteed lifetime discount when paid features launch.
  • Public leaderboard
    Top contributors get a /leaderboard page. Want to be on it? Tick the box on your profile. Want to stay anonymous? Don't — and you won't be listed.
  • Your flags actually fix things now
    When you flag a wrong price, it goes into a queue for our team to review. Once approved, the fix goes live across the site within seconds — no more waiting for a deploy.
  • Fresh prices from yuyu-tei + better card pictures from CardTrader
    Refreshed the Japanese price snapshot (more reliable now too) and pulled in proper preview images for every CardTrader listing.

v0.85

2026-04-30

New home page, faster card opens, more accurate prices

  • Brand new home page
    Three tabs across the top — Most Valuable, Card Sets, All Cards — let you flip between views in one tap. Cards are bigger, the grid is wider, and the welcome text fades out gracefully as you scroll.
  • Cards fly into the detail page
    Tap a card on the home page and it lifts off the grid, drifts to the center, and lands as the detail-page hero. Smooth, fast, and only happens when the actual card image is ready — no more half-loaded landings.
  • More of the right prices, fewer hidden ones
    Confirmed prices now stay visible even when the system would normally have second-guessed them. 30 prices that were being hidden incorrectly are back. Overall, what you see is more reliably the price you should trust.
  • Real region flags
    The little 'US / EU / JP' labels next to prices are now actual flag icons, drawn so they look the same on every device. Quicker to scan, less crowded.
  • See when prices are being checked
    When a card page opens with cached prices, you'll see a small spinner next to each one while we double-check it against the live source. So you know the prices are both quick to load AND being kept fresh.

v0.8

2026-04-29

Cards know themselves now — image-verified prices across every source

  • Prices are now matched by the actual card picture
    Every Cardmarket and yuyu-tei product has been fingerprinted against the official Bandai card art. If the picture on the seller's listing doesn't match, that listing's price won't be used. The site can finally tell a base print from an alt-art, a manga reprint from a wanted poster, a gold-foil SP from a silver-foil SP — by what the card actually looks like, not by guessing from the name.
  • Reprints in odd places find the right page on their own
    Sellers often list a reprint under a totally different set than the card's home set. Until now, those needed a manual swap to find. The picture-matching catches them automatically — including the famously stubborn LECAFIG cards and 134 foil reprints across multiple sets.
  • Confidence dot on every price
    Each price now has a small green / amber / red dot next to it. Green means confirmed. Amber means we're using it but it hasn't been double-checked. Red means flagged wrong. Hover for the reason. Now you can scan a page and instantly see which prices to trust.
  • Silver vs gold SP — finally tell them apart
    Some cards have both silver-foil and gold-foil 'SP' versions, and our classifier was treating them as the same card. Fixed — they get separate prices now.

v0.75

2026-04-29

Trust, flag, swap — your verifications now build the dataset

  • Trust ✓ / flag ✗ on every single price
    Tap ✓ to confirm a price looks right, ! to flag it wrong. Your marks stay across visits and feed back into the dataset.
  • Pick the right product without leaving the card page
    A ⇄ button next to every price opens a list of all upstream candidates with thumbnails and prices. Pick the right one and the card pulls from your choice from then on. If nothing matches, paste a URL where the correct price lives.
  • Big automatic cleanup of wrong prices
    We closed the systemic leaks where the wrong country's price was showing up — EN cards getting JP-only prices, JP cards getting EN-only ones. About 4,800 more cards now have at least one wrong source removed.
  • Copy card codes in one click
    Click the OP01-001 or cardId pill at the top of any card page to copy it.

v0.7

2026-04-27

Data sanity overhaul (and a search that actually searches)

  • Search is finally search
    Type a partial card number like "OP13-00" and you'll get all the cards that match. Type a keyword like "counter", "slash", or "supernova" and you'll get cards with those abilities — including JP cards, which used to be invisible to attribute search. Cost and counter values work too: try "c2000", "cost5", or "1000 counter".
  • Sets unified
    OP14EB04 and OP15EB04 now show up as part of OP14 and OP15. Cleaner browsing, less confusion about which release a card belongs to.
  • Sticky search bar and filters
    Scroll through hundreds of cards without losing the search bar or your filters — they pin to the top of the screen. Tap a sort, a filter, or type a query, and the loading bar pulses so you know it registered.
  • Show all cards: now actually all of them
    Hitting "Show All Cards" used to cap at 2,000. Now you get every card in the index (8,200+) and price-sort actually surfaces the most expensive ones at the top.
  • Prices are way more trustworthy
    We blacklisted 2,623 known-bad price mappings, found correct alternatives for 547 of them automatically, and added gates that block whole classes of common errors (CardTrader showing EN price on JP cards, yuyu-tei showing JP price on EN cards, Cardmarket picking the wrong parallel print). The card detail page now hides any price reading that's wildly out of line with the others, even if we haven't been told it's wrong yet.
  • Currency-aware fallbacks, but consistent
    If we don't have a price in your preferred region, you'll see one from another region with a clear region badge — no more empty cards. Source priority is now the same for every user (your currency only changes how the number is displayed, not which source we pick), so prices stay stable across users.
  • Loading bar everywhere it should be
    Click sort, change a filter, type into search — the bar under the header pulses so you know something's happening. No more wondering if the click registered.

v0.65

2026-04-27

Cardmarket added, faster card pages, flag-it on every price

  • Cardmarket joined as a 5th price source
    Live German-market prices now show up alongside TCGPlayer, CardTrader, yuyu-tei, and PriceCharting. Especially helpful for European buyers and for cards that don't show up on the US/JP markets.
  • Card pages stream prices in
    The page used to freeze until the slowest source replied. Now each price source paints in the moment its data lands, and the headline price falls back through the chain so JP-only and EU-only cards still show a number.
  • Stale prices stay readable when sources hiccup
    If a source returned a price within the last 30 days but is currently down, you'll see the previous reading with a small "Nd ago" badge so you know it's stale rather than missing.
  • Hover a card → it loads instantly when clicked
    Hovering a card tile for 150ms warms its detail page. Coming back to a card you've seen recently paints from a local cache while fresh data loads in the background.
  • Flag wrong prices in one click
    Every price across the site has a small 🚩 next to it. Click → the flag is recorded. The /flags page lists everything submitted, grouped by recurrence so the most common breakages surface first.
  • JP cards stop showing EN prices when JP isn't available
    Three new gates auto-eliminate the most common false-mapping pattern. The card now shows "no recent sales" instead of a misleading number scraped from the wrong product.
  • Self-correcting price data
    When a source is flagged wrong for a card, the system searches that source for a different product whose price aligns with the cross-source consensus, then auto-applies it as a correction for high-confidence cases.
  • eBay 90-day median backstops the headline
    If every other source is empty but eBay has at least 3 recent sold comps, the median lands as the headline price. Long-tail prints finally get a number.
  • Visual polish
    Skeleton paints in <50ms while data fetches; thin loading bar pulses below the navbar; back-to-top button appears when you've scrolled. Open-Beta pill explains the data-quality status and links to /flags.

v0.6

2026-04-23

Real card pages, drag-scroll carousels, Thai UI

  • Every card has its own URL
    Card detail moved from a popup to a real /card/[id] page. Browser back, back-swipe, deep-linking from Discord/Twitter, bookmarks — all work for the first time. Variant switches update the URL too, so the link you share opens to exactly the print you meant.
  • Search bar everywhere
    Compact search lives in the top of every page now. Type a name → first 10 matches drop down with thumbnails; scroll for more. Total count is always visible.
  • Drag-scroll carousels
    Market Pulse, Recently Viewed, Watchlist, Similar Cards, the Printings strip — all support touch swipe and click-and-drag now. Edge arrows show when there's more.
  • Printings panel as a thumbnail strip
    Up to 8 prints of a card side-by-side. Current print is brass-bordered. Tap any → URL updates and prices below switch to that print.
  • Booster Packs grid: image left, info right
    Set tiles flipped to horizontal. Square box image on the left, set code/name/card count on the right. Three-up at desktop widths, single column on phones.
  • Compact settings dropdown
    Currency (USD/EUR/GBP/JPY/CNY/THB/MYR) and language (EN / ไทย) collapsed into a single "USD · EN ▾" button.
  • Thai (ภาษาไทย) UI
    Every native interface element translates. Top character names also have Thai aliases (ลูฟี่, โซโร, ซันจิ, etc.) so search works in Thai.
  • Smarter eBay fallback
    When a bare card-code search returns too few sold comps, the query auto-broadens with the variant keyword. Long-tail prints finally have data.
  • Graded readings ladder
    PSA / BGS / CGC / SGC grade-10 medians, plus premium sub-grades (BGS 10 Black, CGC 10 Pristine, etc.). Each cell shows the multiplier vs. raw — so "PSA 10 = 18× raw" is visible at a glance.
  • Region badge on the headline price
    The big number on each card now has a small NA/EU/JP badge so it's instantly clear which market it's from.
  • Mobile and tablet layouts
    Modal close buttons grew to 44×44 on mobile; tablet now has its own column count; header on mobile collapses everything into the dropdown.

v0.5

2026-04-21

First usable release — three regions, one taxonomy, atlas look

  • Live prices from three regions
    TCGPlayer (NA), CardTrader (EU), and yuyu-tei (JP) wired up side-by-side. Each card shows the variant-matched price from each source and flags the cheapest. A quick-compare line under the prices reads "40% cheaper than EU" so you don't have to mental-math the FX.
  • Variant taxonomy that actually works
    Every variant (Alt Art / Manga / Red Super / SP / Gold / Wanted Poster / Box Topper / Fixed Reprint / Base) is matched across all four sources by typed code, not by keyword. Killed the bug where a Red Super Alt Art Luffy showed the basic parallel's price ($123) instead of its real price ($8,241).
  • Deep links to the right print
    Click "eBay sold" / "Cardmarket" / "Mercari JP" / "Yahoo Auctions" on any card and you land on a search scoped to that exact variant, not the base card.
  • Atlas look
    Navigator's chart-paper aesthetic. Verdigris (NA), indigo (EU), seal red (JP) for region semantics. JetBrains Mono with tabular numerals for prices so $1,481.73 stays readable.
  • Discovery rails
    Market Pulse (Top Value + Freshly Scraped), Pinned (your stars), Recently Viewed. Drag-scroll on every rail.
  • Similar Cards + Quick-Nav
    Below each card's price triad: similar prints (same character → same archetype → same set → same color). Above it: one-click pills for "All OP13 Cards", "All Monkey.D.Luffy Cards", "Straw Hat Crew", etc.
  • Search that gets out of the way
    Type any printable key from anywhere to start searching. ↑↓ navigates, ↵ opens the first result, esc clears. Searches across name, code, character, family, and the cross-language altName.
  • 3D tilt lightbox on every card image
    Click a card image → opens at full resolution in a perspective-true 3D modal. Hover to parallax-tilt, drag to push it further. Holographic sheen tracks the angle.
  • Bug-report button bottom-right
    Brass-framed bug icon → modal with subject, description, and up to 5 screenshots. Goes to the team inbox.
  • Free during open beta
    Sign In reveals a modal explaining everything is free during open beta. No accounts, no paywall, no signup.