Every release, every shipped feature, every fix. The full development log.
August 18, 2026v0.9.0
ManaScry works on your phone
The whole product was rebuilt for mobile — every page, dialog and form, measured on real phone widths rather than a narrow desktop window. Portfolio totals also stopped claiming you had spent money you never spent, and the stats charts stopped drawing over their own legends.
NewEvery page in the app now works properly on a phone. Buttons, tabs, toggles and checkboxes are all big enough to hit with a thumb, forms no longer zoom the page in when you tap a field and refuse to zoom back out, and nothing runs off the side of the screen at any common phone width.
FixedThe install prompt was covering the entire bottom navigation bar, so while it was showing you could not switch pages — and the chat button was covering the prompt's own dismiss button, so you could not close it either.
FixedThe deck advisor could not be opened on a phone at all. Its panel was wider than the screen and its button sat underneath the navigation bar.
Improved"Total spent" now means what it says. Adding a card used to quietly record that day's market price as the price you paid, so the dashboard reported thousands of dollars of spending that never happened. Cards you opened from a pack cost nothing, and that is now recorded honestly.
NewThe dashboard leads with how your collection has moved since you added each card — a number that covers everything you own, because it needs nothing typed in. Gain against what you actually paid is still there, labelled with how many cards it covers.
FixedThe rarity and foil charts on the stats page were drawing their legend across the bottom of the doughnut. They were overlapping at every screen size, not just on mobile.
ImprovedEvery page now starts at the same distance from the edge of the screen. Content on Cards, Wishlist, Settings and several others sat further in than the dashboard, and the loading skeletons were inset differently again, so pages visibly shifted as they finished loading.
NewNew accounts now get a short welcome sequence explaining what to do first, what the app can do, and the parts people tend to miss — instead of nothing at all after confirming an email.
FixedEmails looked wrong and one link did not work: the main button rendered white instead of purple, and the unsubscribe link in the welcome email was a broken placeholder rather than a link. Password-change and email-change notices are also properly designed now instead of falling back to the default template.
ImprovedNumber and checkbox fields are now drawn by the app rather than by the browser. On a dark theme the browser's own versions appeared as pale grey boxes and white squares, and its number stepper was too small to tap.
FixedLoading spinners kept spinning if you have "reduce motion" turned on. They were being frozen mid-rotation, which reads as a request that has hung.
ImprovedCopy and export buttons now confirm on the button itself once the action has actually finished, and say so only when it genuinely succeeded.
August 17, 2026v0.8.0
Card pages 30× faster, honest pricing, and a privacy policy
Card pages now serve from the CDN instead of rendering on every request, the unread badge stopped polling in background tabs, paid plans are labelled Coming soon until checkout exists, and Privacy and Terms pages are live.
ImprovedCard pages are cached properly for the first time — a repeat view now arrives in about 5ms instead of ~190ms. The page had been re-rendered from scratch on every single visit, which was consuming effectively all of the app's server compute.
ImprovedSwitching printings on a card page is now instant and no longer reloads the page. Links still work: you can open a specific printing in a new tab, and a shared ?print= link resolves to the right printing.
FixedThe unread-notification badge no longer polls while a tab is in the background, and each check now makes one request instead of three. A dashboard left open overnight was quietly making a request every two minutes.
ImprovedPricing page now says what is true: the Ad-free, Credit Pack and Pro plans are marked Coming soon and no longer send you to a login form, because checkout is not built yet. The free tier is the whole product today.
NewPrivacy Policy and Terms of Service pages are live, covering what is stored, which processors see it, how to export or delete everything, price data being an estimate rather than advice, and what proxy sheets may be used for.
FixedNewsletter signups are no longer silently discarded. The form previously reported success without saving anything; it now saves or tells you it failed, and only promises a welcome email when one was actually sent.
ImprovedEvery call-to-action across the marketing site now uses the same purple button as the app, including the header, hero, pricing and mobile menu. The mobile menu also gained a Get started button, which it never had.
ImprovedThe site now respects your system's reduce-motion setting, and the hero's floating cards stop animating once scrolled out of view.
FixedCorrected marketing copy that overstated the product: price alerts are evaluated on the nightly sync rather than the instant a threshold is crossed, Card Kingdom supplies retail prices and not buylist, there is no card scanner, and there is no public API.
FixedThe cursor-following sheen on the feature tiles now actually appears — it had been rendering permanently invisible since it shipped.
FixedScreen readers no longer read the landing page's illustrative mock figures as though they were your real portfolio, and the FAQ answers are now present for search engines instead of appearing only after a click.
August 13, 2026v0.7.6
Alerts that fire, trending that tells the truth, and deck legality that counts copies
A page-by-page correctness pass over Alerts, Trending, Price Check, Settings and Decks. Several of these were silent failures: features that looked like they worked and never did.
FixedPrice alerts on cards you do not own can now fire. The nightly job only ever priced cards from collections and wishlists, so an alert set from search was dead the moment you created it — and a triggered alert whose notification failed to save was consumed anyway, so it could never fire again.
FixedTrending no longer reports every card as +$0.00 (+0%) after a missed sync. It compared today's date against the newest price date instead of comparing the two most recent prices that actually differ, so a single skipped night flattened the whole page.
FixedBulk price check no longer answers $0.00 when the upstream price source is unavailable — it now says it could not price the card. It also resolves the printing you pasted rather than an arbitrary one, and its endpoint now requires a signed-in session.
FixedDeck legality now enforces copy limits. A Commander deck holding 40 copies of Sol Ring was passing with a green Legal badge; singleton and 4-of limits are both checked now, with basic lands correctly exempt.
FixedFailed AI requests no longer bill a credit. A generation that errored, returned nothing, or was refused still charged you.
FixedSettings no longer promises things it never did: the Default marketplace preference is now real and changes the prices shown across your collection, dashboard, wishlist and alerts, and the eBay and collection-defaults sections describe what they actually do.
August 7, 2026v0.7.5
Price freshness you can trust, and a much faster stats page
The sidebar now reports when prices were really last synced, the stats page went from a hundred thousand rows to a single query, and a long list of correctness fixes landed across collection, wishlist, proxies and decks.
NewThe sidebar reports genuine price freshness in hours — "Prices updated 12h ago" — recorded from the actual completion time of each nightly run rather than assumed from its schedule.
FixedThe sidebar no longer said "Never synced" while the nightly job was working correctly.
ImprovedThe stats page now answers in one database query instead of pulling roughly 108,000 rows into the app, and its pagination returns stable, correctly ordered results.
FixedProxy print sheets no longer overflow a Letter page, and the printed card is the printing you queued.
FixedEditing a card in a large collection no longer throws away every page you had already scrolled, and the grid regained the vertical spacing between rows.
FixedWishlist: fixed an invisible button, a KPI that reported the wrong total, and an unbounded price query.
FixedAI deck generation now enforces deck size and budget itself instead of asking the model to respect them, and deck edits plus the daily quota are applied atomically so a mid-flight failure cannot leave either half-applied.
FixedDashboard cards and price-alert links no longer point at pages that do not exist.
Per-letter variable-font response on the hero headline, 3D tilt-on-hover for every feature tile, a sticky card-stack scroll on the Showcase, plus a proper hamburger nav on mobile.
NewHero headline responds per-letter to cursor proximity — Inter's variable weight axis blooms from regular to black within ~140px of the pointer.
NewFeatures tiles now tilt in 3D on hover with a cursor-following sheen — the physical-card feel without going skeuomorphic.
NewShowcase scrolls as a stack of three browser-framed mocks (Portfolio, Trending, Decks) that riffle like a deck of MTG cards as you scroll past.
NewMarketing nav now has a proper hamburger menu on mobile — Cards / Pricing / Insights / Changelog / Contact / Socials are all reachable from the top bar instead of only the footer. Dashboard moved inside the menu for signed-in users.
FixedHero card stack no longer flickers — backdrop-filter on rotating cards was forcing the compositor to re-rasterize each frame. Rotation is now static; only the gentle bob is animated.
ImprovedHero cards bumped to ~85% opacity with a softer frosted-glass blur so they read as physical objects again.
May 9, 2026v0.7.3
UI polish, faster imports, and a database security pass
A refreshed button system across the whole app, branded loaders, top-center status pills, mobile nav with a More drawer, dramatically faster bulk imports, and a database security audit.
ImprovedPremium button styling everywhere — every CTA now has a layered gradient finish with depth shadows. Landing-page hero CTAs add an animated rotating gradient border on desktop.
ImprovedBranded loaders throughout the app: orbit-style spinners replace the generic ones, and a dot-matrix "scanning" loader appears during bulk price checks and proxy imports.
ImprovedToasts are now Dynamic-Island-style pills at the top of the screen instead of a corner banner.
ImprovedMobile bottom nav now exposes every page — primary tabs (Home, Cards, Wishlist, Decks, Settings) plus a More drawer with Alerts, Proxies, Stats, Trending, and Price Check.
ImprovedBulk paste imports (proxy queue, price check, deck import) are 5–10× faster — fuzzy card-name lookups now run in parallel rather than one at a time.
FixedTop Commanders links in the EDH Insights tab now open the commander's ManaScry page instead of EDHREC.
FixedCard detail breadcrumb: the "Cards" crumb is now a working link back to the search hub.
FixedBulk-adding to proxies no longer fails when the same printing appears under different name variants in your paste.
FixedTrack Value on the card detail no longer errors when capturing today's price.
ImprovedDatabase security pass — tightened authorization on every user-scoped database function and resolved the full Supabase advisor checklist.
May 9, 2026v0.7.2
Plans, credits, and a 4-tier pricing structure
Introduces Free / Ad-free / Credit Pack / Pro plans, a credit-based metering system for power-user generation tools, and a refreshed /pricing page.
NewFour-tier pricing — Free (full product, ads), Ad-free (one-time, no ads), Credit Pack (one-time generation credits), Pro (subscription with monthly grant + ad-free).
NewSettings → Plan section shows your current tier, credit balance, ad-free status, and Pro renewal date.
ImprovedPower-user generation tools (deck builder, collection chat, precon upgrade) are now opt-in and gated by credit balance — Free users no longer see them.
ImprovedRefreshed marketing copy across the landing page, FAQ, and changelog: features stand on their own merit.
May 9, 2026v0.7.1
Bulk import polish + smarter proxy queue
Fixes a bug where pasting a long card list pushed the import buttons off-screen, plus a collection-aware proxy queue that tells you which cards you already own.
FixedBulk import dialog: long preview lists no longer push the Confirm Import button below the fold on desktop.
ImprovedBulk import textarea now caps at ~25 visible rows with an expand/collapse toggle so the action buttons stay visible no matter how long the paste.
NewProxy queue is now collection-aware — each tile shows an "Owned" indicator if you already have a copy, and a new All / I own / Don't own filter (carries through to the Print View) lets you proxy only what you're missing.
May 4, 2026v0.7.0
Precon upgrades, set completion, and a polished dashboard
Precon upgrade flow, set-by-set collection tracking, a bulk price-check page, and a top-to-bottom UI standardization pass.
NewPrecon Upgrade flow — pick any official precon (700+ in catalog), import it, and get strategy-aware budget upgrade suggestions in the improve-deck panel.
NewSet completion tracking on the Stats page — see what % of every Magic set you own, with progress bars and Scryfall set icons.
NewBulk Price Check page — paste any card list and instantly value it at TCGplayer market, including foil-aware totals.
NewUniversal Export menus across collection, wishlist, decks, proxies, and trending — TXT (Arena/MTGO), CSV, and Cockatrice .cod XML.
ImprovedImprove Deck panel: collection-source toggle (any / prefer / exclusive), per-add budget cap, and a parser that gracefully handles model output drift.
ImprovedStandardized page-header pattern across the entire dashboard — consistent button sizing, primary CTAs grouped on the right, less-used actions tucked into a clean overflow menu.
FixedTrending page: missing card metadata now hydrates from Scryfall on the fly so cards no longer show as raw UUIDs.
FixedSidebar community popout no longer clips off-screen when the sidebar is collapsed.
FixedDatabase migration history fully reconciled with prod — future migrations land cleanly.
May 2, 2026v0.6.0
Subdomain split + apple-icon
manascry.com (marketing) and app.manascry.com (dashboard) now route correctly via host-based middleware, with shared auth across subdomains.
NewMarketing landing on apex domain; full dashboard on app subdomain.
NewShared Supabase auth session across subdomains via cookie domain (.manascry.com).