Should I vibe code
Visual boards for creative projects, references, notes, and tasks
The canvas is an afternoon. Being the only copy of three years of a client's reference material is the product.
?
Their verdict, the Pay per person price and the build-time estimate come from their entry, MIT-licensed. Checked 2026-08-04.
?
Our verdict, the regret score and everything below it. Editorial and unsponsored — nobody can pay to be moved.
The honest answer
why the verdict is what it is
Draggable cards on a board is an afternoon, and if you stop there you will have something that looks exactly like the screenshots. The mistake is thinking the canvas is the product. A Milanote board is a filing cabinet: clipped articles, uploaded PDFs, hundreds of reference images, the client's logo files, three years of a project's visual memory. What you would actually be building is a blob store with a nice front end, and blob stores are where side projects quietly lose things — no thumbnail pipeline, no versioning, no second copy, and an export you were going to add later. Then someone shares a board with a client and your weekend project has an uptime expectation. Build the canvas for the pleasure of it; keep the assets as ordinary files in an ordinary folder, and treat the app as a view over them rather than the place they live.
What actually breaks
not "if". the specific failures.
- Uploaded files, which are the actual content — a board is a blob store wearing a canvas, and one bad migration takes the assets with it
- Clipped links, because you stored the URL and the page it pointed at was redesigned, paywalled or deleted
- The web clipper, which is not one feature but a browser extension per browser, each with its own store review and its own manifest migration
- Thumbnails and previews, cheap for fifty images and a background job with a queue at five thousand
- Shared boards, the moment a client bookmarks one and expects the link to resolve next quarter
- Export, if you never wrote it, because a board that only opens in your app is a board you cannot hand over
- Undo across a drag that moved forty cards, which is a different data structure from the one you will reach for first
Is that you?
the verdict is a default, not a law
- It is your board, on your machine, and every asset is a real file in a real folder you could open with anything else
- You take an existing canvas — tldraw, Excalidraw — instead of writing hit-testing, z-order and marquee selection yourself
- Export to a directory of original files plus a readable manifest exists before the second feature
- Backups are a folder sync you can verify by looking at the folder
- Clients or collaborators will open the boards, because a shared link is an uptime promise you have not priced
- It becomes the only copy of anything, since there is no version history except the one you did not build
- You are counting on a web clipper, which is a separate multi-browser product with its own permanent review cycle
- The boards hold unreleased client work and your storage bucket was configured in a hurry
If you build it anyway
the checklist, then the prompt that enforces it
- Store assets as files on disk with their original names, and keep the board as a manifest that points at them. If the app dies, the work is still openable.
- Write export before you write the second feature. A directory of originals plus a JSON of positions is the minimum, and it is what makes the whole project reversible.
- Do not build a web clipper. Accept drag-and-drop and paste; that covers most of the value for none of the extension maintenance.
- Snapshot the manifest on every structural change and keep the last few hundred. Boards are edited by dragging, and dragging is how people delete things without noticing.
- If you add sharing, make links unguessable and expiring, and default new boards to private. A share link is the only route a stranger has into this app.
- Cap upload size and generate thumbnails out of band from the first version, or the first 200MB PSD will teach you why.
- Use an existing canvas library. Selection, snapping, z-order and pan-zoom are a month of fiddly work that is already done well.
I want a visual board app for collecting notes, images and links. Build it in this order
and push back if I ask you to skip ahead.
1. The failure mode here is losing an archive, not leaking one. Everything below exists to
make sure the contents survive the app.
2. Storage first, before any UI. Uploaded files are written to a plain directory under their
original filenames. The board is a manifest that references them by path. Never store an
asset only as a blob in the database.
3. Export second, still before the canvas. One command must produce a folder containing every
original file plus a readable JSON of positions and text. If you cannot do that, the rest
of the project is a trap.
4. Snapshot the manifest on every structural change, keep the last few hundred, and give me a
restore command. A drag that moves forty cards is a destructive operation.
5. Only now the canvas, and use an existing library — tldraw or Excalidraw. Do not hand-roll
hit-testing, z-order, marquee selection or pan-zoom.
6. Cap upload size and generate thumbnails in a background job from the first version. Say
what the cap is in the README.
7. Boards are private by default. If I ask for sharing, links must be unguessable and must
expire, and you should tell me that shared links are an uptime commitment to someone who
did not choose my code.
8. Do not build a browser extension. If I ask for a web clipper, explain that it is one
extension per browser with a permanent store-review cycle attached, and offer paste and
drag-and-drop instead.
9. Out of scope unless I ask: real-time collaboration, comments, mobile apps, link previews
fetched from third-party sites, and anything that makes this multi-tenant.
10. At the end, tell me exactly which directory I need to back up, and how to check the
backup is complete.
That one keeps you out of trouble. For the prompt that actually builds it, canivibecodeit.com has one.
their build prompt ↗Or don’t build it
the boring option, and the way back out
Anyone but you opens a board. At $12.50 a month per person month-to-month — $9.99 if you commit to a year — you are buying storage that gets backed up, a clipper that works in every browser, and mobile apps for the moments you actually collect things. The free tier's 100 items is enough to decide whether the workflow suits you before you pay anything.
$12.5/mo is cheaper than your weekend.
Keep the assets as ordinary files and the board as a manifest, and the exit is a directory copy. If you skip that and put images in a database as blobs, the exit becomes a migration script you will write in a bad mood; write it now, while the board has ten cards on it and the script is trivial to verify.
Infinite-canvas SDK for React, source-available under tldraw's own licence rather than a standard OSS one.
Local-first workspace that puts documents and an edgeless whiteboard over the same content.
MIT canvas with a well-documented scene format that is easy to read back out again.
Questions
Why is a canvas app rated more harshly than a mind map or a diagram tool?
Because of what people put on it. A diagram is text that renders; a Milanote board accumulates files — images, PDFs, client assets — and becomes the only place they exist. The risk is not the drawing code, it is quietly becoming a file server with no backup story.
Could I not just keep it single-user and local?
Yes, and that version is close to a SHIP IT. The verdict is DEMO ONLY because the moment that survives contact with real use is the one where you send a board link to a client, and that is the version people actually end up with.
What is the single most important thing to get right?
Files on disk, referenced by a manifest. Almost every other mistake here is recoverable; assets that only exist inside your database, with no export, is the one that is not.
Every week, someone ships something they shouldn’t have.
New verdicts, the worst thing that landed in the trap, and the occasional incident report. No other email, ever.
Multiplayer is not a feature you bolt on later. It is a document model, and you picked one on day one.
The canvas is MIT — take it. What Plus sells is the server that still has your boards on Monday.
A canvas is easy. A canvas forty people drag things around on simultaneously is a research project.
last reviewed 2026-08-05 · verdict is editorial and unsponsored · shared entry data from canivibecodeit under MIT · not legal advice