$ cd projects/leafline
$ cd projects/leafline/postmortem
RFC-088: ENGINEERING POST-MORTEMPUBLISHED: JANUARY 2026
Post-Mortem: Leafline
ReactNode.jsExpress.jsGroq APIPostgreSQL
// summary (tldr)
Shipped a 24-hour hackathon MVP that parses photos of municipal issues and routes details directly to repairing departments. Secured 1st place at InnovateNSUT '26.
01.
the problem
During the InnovateNSUT hackathon, we wanted to build a zero-friction reporter. Users shouldn't need to fill out a long form to report a civic issue. They should just snap a picture and have the system do the rest. The key problem was extracting structured data (category, coordinates, severity) from arbitrary images and text in under a second to pitch a working demo to the judges.
02.
what i built
I architected the Express.js backend and LLM ingestion pipeline. I set up the intake flow to feed incoming description strings and metadata to the Groq API. It parsed user intent into a clean JSON output matching our database taxonomy, allowing immediate database writes.
03.
key decisions
#
04.
why Groq API over OpenAI
We had 24 hours and a $0 budget. More importantly, judge demos happen in seconds. Groq’s Llama inference delivered token output in under 200ms, which allowed us to showcase real-time guided chatbot chats without any "loading..." spinners during the judging rounds. It was the differentiator that made the app feel fast and production-ready.
05.
what broke
// System Failure & Lesson
Incident Log & Outage Analysis
We tried to send raw image bytes to an image classification model during the hackathon, but the network at the venue was severely congested, causing requests to time out. I quickly pivoted to running a clientside image scaling pass to compress screenshots to <100KB before uploading them, which salvaged the live demo.
06.
what i'd do differently
Instead of hardcoding the department categories inside the system prompt, I would implement a simple configuration schema that maps categories dynamically, which would have made scaling the dashboard to new departments trivial.
07.
what i learned
- Speed is a feature. Near-instant LLM response times completely change the user experience and feel much more premium.
- Venue network limits are the ultimate hackathon constraint. Always build offline fallbacks or heavy clientside compression.
- Under time pressure, a simple Node/Express stack beats complex frameworks every time due to setup speed.