MHomie
The mom you don't have around when you live away from home — plans your meals around your culture and habits, drops "side quests" into your day to get you off the couch, checks in on things you actually told it, and remembers everything, so you don't have to.
Built for OpenAI Build Week, using Codex and GPT-5.6.
MHomie — your companion when no one's around.
After moving away to a new city alone for studies, I noticed that I started forgetting the little things that are essential in life because I wasn't reminded of them anymore — I forgot to eat, go out, get air. I was overwhelmed with studies and trying to adapt to the new life and place, so much that I forgot myself. Living alone for the first time was my best and worst experience ever, and I made this app knowing that I'd be the first one to use it.
What it does
- Chat — a real, ongoing conversation with GPT-5.6. It remembers your name, culture, diet, allergies, and preferences from onboarding, asks natural follow-up questions instead of just acknowledging what you say, and proactively checks in on you (referencing your real calendar, the time of day, or things you've recently done) rather than waiting silently.
- Meals — culturally-aware suggestions (with an 18-cuisine curated fallback dataset if the AI is ever unavailable), respecting allergies as a hard rule, aware of what's actually in your Pantry, with detailed step-by-step recipes generated on demand.
- Side Quests — small, real reasons to get off the couch, filterable by company/time/mood, with checklist-style steps and a full completion flow: photo, comment, star rating.
- Pantry — track what you have manually or by taking a photo (GPT-5.6 vision reads it in); ingredients automatically deplete as you cook.
- Calendar — Year → Month → Week → Day drill-down, manual event entry with recurrence, and a "scan my calendar" photo-import feature for paper calendars.
- History — every meal and quest you've tried lives in its own personal thread (past photos, comments, ratings), plus a general chronological archive, with a "try this again" replay flow.
- Saved Suggestions — save an idea or a link (recipe video, reel, etc.) for later; MHomie turns it into a real meal or quest on request.
Tech stack
- Frontend: Vite + React
- AI backend: a Vite middleware (
vite.config.js) exposing/api/chat,/api/meals,/api/quests, and a Pantry/Calendar vision-scan endpoint, calling OpenAI's Responses API directly - Model:
gpt-5.6-luna - Storage: browser
localStoragefor this build (profile, chat history, calendar events, pantry, saved suggestions, memory/history) — no external database required to run it - Production: a real Node server (
npm start) keeps the OpenAI key server-side; seeDEPLOYMENT.mdfor hosting on a Node platform like Render or Railway
Setup
git clone https://github.com/fkirnabila5295fsts-lab/MHomie.git
cd MHomie
npm install
Create a .env file in the project root (see .env.example):
OPENAI_API_KEY=your_key_here
OPENAI_MODEL=gpt-5.6-luna
Development:
npm run dev
Open the local URL it prints (usually http://127.0.0.1:5173).
Production:
npm start
No seed data setup is required — the app walks you through onboarding on first launch (takes under a minute), after which every feature is immediately testable with your own inputs. If the OpenAI key isn't present or a request fails, Meals and Quests automatically fall back to a curated offline dataset spanning 18 cuisines, so the app remains functional and demonstrable even without live API access.
How Codex and GPT-5.6 were used
Codex was used throughout the entire build — not just at the start. Nearly every feature in this app, from the onboarding flow to the calendar's drill-down navigation to the Pantry vision-scan integration, was built through iterative, scoped instructions to Codex, verified with real evidence (live testing, console output, exact code review) rather than trusting a single "done" claim. A few specific debugging moments worth highlighting, since they show genuine collaborative problem-solving rather than one-shot code generation:
- A parsing bug that blocked all AI features. The chat, meals, and quests routes were all trying to read
data.output_textfrom OpenAI's raw API response — a field that only exists as an SDK convenience property, not in a rawfetch()response. Diagnosed by logging the actual raw response, then fixed by correctly extracting the reply fromdata.output[].content[]instead — a fix that had to be independently found and applied in three separate places. - A CSS containing-block bug. The chat input's
position: fixedwas silently being broken by a page-transitionanimationon its parent, which creates a new containing block for fixed-position children — a genuinely obscure CSS behavior. Fixed by rendering the composer through a React portal directly intodocument.body, sidestepping the issue entirely instead of fighting it with more CSS. - A structurally-impossible scroll bug. Users couldn't scroll up to see chat history — not because of broken scroll-detection logic (which is what several earlier attempts assumed), but because
.conversationusedjustify-content: flex-end, which pushed older messages completely outside the reachable scroll range. Changing it toflex-startfixed it at the structural level. - A React Rules of Hooks crash. A returning-user "welcome back" screen crashed the entire app on transition, because a
useStatehook was declared after a conditional early return — violating React's fixed hook-order requirement. Found via the exact console error and fixed by reordering hooks to the top of the component. - A latency optimization with a measured result. Meal and quest suggestions were generating full detailed steps for all three list items upfront, even though users only open one. Splitting this into a lightweight initial list request plus a separate on-demand detail request cut measured latency by 52% (Meals) and 62% (Quests) — a real architectural fix, not just a nicer loading spinner.
Built With
- codex
- css
- gpt-5.6
- html
- javascript
- react
- vite
Log in or sign up for Devpost to join the conversation.