What it does
Plan a binder page before you move a single card. Import what you own from Collectr, TCGplayer or pokemoncard.io, lay it out in named binders that remember every pocket, span one piece of art across several pockets, and take the missing list to a show. A full, ad-free Pokédex comes attached, because most people who collect the cards also want to look something up.
Currently
Live at lowkeydex.com on its own domain and repo since the September 28 cutover, and every old k8mak.com/pokemon link, share links included, lands on the matching page. It is a card tool with a Pokédex attached. Named binders store a real layout: every pocket holds a specific printing, a wanted card, a sleeve, or a gap left blank on purpose, with undo, 9 or 12 pockets a page, and suggestions for what fills an opening. The two gaps this page used to confess are closed: binders store rather than sort, and a single card's art can span a block of pockets, which is the one thing no free, collection-aware competitor ships. Around it: want, grail and fave lists, trade night with a printable missing list that works with no signal, trade links and friends with live matches, set and artist pages, Deck Check, guides, a blog built from its own data, and names in nine languages. The honest gap now is distribution. The Reddit launch post is written and checked claim by claim against production, and it has not been posted, so the numbers below are still mostly me.
Roadmap
/now-next-later-roadmapNow/Next/Later Roadmap- Post the Reddit launch. It is written and fact-checked against production; posting it is the job
- Read the first real cohort: Collection WAC and week-1 return, not signups
- Friends and trade matches, tested end to end with two real accounts
- Fill in missing card art set by set, because a careless match puts the wrong scan on a card and nothing looks broken
- A roadmap on lowkeydex.com you can add to and vote on
- A shareable gift list built from your wants
- Per-card pull odds, measured first, since no per-rarity rates exist in the data yet
- Games owned and caught, alongside the cards
- Room for Generation 10 in every dex-order binder
- The shiny colour layer, waiting on research rather than code
- Photos of your own binder pages
- A trivia game built only from facts the data can prove
Recently shipped
- Sep 30, 2026Sleeves in binder pockets, one press to fill the open pages, a Faves heart on every card, and 1,859 checked name origins on the dex pages.
- Sep 29, 2026Friends with live trade matches, public binders on a trainer page, trade binders built from the cards you own, card condition from NM to DMG, format legality per printing, a page per card, and Deck Check: paste a deck list and see what you are short of.
- Sep 28, 2026Cut over to lowkeydex.com. A redesign landed the same week: a foil palette, dark by default, a new mark, and one page header across the site.
- Sep 28, 2026Suggestions to fill a binder opening, by evolution line, then family, then artist, then colour. Multi-step undo in a named binder, and English and Japanese kept apart in set and number sorts.
- Sep 14, 2026Guides, a glossary with a drawn mark per term, a themes system, set completion ranking, and a public read-only MCP server over the card corpus.
- Sep 13, 2026Set pages, a section for card artists, and all 1,025 dex pages given real content and let into the index.
- Sep 10, 2026Printable binder inserts at true card size, and a binder's holes turned into a list you can take to a show. The old wishlist retired, because nobody had ever written to it.
- Sep 9, 2026Named binders with a stored layout, and art panels that fill several pockets with one crop of a card you own. Printings told apart on import, graded slabs, and an Inventory for bulk, sealed and gear.
- Sep 9, 2026Moved the card data to TCGdex behind a cache of its own. A Grass browse went from 13.8 seconds and a 500 to about half a second, and imports stopped silently losing half a file.
- Jun 2, 2026Started life as Pokémon Explorer, a section of k8mak.com: a Pokédex browser, type tools and Who's That. The binder view followed a day later.
How I know it's working
live data · last 30 daysUnique signed-in people who do at least one collection action in a trailing 7-day window: add, update or place a card, mark a Pokémon caught, or save a team. Computed as a SQL rollup over the collection tables, never an event query, because the analytics sink stores no user id by design. The daily challenge is excluded so a game can never make the collection look healthier than it is.
pokemon_binder_viewedpokemon_import_openedpokemon_import_startedpokemon_import_completedpokemon_collection_sharedHow it's built
How I built it
lowkeydex started in June 2026 as Pokémon Explorer, a section of this site: a fast Pokédex, a type chart, and a binder view I built for myself. It outgrew the section. It now has its own name, its own domain and its own repo, and a settled answer to the question it kept circling: it is a card tool with a Pokédex attached, not the other way round.
That answer came from counting, not from a strategy session. The card side was already most of the code, and the Pokédex job is the most saturated query space on the consumer internet. Serving it well for the people already here is worth doing. Competing for it is not.
What the counting changed
I used to say no other collector tool did binder layout. In September I went and checked, and I was wrong twice. There are eight Pokémon binder tools, four of them know what you own, and one of them ships free the exact loop I had called unique: lay out a binder, get a list of what is missing, take it to a show.
What none of them ships free is a multi-pocket art panel over a collection that knows what you own. The collection-aware tools either charge for it or cannot do it, and the free page designers cannot see your cards. That is narrow, real and testable, so it became the thing to build. It shipped on September 9.
The same habit of counting before building killed a feature. The wishlist had a nav slot, a badge and 476 lines of UI, and its table had zero rows. Its only possible user, me, kept a 288-card want list in a different app. It was retired, and wants came back as something you notice while filling a page, which is how collectors actually find the holes.
The data layer was the unglamorous half
The original card API was not slow, it was unreliable: three identical requests came back 500, then 200 after seven seconds, then 502. The switch to TCGdex was measured first (a near-strict superset of my 2,537-card collection, with 98.6% of old card ids mapping across), then put behind a cache of its own. A Grass browse went from 13.8 seconds and a failure to about half a second. The import had been silently losing about half of a real file in production; on the same sample against the cache, it matched every row.
The honest situation
The product is now far ahead of its audience. September shipped named binders, art panels, trade tools, friends, guides and a redesign, and the Reddit launch post has been written, checked claim by claim against production, and not posted. The pre-mortem named this exact failure in advance: the comfortable move for a solo builder is to keep building, and the valuable one is to post the launch and read the cohort. The next number that matters is Collection WAC from someone who is not me.
The strategy behind it
A snapshot of the product process this app was built from. Each artifact comes from a k8 skill you can run yourself. It reflects the original plan, not the live state above.
Jobs to be done
/jtbd-analysisJTBD Analysis| When I… I want to… | Importance | Frequency |
|---|---|---|
| When I have a pile of cards and an empty binder, I want to decide what goes where before I sleeve anything, so I can avoid ugly gaps, orphaned pages and a layout I will have to redo. | high | low |
| When I am valuing, trading or chasing a card, I want to know which printing I am looking at, so I can avoid paying for the wrong one or trading away the valuable version. | high | medium |
| When I pull new cards or come back to a collection I have not touched in a while, I want to know exactly what I have, so I can stop buying duplicates. | high | medium |
| When I plan a page or go to fulfil a trade, I want to know whether a card is in this binder, another binder, a toploader or a slab, so I can plan a layout that matches reality. | medium | medium |
| When my collection has drifted from what I care about, I want to work out what to trade, so I can turn cards I do not want into cards I do. | medium | low |
| When I look at my collection, I want to see a concrete, achievable next step, so I can feel progress instead of an undifferentiated pile. | medium | high |
| When I need a type matchup, an evolution chain or a stat, I want to get it fast and leave, so I can get back to what I was doing. | low | high |
Persona
/persona-createPersona Create- Lay out a page from cards I own and cards I want, then move the real cards once
- Be warned when a want is a printing I already have
- Leave a binder with a short, specific list to take to a show
- My collection app catalogues well and cannot show a page
- The free layout tools cannot see what I own, and the ones that can charge for art panels
- Two printings of the same card collapse into one row, and a 58% price swing hides inside that
Persona
/persona-createPersona Create- Find any card's status in under a minute
- Stop maintaining two systems
- A spreadsheet is fast, private, free and already correct, and it still cannot show a page
Persona
/persona-createPersona Create- Get the answer without ads, and leave
- Wikis are slow and ad-heavy for a quick lookup
- They never touch a binder, so they are traffic, not collection value, unless something shows them the binder
Prioritization and risks(the internal detail)
RICE prioritization (September 2026 package)
/rice-scoreRICE Score| Feature | Reach | Impact | Conf. | Effort | Score |
|---|---|---|---|---|---|
| Post the rewritten launch | 9 | 3 | 80% | 0.3 | 72 |
| Close the funnel gaps | 10 | 3 | 100% | 0.75 | 40 |
| Collection WAC as a documented SQL rollup | 10 | 1 | 100% | 0.25 | 40 |
| Settle the card-data provider | 9 | 3 | 100% | 0.9 | 30 |
| Name the product in the UI | 10 | 0.5 | 100% | 0.2 | 25 |
| Size the Michi demand and the tools serving it | 6 | 1 | 100% | 0.25 | 24 |
| The move to lowkeydex.com | 10 | 2 | 80% | 1 | 16 |
| Placement: a card goes in a slot and the slot is stored | 4 | 3 | 50% | 2.5 | 2 |
Pre-mortem risks
/pre-mortemPre-mortemIt is December, Collection WAC is still near zero, and the reason is that the launch never posted, exactly as it did not post in June.
highMitigation: Treat posting as the job. If time runs short, cut everything except the launch, the funnel and the domain move, because a launch into an imperfect product still produces a reading and silence does not.
The solo-developer trap: shipping depth features because building is comfortable, while distribution keeps slipping.
highMitigation: Name it in the open. September shipped a great deal, and the launch post is still sitting in a folder. That is this risk happening, not a hypothetical.
The launch posts, 300 people come, and Collection WAC peaks at 2.
mediumMitigation: That is a finding, not a failure. It isolates the problem to the first five minutes, which is a far smaller problem than whether the market exists.
The wrong audience arrives: dex SEO pulls Reference Visitors who never open a binder.
mediumMitigation: Lead the front page with a binder, not a search box, and aim distribution at binder communities rather than lookup traffic.
A fan project using someone else's IP draws a takedown or looks like it is profiting.
lowMitigation: A written IP posture checked against the code: no ads, no paid tier, no AI-generated art, and any buy link disclosed beside it and never on a guide, dex or set page.