Documents and notes decision

Milanote

A minimal single-user Milanote clone (visual boards, files, clipper) is realistic for a capable developer to build and self-host, but the full paid product—real-time collaboration, native apps, team billing, and managed hosting—is costly to replicate and justifies continuing to pay for Milanote for those features.

Visit website
Subscription$12.5/month ✓ verified
Initial build30 hours
Monthly upkeep8 hours + $20
Evidence2/3 runs agree

Open-source builds that already do this

Every project below is open source and already does this job today. Fork one, self-host it, or take the parts you need — the build prompt further down assumes an empty file, and this is the shortcut past that. Licences differ; check the one on each card before you ship.

What a replacement has to do

  • Create and edit visual boards (notes, images, links) saved to a backend and retrievable by board; upload and serve files; provide a pan/zoom infinite canvas with drag-and-drop placement; user auth and per-user storage of boards.

What it still won’t have

  • Real-time multi-user collaboration (live cursors, sync)
  • Official mobile and desktop native apps and app-store distribution
  • Company-managed hosting, backups, and SLA
  • Team plans, billing, and enterprise features

What remains hard

  • Product polish and ongoing maintenance
Read the build prompt

First-year cost

Keep paying

Paying ischeaper in year one.

On cash alone, building overtakes the subscription at 2 seats.

Paid seatsseats

Money you would actually spend

Keep paying

Subscription price × seats × 12

Build it

AI build APIs + hosting

Time you would spend

What you would spend

What we assumed

The verdict above measures whether you could build it. This one is only about money.

Runnable build prompt

Not run yet
Build a single-user Milanote-like web app using React for the frontend (Vite), a Node.js + Express API, Postgres for metadata, and S3-compatible storage for uploaded files. In scope: (1) board CRUD, (2) item types: text note, image, link, file, with drag/drop placement on a pan/zoom canvas, (3) user auth (email/password) and per-user isolation, (4) file upload handling to S3 and serving, (5) a bookmarklet endpoint to clip a URL/image into a chosen board, (6) tests for API endpoints and critical UI flows, and (7) Docker Compose for local dev. Out of scope: real-time multi-user sync, native mobile/desktop apps, team billing, analytics, and advanced templates. Include error handling for uploads, auth failures, and storage errors; add automated tests (unit + 1–2 end-to-end flows) and simple CI to run them.
How we checked4 sources · 2/3 runs agreed · evidence score 63

How the score was reached

  • Partly verdict base52
  • An open-source build was found+5
  • 4 cited sources+3
  • Price verified on pricing page+3
  • Evidence score63

The base comes from the verdict. Everything under it is a check that either happened or did not, and each one is a fact frozen in this record rather than a judgement made at render time — so the same evidence always produces the same number.

How scoring works →

Cited sources · 4

Every page the run actually retrieved.

Integrity checks

What held up, and what did not.

✓ Price read off the page! 2 of 3 runs agreed; the verdict is the majority✓ Citations limited to fetched pages! 1 moat recorded