DEV Community

Vineet Negi
Vineet Negi

Posted on

I built a 60-second reflection app that paints you a watercolor keepsake. Days 2 + 3 of the $50K MeDo hackathon.

TL;DR

I spent the weekend building Evengood — a 60-second end-of-day reflection app — on MeDo, a no-code AI platform. You talk or type how your day was, it plays back a calming Tomorrow prompt in a soft voice, and it paints you a watercolor keepsake from the feeling behind your words.

Live: https://app-b3tuv7opfegx.appmedo.com/


The idea

Every journaling app I've tried feels like homework. Notebooks full of dashboards, streaks I fail at, prompts I resent. I wanted the opposite: a tiny ritual that takes under a minute, leaves you with something beautiful, and then gets out of the way. No login. Nothing saved on a server. Come back tomorrow if you want to.

The aesthetic target: a soft lavender-to-peach gradient, Playfair Display for the headings, deep-indigo text, a single breathing microphone circle. Feel, not features.

The MeDo stack

For non-builders reading this: MeDo is a chat-driven platform where you describe the app you want and it generates the full React + Vite + Tailwind codebase, wires in plugins, and hosts it. You iterate by sending follow-up prompts. It's not a template tool — it writes real code you can inspect and edit.

Evengood uses four MeDo plugins:

  • Speech-to-Text — captures the 60-second reflection when the user chooses to talk
  • Large Language Model (x2) — one call generates the Tomorrow prompt, a second call extracts a one-word "theme" like peaceful, proud, tender
  • Text-to-Speech — reads the Tomorrow prompt back in a calm voice
  • Kling (image generation) — paints the watercolor keepsake card using the theme word

The keepsake card — the part I'm proudest of

The theme word drives a Kling image prompt like:

soft dreamy watercolor, lavender to peach gradient, abstract calm feeling of peaceful, no text, no people, serene, ethereal, minimal

For my test reflection about finishing hard work and noticing the light through a kitchen window, the LLM picked peaceful and Kling painted me a field of lavender dissolving into a peach watercolor sky. The Tomorrow line ("Notice the way the air feels when you first open a window.") overlays in white serif. It's the kind of image you'd actually screenshot and keep.

Bugs, and how I debugged them without writing code

On v8, the Kling image silently fell back to a CSS gradient every time. Turned out the timeout was 15 seconds; Kling typically needs 20–40. I sent MeDo a fix prompt: bump the timeout to 45 seconds and add console.log statements before the call, on success, and on error. Next build, the logs made the whole flow observable:

[keepsake] calling Kling with prompt: soft dreamy watercolor, lavender to peach gradient, abstract calm feeling of peaceful...
[keepsake] Kling returned image url: https://...keepsake-ea752a84-....jpg
Enter fullscreen mode Exit fullscreen mode

22 seconds end-to-end, and the watercolor rendered. That's the pattern I keep returning to on MeDo: ask for observability first, then debug.

Three things I learned

  1. Feel is a spec. The best prompt I wrote wasn't a feature list — it was a paragraph describing how the app should feel when you use it. MeDo builds noticeably better when you give it emotional direction alongside technical constraints.
  2. Persist client-side, aggressively. No-account apps live or die by localStorage. The 7-day streak and ambient soundscape choice both persist without a backend, and that keeps the app feeling lightweight.
  3. One bundled prompt beats five small ones. I grouped my v8 changes (keepsake card + streak + soundscape) into a single well-scoped prompt with an explicit "DO NOT" list, and the output was dramatically cleaner than when I'd tried incremental changes.

Day 3 update — three things actually shipped

Between Day 2 and Day 3 I did one tight fix pass on MeDo (30 credits, one prompt, 38 tasks) and all three v8 rough edges are now solid:

1. Kling watercolor keepsake works end-to-end. Timeout bumped from 15s to 45s, console logs wrapped around the call. The image is now generated from the single theme word inferred from your reflection (calm, peaceful, hopeful, grateful…) and renders in ~22 seconds. No more gradient fallback.

2. Ambient soundscape toggle is wired. A small pill above the microphone lets you switch between Silent, Rain, and Soft piano. Choice persists in localStorage so it carries over between sessions. Audio fades in when the reflection starts and fades out on Tomorrow.

3. Streak tracker is real. Seven dots along the bottom of the keepsake card, today filled in deep indigo, past days filled in lavender, future days faded. Powered by a tiny localStorage array of ISO dates — no account, no server, still works.

The meta-lesson: on a no-code platform, observability is the superpower. One prompt asking for console.log before, on-success, and on-error made the Kling bug diagnosable in a single build cycle. I keep returning to that pattern.

Try it

https://app-b3tuv7opfegx.appmedo.com/

It takes 60 seconds. If it leaves you with a watercolor you actually want to keep, I'd love to hear about it.


Built for the Build with MeDo Hackathon — $50K in prizes, submissions open until May 20, 2026.

Top comments (0)