About TCG Collection Manager

Origins

I have a friend with whom I enjoy playing trading card games. Unfortunately, with the current state of TCGs, many of the games we enjoy (Pokemon and Riftbound are examples) are difficult to find and often prohibitively expensive.

We've had some success with Tabletop Simulator in the past. Dedicated people often create mods for specific TCGs (Riftbound's is a standout) that allow people to play. Many of these even have integrations with external deckbuilding services. The downside to mods like this is that the mod usually has to include all of the cards in the game in order to be fully playable. This is easy for Riftbound, very difficult for Pokemon, and far, far too big for Magic.

It got me thinking: what if there was a way to only import exactly the cards you needed for your deck? TTS load times would be much faster, but the theoretical flexiblity would be just as great. Thus, this app was born. I've tried my best to make it intuitive, but I am not a designer. In my opinion, TCGs are at their best when each player has a limited pool of cards to work with. The collections and deck system is designed to enable playing long-lived limited formats in this way. I hope you enjoy!

Use of Generative AI

As a long time developer myself, I've been resistant to the idea of AI. I've avoided using it in my work, either professionally or personally.

Then I stumbled upon this article about the JustHTML Python library. Something about the way this was written and explained the process resonated with me, and I decided this project of mine would be a good way to test using agentic AI in development.

The entirety of this project was written by interacting with Claude Code via the terminal. I paid for one month of the pro version. None of the code in this website, frontend or backend (with the exception of text in this page), is handwritten. That said, like JustHTML, I was very involved in the development process. I knew what I wanted the website to look like, I knew the tech stack I wanted to use, and I knew how I wanted the API to behave.

I began by writing a detailed markdown document laying out all of the models, endpoints, tech stack, and features. I then had Claude build from there. I worked iteratively, asking Claude to implement features one at a time and verifying them by hand after each change.

The process was admittedly a little less involved for the frontend. I am a backend developer by day, and I struggle with CSS. (Don't get me started.) While I tried to review the HTML and CSS, I was mostly forced to trust Claude and my own eyes. At least once I did ask Claude to run through the frontend and refactor things, so I hope it's up to snuff.

Ultimately, I'm still divided on generative AI. The results are very impressive (you're using the website, I hope!) and it was very fast. However, while I have a finished project that I enjoy and am even proud of, I can't help but feel a little robbed. Programming is a passion of mine, and part of what I enjoy so much is the actual coding. With Claude I was still in charge of the code and project architecture, but I never got my "hands dirty" and wrote anything. Going forward, I can see myself continuing to use AI, especially in a professional context, but I doubt I will use it to the extent that I have on this project.