Inspiration
Chess parents juggle multiple websites, apps, platforms, chats, and phone calls to plan their ward's schedule. I'm a chess parent; been there and done it. The decisions involve multiple stakeholders from school to ward and coach to fellow-parents. When we are half-way through the season, it is easy to lose track of what was the original strategy, the goals, and milestones. I wanted to build something that's useful to me first, and maybe other chess parents too along the way.
What it does
The initial MVP is not to boil the ocean. I took a realistic feature that can be built over a weekend with Codex. The first and only feature that I have built for this project is chess prize winner calculator. Unlike top-seed games where Super GMs and GMs (Grand Masters) and the winners are just a handful, the local/regional games have hundreds of prize winners over dozens of categories. The tournament organizers take hours to compute the prize winners after the final round. This is an agonizing wait time for chess parents. The app takes just one tournament link and produces the winners list within minutes, if not seconds.
How we built it
For future-proofing, I leaned toward Python FastAPI for the backend so that ML use-cases that I have in mind can be implemented seamlessly. Frontend is React. I debated between Postgres and SQLite, and settled for SQLite as it checks all my boxes, at least for now. For input and output files, I went with S3-compatible options. I used Firebase for auth as it can handle OAuth, mobile verification, push notification, in addition to being the traditional auth provider. The web app is hosted on Cloudflare Workers for backend, Pages for frontend, Workflows for async jobs, R2 for storage, D1 for database, built-in logs for observability, analytics and the DDoS cover. I have also enabled Google reCAPTCHA to keep the bots away. VLM to extract prize-schema. I have used pydantic for data validation and for exporting winners list as multi-sheet Excel workbook. Social login using Google is enabled for now. The web app is responsive and mostly WCAG-compliant. Codex with GPT 5.6 and GPT 5.5 models were used to plan, design, build, test, deploy, and document. Other harnesses and models were also used when I was approaching 5-hour or weekly rate limits.
Challenges we ran into
The core challenge is that tournament organizers do not follow a standard template for game brochure/poster. The information is scattered across different file formats, text/image and tables. Creating a structured ruleset from unstructured content is no easy feat. The file inputs also pose security risks with respect to SQL injection, prompt injection, and remote code execution.
Accomplishments that we're proud of
Our approach to multiplicity is not standardization but adaptive normalization. We cannot expect every chess tournament to have standard prospectus, rules, prize categories, and the pooled awards. While we expect some rough edges, but given this is not a straw-man implementation, rather a well thought out solid solution in two days for a real world problem is a something to be proud of. The architecture should hold for future product roadmap. I gave early access to a few other chess parents, and they loved it.
What we learned
Codex accelerates and in some sense, short-circuits the SDLC. GPT-5.6 is powerful enough on its own, but with Codex harness, tapping into the model's potential is much more easier. Personalized apps are going to be the future. Codex helps individuals to create tools/apps to solve their problems, that generic commodity apps cannot solve otherwise.
What's next for Back Rank Mate
Mobile app is going to be a natural next step. RBAC for user roles like parent, arbiter, organizer, admin. Dashboard for user to showcase their past wins. Calendar to manage the schedule. Strategy planner will be a heavy-lifting. Maybe a self-hosted OCR/VLM, if there is a cost and performance incentive. Much more chess parent problems to be solved.
Built With
- cloudflare
- fastapi
- firebase
- python
- react
- sqlite
- vlm
Log in or sign up for Devpost to join the conversation.