Most receipt-based systems fail because the data is messy, inconsistent, and spread across formats that machines don’t naturally understand. People don’t realise it, but the real problem isn’t capturing receipts, it’s turning them into reliable, structured data that can actually be used.
This system removes that friction entirely. You send a receipt (image or PDF), and it comes back as clean, structured JSON ready to plug into any workflow.
The core problem it solves:
Receipt data is chaotic. Different formats, inconsistent naming, missing structure, and OCR noise make it hard to extract anything usable. Even when OCR works, the output is raw text, not something you can build logic on top of.
This project builds a full processing layer that doesn’t just read receipts, it understands and standardises them.
What was built:
A backend microservice that acts as a structured data engine for receipts. The system accepts images or PDFs via an API, runs OCR, extracts merchant details, dates, totals, and line items, and converts everything into a strict JSON schema.
But the real value sits in what happens after OCR.
A normalization layer cleans and standardises item names so inconsistent inputs like “BANANA”, “Bananas”, or “Banana 1lb” all map to a single canonical item. Quantities and prices are cleaned, structured, and validated so the output becomes consistent across different stores and formats.
The system can also plug directly into Airtable, pushing structured items into a live database, enabling automated workflows like pantry tracking, expense logging, or analytics pipelines without needing a full backend system.
Everything is exposed through a simple /parse-receipt API, making it easy to integrate into mobile apps, SaaS products, or internal tools.
Technical architecture:
FastAPI-based microservice designed for simplicity and performance, with OCR powered by Tesseract or cloud services like AWS Textract and Google Vision depending on accuracy requirements. The parsing layer combines rule-based extraction with AI-assisted cleanup to handle real-world receipt noise.
The system is fully containerized using Docker, deployable on platforms like Render or Heroku, and comes with OpenAPI (Swagger) documentation for quick testing and integration.
Designed as a stateless service, it avoids database complexity and instead integrates with external systems (like Airtable), making it lightweight and easy to scale.
Business value built in:
This isn’t just an OCR tool, it’s a data standardization engine. The same system can power expense tracking apps, inventory systems, meal planning products, or financial analytics platforms.
Because the parsing and normalization layers are modular, the microservice can be exposed as a standalone API, creating opportunities for reuse across multiple products or even external licensing.
i'm currently travelling the southern hemisphere, so I've been picking up loads of beautiful boarding passes, tickets and receipts from everywhere I've been.
this morning i worked on these collaged animations in photoshop, inspired by the collection of receipts growing in my wallet + by this lovely holographic ticket animation by SHIROTA.
lots of texture + type always make for the prettiest animations.
I just added an in-app AI builder to Pro Studio, and I’m excited to share it with the Contra community.
Pro Studio is a tool I built for creating Kajabi websites and landing pages. Now you can describe what you want to build directly inside the app, and the AI can create it for you. You can keep refining the page through conversation, then export it as a Kajabi theme.
You can sign up, build, and experiment for free. You only pay when you’re ready to export to Kajabi.
I think this could be especially useful for designers and Kajabi professionals who want to explore ideas and build out pages before committing to an export.
Exporting straight to a Kajabi theme after refining through conversation is a really practical loop, Kajabi layouts can be fiddly to build by hand. Nice addition to Pro Studio.