One Hour and Eight Minutes: Building a Receipt Scanner with the Weirdest Tech Stack Imaginable
Alternatively titled: How I Accidentally Discovered My Favorite Coding Workflow (and Why Weird Stacks Just Work)
Hello fellow datanistas!
Have you ever wondered what would happen if you threw out all the 'sensible' tech stack rules and just built something with whatever tools felt right—even if they made no sense together? I did, and it completely changed how I think about rapid prototyping.
This post is about my experiment with Claude Code, where I set out to build a receipt scanning and expense tracking app in just over an hour—using a tech stack that would probably make most developers do a double-take. I want to share what I learned about immersive, terminal-based development, and why sometimes the weirdest tool combinations are exactly what you need.
After years of bouncing between Cursor and GitHub Copilot, I kept hearing about Claude Code. Curiosity got the better of me, so I decided to put it to the test. My goal: replicate SAP Concur’s receipt extraction at home, but with Notion as my database (because, why not?) and without the usual suspects like React or PostgreSQL.
Instead, I went with FastAPI for the backend (makes sense), HTMX for the frontend (getting weird), vanilla HTML/CSS with almost no JavaScript (now we’re talking), LlamaBot for AI (I built it, so I trust it), and Notion as the database (yes, really). I asked Claude Code to generate everything in a single app.py file, and to my surprise, it delivered a clean, functional app with PEP 723 metadata and all.
The real magic, though, was the workflow. I spent the whole session in two terminal tabs: one for Claude Code, one for my uvicorn server. No IDE distractions, no file explorer rabbit holes—just pure, focused problem-solving. The feedback loop was instant, and I found myself in a kind of 'vibe-ish coding' state that I’d never hit with traditional tools.
In 68 minutes, I had a working app that could upload receipts, extract data with AI, let me edit fields in Notion, and auto-populate my expense tracker. The AI integration was seamless, and even when I threw weird requirements at Claude Code, it handled them with surprising creativity.
What really struck me was how pushing language models to their limits—by combining tools in ways they probably weren’t trained for—actually worked. There’s no playbook for integrating LlamaBot, HTMX, FastAPI, and Notion, but Claude Code figured it out. It made me realize that the best time to build your own tools is now, and the barrier to entry is lower than ever.
Don’t wait for the perfect stack or the 'right' framework—just build. The weirdest combinations might be exactly what you need, and the most immersive workflows are often the simplest.
Have you ever built something with a tech stack that made no sense on paper but worked beautifully in practice? What’s your favorite unconventional tool combo?
If you’re curious about the details (and want to see the full stack breakdown), check out the full post here: One Hour and Eight Minutes: Building a Receipt Scanner with the Weirdest Tech Stack Imaginable. If you enjoyed this, feel free to share or subscribe for more experiments and lessons learned.
Happy Coding,
Eric
I rarely do advertisements, but this one is for a friend of mine, Hugo Bowne-Anderson, who is teaching a course on the principles of LLM-based application development. If you're interested in learning, this is the link to the course: https://maven.com/hugo-stefan/building-llm-apps-ds-and-swe-from-first-principles?promoCode=ericfriends. The usual disclaimer: I don't receive a commission or anything from Hugo, sharing purely b/c I think the course is good, and because he's a friend of mine!