Project memory for people building with AI

You can build a monthof work in a week.But, can you explain it?

You and your coding agent are shipping faster than anyone’s record-keeping was built for. ezmodo keeps the reasoning next to the work — what was decided, why, and what it turned into.

  • Free forever for one project
  • No credit card
  • Works with any agent that supports MCP
E-235Public site refresh
emo / ezmodo
#2361

Rebuild the landing page

In progress

Why · decided 6 weeks ago

Server-render the marketing sections, keep only the auth redirect on the client — otherwise crawlers get a JS shell.

Commits
4 commits
web/src/app/page.tsx
Last updated
updated 2 minutes ago,
by your agent
2,599tasks251epics3milestoneslive

What changed

Everything is faster,but people’s memoriesare the weak link.

Six weeks ago your agent touched forty files. You read the diff, it looked right, you merged it and moved on.

Presently, something in there is wrong. Why is it built this way? The reasoning was in a chat window long gone. The commit message says refactor auth flow.

So you spend half a day working out what was built, and why.

Enter ezmodo.

Developers and coding agents are shipping faster than anyone can keep up with, and project tools have not moved with them — most still assume a waterfall underneath, and most of the work of keeping them true falls on you.

ezmodo is built lean. It sits between the weight of something like Jira and the deliberate simplicity of Linear, and takes the useful half of each.

And it keeps the reasoning next to the work — what was decided, why, and what it turned into — so most of that manual upkeep stops being your job.

Jonathan Montiverdi, who builds ezmodo

Who made this

Built by one person,an agent, and twobattle-tested apps.

Vibe coding changed the way I worked, in both good and bad ways. I was able to pump out several side projects in under a month, but the drift between what I wanted and what was built was real. New features that seemed cool when talking with AI were added in a day, and the apps grew without a northstar to guide them. Quite literally, there were hundreds of markdown docs in the repo that all had conflicting information, and past decisions were either lost or waiting to be remembered. Rework became a large part of every coding session.

I built ezmodo to solve these problems. Along the way, my partner would ask, “How does feature X work?” and more often than not, I couldn’t answer directly. Slowly, ezmodo grew into what it is today. A PM tool that helps set up, guide, and complete projects at the speed AI works.

Although the previous vibe-coded apps are lost to history, we were able to build and publishsaltpigin under six months — fully working and vetted by both major app stores — thanks to ezmodo.

Jonathan Montiverdi

Send me a message

The past

How was this built?

Open any piece of work and the reasoning is sitting on it — the decision, the date, the commits it turned into, and a plain-language account of how the thing actually behaves now, written from the code rather than from memory.

emo / ezmodo / tasks / 2361
#2361In progress

Rebuild the landing page

E-235 · Public site refresh

How this actually works nowfrom 4 commits · 2 decisions

The marketing sections render on the server. Only the authenticated-user redirect stayed a client component, so crawlers receive real HTML rather than a JS shell — which was the whole reason for the split.

  • page.tsx
  • a3f1c9
  • decision · server-render

Steps

3 of 5
  1. Server-render the marketing sections
  2. Rebuild the hero and proof card
  3. Audit both themes for contrast
  4. Rework pricing onto the new system
  5. Open the PR

Decisions along the way

  1. 6 wks agoServer-render the marketing sectionsThe page was a client component doing an auth redirect, so crawlers got a shell.
  2. 4 wks agoDrop the gradient mesh and the feature gridSeventeen equally-weighted cards meant the page made no argument at all.

The present

What you meant, andwhat actually shipped.

Nothing keeps a person and an agent pointed at the same thing for long. ezmodo holds both sides — the intent you wrote down and the reality the code shows — and tells you where they’ve come apart, while it’s still cheap to fix.

Intentwhat you wrote down

Public pages are server-rendered so search engines and social crawlers can read them, with structured metadata on every public route.

Realitywhat the code shows

The pages are server-rendered. Every route also emits noindex, nofollow, and robots.txt disallows all crawlers.

They’ve come apartfound in web/src/app/robots.ts, layout.tsx

The environment check gates on a variable this deployment never sets, so the intent has been true in the code and false in production since the day it shipped.

The future

Walk away for a month.Come back and knowexactly where it is.

Not a wall of tickets to re-read. A straight answer: what shipped while you were gone, what’s half-finished, what’s waiting on you, and what the next thing is.

The record didn’t decay, because keeping it never depended on you being there.

Where things stand

Ezmodo · last opened 34 days ago

  • Shipped while you were away

    The GitHub connect flow, pull-request linking, and auto-save across every settings panel.

  • Half-finished

    #2361 Rebuild the landing page — 3 of 5 steps, last touched 4 days ago.

  • Waiting on you

    One decision: how many agent updates the free plan gets each month.

  • Next

    E-236 — the navigation graph, blocked on nothing.

How it stays true

You connect it once.After that your AI keeps track.

There is no habit to build and no second window to keep open. The record is a by-product of the work, which is the only reason it survives a busy week.

And it runs on your AI, not ours. The agent you already pay for does the building, and ezmodo isn’t reselling you tokens to do it again. Its own AI works on the record instead — describing, breaking down, estimating.

$ ezmodo mcp install
✓ connected — emo / ezmodo
  1. 01

    Point your agent at ezmodo.

    Works with any agent that supports MCP.

  2. 02

    Work exactly the way you already work.

    Your agent files what it did and why as it goes. You review it like any other diff.

  3. 03

    Ask it anything, later.

    Tomorrow, or in three months. The answer sits where the work is.

This morning

live
  1. 09:04task#2361 Rebuild the landing page
  2. 09:04step2 of 5 done
  3. 09:11commita3f1c9 · page.tsx
  4. 09:26decisionserver-render the hero
  5. 09:26step3 of 5 done
  6. 09:38commit7b20de · hero.tsx
  7. 10:02link→ E-235
  8. 10:15task#2364 Public stats endpoint
  9. 10:31commite91a04 · router.go
  10. 10:44step4 of 5 done
  11. 10:52decisioncache the counts

Teams

It scales up when you do.

If the side project turns into a company, nothing has to be migrated. Teams, sprints, goals, milestones and roles are already in there, dormant until you need them. Most people never do — which is why they’re not the reason you’re here. See what teams get

Pricing

Free is a real thingyou can use forever.

One project, 2,500 tasks, no card, no expiry — and you can connect your agent, which is the whole point. It writes a thousand updates a month before anything asks you for money.

Paying lifts the cap and adds more projects, the API, and the estimates drawn from work you’ve already finished. Your own agent keeps doing the writing either way. It starts at $12 a month.

See the plans