Dindin — Reviewing Home Dinners
A slightly over-engineered dinner tracking app that turns everyday meals into structured data, ratings, and visual trends.
Overview
Andrew Dinner started as a joke.
I built this after Andrew told me I have zero food knowledge, hoping he might finally teach me something, and expecing some structured feedback.
So I built a small app to log dinners and review them properly.
What started as a simple log quickly turned into a structured system with ratings, analytics, and visualisation.
Concept
The app splits dinner into two roles:
- I log what we ate (main, side, dessert)
- Andrew rates each part with a score and comment
Instead of giving a single score, the system breaks meals into components.
This made it possible to track not just what we ate, but which part of the meal actually worked.
What I built
At its core, the app is a small full-stack system built around structured daily data.
Each dinner entry is stored with an ISO date, allowing consistent querying and time-based aggregation.
From there, the system:
- stores menu data
- stores section-level ratings
- calculates daily averages
- visualises everything in a calendar and chart
Key features
Menu logging
- main
- side
- dessert
- notes
Each entry is tied to a specific date for aggregation.

Section-level reviews
- main / side / dessert rated separately
- 1–5 score + optional comment
This allows more detailed feedback and surprisingly better comparisons.

Calendar interface
Meals are visualised in a monthly calendar.
- emoji-based indicators
- average rating
- review completion status

Analytics dashboard
A simple rating trend chart to visualise daily averages.
- spot “good cooking days”
- notice patterns
- occasionally argue about them
Technical implementation
Frontend
- React + TypeScript
- component-based structure
- custom data visualisation components
- responsive layout
Backend / Data
- Supabase (PostgreSQL + API)
- structured tables for meals, metrics, comments
Technical exploration
- date-based modeling (ISO format)
- aggregating ratings into daily averages
- calendar grid generation
- SVG-based line chart
- React state management
- Supabase integration
Outcome
The app turned a very ordinary activity into something structured and trackable.
It combines structured input, relational data, simple analytics, and visual browsing, for something that is objectively unnecessary, but surprisingly satisfying to use.
Ending
The service was discontinued on 24 February 2026. Not because of technical issues, but because Andrew gradually stopped leaving reviews. Despite claiming that reading was his hobby, he showed little interest in reading my cooking logs. His actual hobbies turned out to be hotpot and mobile games.
After
The project was later repurposed into a pregnancy logging app, shifting from dinner tracking to life tracking. Same structure, different dataset!!