Inspiration

The idea came from a familiar, low-grade anxiety: handing your pet to a sitter and then spending the whole trip wondering whether dinner actually happened. The way most people coordinate pet care today is a patchwork — a schedule texted the night before, a sticky note on the fridge, a group chat that scrolls away the one detail that mattered. Meals get misread, medications get missed, and the person caring for your animal is left guessing while the owner is left worrying. It's a small problem, but a universal and emotional one, and it's exactly the kind of everyday friction that deserves a calm, purpose-built home rather than another improvised workaround. Munchly set out to be that home: one shared space where an owner sets up a pet's care plan once, a sitter follows and logs it in real time, and both sides trust the same honest record. The goal was never a sprawling platform — it was to make a single hand-off feel effortless and reassuring

What It Does

Munchly is a shared pet meal-and-care tracker organized around a single hand-off. An owner builds a pet profile — species, weight, vet contact, medical notes, feeding instructions — and a per-day schedule of meals and medications, with an optional treat limit and water-check reminders. At the end of setup, the app generates a six-character access code. That code is the whole trick: the sitter enters it and lands straight on the daily log, with no account to create and nothing to install. From there the sitter records each meal as fed, notes how much was eaten, marks medications given, skipped, or partial, logs treats against the daily limit, and confirms water checks. Every action saves the instant it's tapped and syncs in the background, so the log always feels immediate. The owner sees the same data reflected live, can flag any meal for the vet's attention, and reviews a color-coded history of the whole stay. When the visit ends, the owner and sitter each mark themselves done and the sitting closes into an at-a-glance summary. It supports multiple pets and a full dark mode, all wrapped in a deliberately soft, storybook design meant to feel more like a shared pet journal than a piece of software.

How It Was Built

Munchly was designed and generated in v0, hosted on Vercel, and backed by a single on-demand Amazon DynamoDB table.

Every operation the app performs is either a lookup by a known key or a read of one owner's items:

What the app needs How it runs against the data
Sitter enters a 6-char code GetItem CODE#{code}GetItem SITTING#{id}
Owner opens the dashboard Query PK = USER#{id}, begins_with(SK, "SITTING#")
List a user's pets Query PK = USER#{id}, begins_with(SK, "PET#")
Create a sitting PutItem sitting + PutItem code-lookup companion
Log a meal / med / treat / water upsert the one sitting record it belongs to

There are no joins, no cross-user reporting, and no analytical scans; the end-of-stay summary aggregates a few dozen items from one sitting in app code. The access paths are all single-key gets or one-partition queries, the traffic is bursty and idle most of the day, and the API runs on serverless functions. DynamoDB fits that: a key-value store, priced per request, with no connection pool to manage. So DynamoDB was used.

One table with composite PK/SK keys and a lightweight companion item serves every operation, with no secondary indexes:

Item PK SK What it holds
Pet USER#{id} PET#{petId} name, species, weight, vet contact, medical notes, feeding instructions
Sitting USER#{id} SITTING#{sittingId} the whole session in one item — meals[], meds[], treats[], waterChecks[], access code, closure flags
Code lookup CODE#{code} META { sittingId, userId } — resolves a sitter's code with no account and no index

A sitting holds its schedule and live log in a single item, so a meal update reads and writes one record.

v0  ──►  repo  ──►  Vercel (auto-deploy on merge to main)
                       │
   Browser (optimistic │  Next.js API routes:
   state; UI updates   │  /api/pets · /api/sittings ·
   before the network) │  /api/sittings/by-code · /api/sittings/log
                       │            │  lib/db.ts — one DocumentClient,
                       ▼            ▼  OIDC creds fetched per request
                 Amazon DynamoDB — single on-demand table
                 (USER#/PET#, USER#/SITTING#, CODE#/META)

This first version ships online-only with a streamlined owner sign-in. Real authentication, offline logging, and automatic data expiry (DynamoDB TTL) are the next steps.


*Built with v0 · Vercel · Amazon DynamoDB.

Built With

Share this project:

Updates