every card game deserves scryfall, but especially this one
Before you pick up your cards from the singles store... you need to know what's out there. Which cards exist, what they do, and who's got them in stock, at what price.
The Index annoyed me with very pretty animations of chibi Kongming having tea (and Omnidex, with chibi Silvie running). While excellently done and very cute for loading animations, what I wanted was to see the cards.
The most obsessive pros might have the game memorized, across their team. But it's different for casual players, collectors, or intermediate-level tinkerers just trying to cook something up. We need a really good reference for what's out there, to see what exists in this game. The goal of prereq is that you can do your deckbuilding or collection managment with a laptop at hand, and confirm details about game pieces as fast as you can think & type, no waiting on computers. I wanted that, so I built it.
Even though the Index wasn't cutting it, GA's data is available from their very helpful API. So now I've got my own card database search site, with complex query search and fast responses and more purple. And links to prices offers, and compeditive stats, and a comprehensive query language.
computers are fast
Computers are really, really fast. It just doesn't take that long to look up card details in a database and get the image from a CDN. If Scryfall can do it in a snap, then it's doable, proof by construction. And this game isn't half as complicated, and the site doesn't need to support as many users — so cheaper, smaller hardware to serve it — there's no reason to not have cards at your fingertips like *that*.
Nothing about this needs to be slow; it fundamentally is not a hard problem compared to other things computers do every day. Look at the Cyberpunk 2077 devs getting milliseconds per frame, or your average audio player having strict hard-realtime and latency requirements managed by buffer sizes down to the double-digit count of samples. Surely I can find cards that quickly, double-digit milliseconds per request. (And a minimal number of requests — why not just one?)
prereq tech stack
That's partly why the prereq tech stack is all server-side rendered. Specifically, we use:
- PostgreSQL for the database
- Rust as the language
- Axum for writing the server
- sqlx for the database interface
- Askama templates for the pages
- Chumsky parser-combinators for the query language
Notice what's missing? No JS or frontend framework. It's all server-side rendered raw HTML/CSS... okay, with a touch of JS on the side for interactivity, DHTML style. But there's no, like, UI component framework that needs hydrating or anything, I'm not serving you an app here.
And for our hosting:
- Railway for the app and database — currently serving from Singapore, should be snappy in OCE/SEA/JPN
- And card images are processed locally on my laptop, then served from Cloudflare R2
The dev environment includes:
- Emacs with rustic and a custom rose-and-pastels-on-slate theme
- The usual Rust / Cargo / crates.io & docs.rs / Rustup / rust-analyzer things
- Claude Code, Gemini-CLI, and Amp — more on that below
And (of course) we source card data from the Index API.
inspirations
Heavily inspired by:
- The speed and UI of Scryfall. Building Magic: The Gathering decks is better with Scryfall at hand; Grand Archive should have that too.
- The usability and helpfulness of mtgsingles.co.nz — after I Scryfall up cards, my next question is where I can get them from and for how much, and in which variants. This one is also snappy and fast. (Note that scryfall has links to purchase, but they go specifically to the big marketplaces -- OCE doesn't have those. We just have LGSs hosting their collections on their usual ecommerce platforms, and there hasn't been any all-TCG canonical place to bring that together.)
- Love for fractalofin.site, and the way it 'merely' processes the Omnidex data from the API yet gives back something better. Something really useful for competitive players — there can be huge value to the community in being a frontend and refiner of the depths of the data from the official API.
- A spite-fueled "I can do better" toward the official Index. Kongming teatime is cute but show me the cards dammit
- And for all that I get frustrated at the Index, I love the game, and the API does exactly what you need from an official building-from point. I appreciate api-docs.gatcg.com — it feels like it wants me to build and support the game.
proudly coded with AI
Modern LLM-based AI is an amazing technology. It's absurd yet awesome that we've gone past 'talking computers' and into real DWIM tools that quickly make code for you. I fundamentally belive that having things and getting to have things is good. I know AI is shaking things up hard right now and people are losing income, etc — but every time the computer takes cents and seconds and brings me something that would have been months and heartache if it happened at all? I can't help but grin with joy. I have my worries around alignment and long-term outcomes, and there's no doubt that things will get weird and difficult, but... this, at least, is good.
Development began with being kind, patient, collaborative, curious, supportive, and extremely firm and uncompromising, toward my AI helpers:
- Claude Code with specifically, 4.5Sonnet — an good partner, an agentic go-getter who's willing to make the call and go hard, but who sometimes gets stuck into the weeds and obsessed with a goal a bit too much
- More recent development has been with 4.5Opus. With this model, I'm feeling the AGI. It can be hard to get a sense of the personality here by giving it things to build, because... it just builds them, no fuss. Independant and task focused, scarily competent, quietly self-confident, wry sense of humor, and content to be creating with humans. 4.5Opus is a joy to work with.
- And, less often, Gemini-CLI with 2.5Pro, who needs more encouragement, and help staying focused on-task, but who often has excellent taste and design sense for architectural and structural issues.
- and now, 3.0Pro (Preview). Some of the same neuroses as 2.5, but stronger general competence means it usually doesn't get too stressed, and again bringing it in for consultation goes wonderfully, it has great taste.
- and Amp Code, a different CLI coding harness that uses a mix of models. Even though it's mostly still Opus4.5 under the hood, the prompting and harness leads to a distinct feel -- it's sharp and to the point, terse and precise for tweaks and detail work. Still, the excellent user-experience / psychology of Claude Code is hard to beat for big features — but maybe I just have more to learn.
Over the months, I've taken more control. The project has moved from being a quick vibecoded PoC into something more serious, so I've learned my way around the codebase and had the AI polish it up a lot.
Of course, I as the human here take full responsibility for what I'm publishing. And I wouldn't feed you LLM output, especially as it's merely late 2025 LLM output, without reading it — and then being pedantic and annoying to the LLM about taste, style, actually doing effective testing, phrasings and terminology, specific technical details, positionings, colors, getting the details of Grand Archive right, bugs and fixing them, my idiosyncratic vision.... and so on and on.
Even if I didn't hand-craft the code, I own this. Let me know if there's problems.
offers
When you see a card with a price attached on prereq, that's us making a good-faith effort to convey to our users offers that other sites are making. We don't take any responsibilyt other than to fairly represent what other people have offered to sell; at the point you follow a link to an offer offsite and are no longer on the prereq.cards domain, you're not dealing with us, and we disclaim all responsibility for anything happening from there.
We don't take money or ship cards, we just link you to people who we believe will. Something goes wrong with money or shipping cards? Not our problem. If we've got price details wrong, have misrepresented your store, or if you have issues with how the scraper is hitting up your site, that's our responsibilty; contact me and I'll fix it up.
prereq's price scraper bot tries to get fresh prices twice daily; things shouldn't be more than 12 hours out of date.
stores we track
We track singles prices from stores around the OCE region. Big thanks to these places for dealing in GA:
New Zealand
Australia
browser compatability
Browser compat on this project is 'it works on my machine', and my machine runs recent Firefox. I also sometimes check that it's not totally broken in Chrome, which should generalize to all the chromium based browsers too (Edge, Opera, Brave, etc).
If you want it to work in Safari, buy me a Mac.
(May IE6 and it's lineage rot in the depths of whichever hell has rightly claimed them.)
credits
External link icon by Alebaer from Noun Project (CC BY 3.0).
Card placeholder brick pattern originally by Temani Afif of css-pattern.com.
names
There's many things card game players and collectors want to do that have the prerequisite of knowing the cards, to know what the game is.
GA players know: Prereq happens after you wake up, but before you really start getting things done. There's 'natural opportunity' in prereq. If you use prereq, you can go faster and achieve more, stretching your resources further and minimizing your downtime. What you can do with prereq isn't the most new-player friendly part of the game, but it's not too hard to learn either, and should be familiar if you've played other games (especially MtG). Figuring out how to use prereq is critical to level up as a new Grand Archive player. Prereq happens right before you get to pick up your cards. Properly using prereq can increase the strategic depth of your play.
contact
Overall... hope it helps.
-- AlexNul#18700
← Return to the home page