Milanote

Visual boards for creative projects, references, notes, and tasks

YES · focused build
price variesestimated build time one sittingreplaced by 0 people

Milanote's solo core is compact: build a local-first visual project boards app with fast capture, full-text search, backlinks, tags, and Markdown export. A competent builder can reach a useful personal version in one sitting, while the paid product mainly wins on polish, sync, importers.

Build verification: not recorded. How we judge buildability

What you give up

  • conflict-safe multi-device sync
  • mature importers and exporters
  • collaborative editing and sharing
  • native mobile clients

Why people still pay

Milanote: People pay for a writing surface they trust for years, plus migration tools, sync, and tiny interaction details that disappear into habit.

Your build guide

The stack, security requirements, and agent rules for a focused replacement.

Before you start

  • Runtime and tools: TypeScript, React, SVG or Canvas and IndexedDB with a versioned JSON project format.
  • Before starting: A browser with IndexedDB, licensed example assets and fonts, and an agreed output size.
01
TypeScript, React, SVG or Canvas and IndexedDB with a versioned JSON project format
02
Data design: Store Board, Card, Asset, Connector and Position; assets are referenced by stable IDs and deleting a board prompts before removing shared attachments.
03
Setup: A browser with IndexedDB, licensed example assets and fonts, and an agreed output size
engineering roadmap

Implementation plan

1

Phase 1

Pin the working slice and create its example input: Arrange research notes, images, links and checklists on visual project boards, connect related cards and export a portable project bundle. Confirm setup: A browser with IndexedDB, licensed example assets and fonts, and an agreed output size.

2

Phase 2

Implement persistence and write-time invariants before decorating the UI: Store Board, Card, Asset, Connector and Position; assets are referenced by stable IDs and deleting a board prompts before removing shared attachments.

3

Phase 3

Connect the working view to real saved state. Maintain one document model for preview, undo and export. Use stable element IDs; save after completed gestures, handle storage quota errors and provide explicit file backups.

4

Phase 4

Expose the app-specific limits and recovery path in context: Start with local editing, text search and explicit backups. Browser storage can be cleared; do not promise cloud sync or semantic understanding without separate implementation.

5

Phase 5

Walk through this concrete acceptance case and preserve its exported evidence: Use one image on two boards, delete one card and export the other board; the attachment remains available and connector endpoints stay valid. Finish the README and backup/restore instructions; report unfinished capabilities explicitly.

the pro prompt
download AGENTS.md
Build the following focused alternative to Milanote. Implement the focused workflow below first; the verdict is not evidence of a completed or production-certified build.

WORKING SLICE
Arrange research notes, images, links and checklists on visual project boards, connect related cards and export a portable project bundle.

SETUP AND ARCHITECTURE
Use TypeScript, React, SVG or Canvas and IndexedDB with a versioned JSON project format. Prerequisites: A browser with IndexedDB, licensed example assets and fonts, and an agreed output size. Before integrating anything, record actual versions and permissions, plus model files or provider limits only where used, in the README; make unavailable dependencies visible rather than simulating success.

DOMAIN MODEL AND INVARIANTS
Store Board, Card, Asset, Connector and Position; assets are referenced by stable IDs and deleting a board prompts before removing shared attachments.

IMPLEMENTATION CONTRACT
Maintain one document model for preview, undo and export. Use stable element IDs; save after completed gestures, handle storage quota errors and provide explicit file backups. Provide an input/setup view, the main work view, and a review/export view appropriate to this workflow. Preserve the last saved state if a job or save fails. Include empty, loading, permission-denied, partial and retryable-error states. Log identifiers and error categories without secret values or unnecessary private content.

APP-SPECIFIC BOUNDARY AND RECOVERY
Start with local editing, text search and explicit backups. Browser storage can be cleared; do not promise cloud sync or semantic understanding without separate implementation.

ACCEPTANCE SCENARIO
Use one image on two boards, delete one card and export the other board; the attachment remains available and connector endpoints stay valid. Also reopen the app after an interrupted operation, confirm the saved record/export remains inspectable, and document the recovery action. These are implementation acceptance requirements, not a claim that this guide has been tested.

DELIVERY
Deliver a runnable repository with migrations or project-format versioning, a non-sensitive example, environment/permission setup, the exact manual acceptance steps, and a backup/export-and-restore walkthrough. Implement the working slice before optional integrations; list any deferred paid-product capabilities honestly. Do not add capabilities outside the working slice just to resemble the original product.

PROJECT RULES FOR AGENTS.md
Keep the domain invariants above executable at the write boundary. Propose scope changes before adding providers or permissions. Never fabricate source evidence, publish results, identity matches or successful delivery. Preserve user originals and require an explicit confirmation for destructive changes or external publication.

$ open in your agent (prompt prefilled, you press enter), copy the prompt or copy or download AGENTS.md

share on X ↗

Alternatives to building your own

AFFiNECreative boards, documents and collections in one app, with local files underneath.$0free↗Apple FreeformA bottomless Apple whiteboard for notes, links and files; databases missed the meeting.$0free↗ObsidianVisual canvases tied to real notes and tasks, though taste is supplied separately.$0free↗

all 3 free alternatives to Milanote →· no votes, no pay-to-list · just what's real

Milanote pricing

planmonthlyannual (per mo)what you get
free$0/user$0/user100 notes/images/links; 10 file uploads; unlimited shared boards
pay per person$12.50/user$9.99/userUnlimited notes/images/links, file uploads and shared boards
team bundle—$49Unlimited notes/images/links, uploads and shared boards; selected multi-person bundleBilled annually. The rendered official page showed $49/month for the currently selected bundle but did not expose its seat count.
larger team——Custom seat count and contractContact sales.

free tier100 notes, images or links; 10 file uploads; unlimited shared boards

billingindividual monthly + annual; Team bundle annual only at the rendered selection; larger teams custom

hidden costsTeam pricing depends on the seat bundle selected; the live page displayed $49/month billed annually without exposing the selected number of people. Every paid individual requires a paid seat.

pricing sources checked 2026-08-13 · pricing source ↗

Questions about Milanote

Can you build your own Milanote with AI?

The verdict is yes for the scoped workflow. Milanote's solo core is compact: build a local-first visual project boards app with fast capture, full-text search, backlinks, tags, and Markdown export. A competent builder can reach a useful personal version in one sitting, while the paid product mainly wins on polish, sync, importers.

What does the Milanote build prompt cover?

The prompt starts with this scope: Arrange research notes, images, links and checklists on visual project boards, connect related cards and export a portable project bundle. Full-product capabilities excluded from the comparison include: conflict-safe multi-device sync; mature importers and exporters; collaborative editing and sharing. Follow the implementation plan and its prerequisites before expanding the build.

How do I use the prompt, AGENTS.md and agent skills?

Start with the Milanote prerequisites and stack, then copy the prompt into your coding agent. Save the project rules as AGENTS.md in the project root. Linked skills are optional packages or source instructions for specific tasks; review their current contents and install only those matching the chosen stack. A skill does not supply API credentials or verify the finished app.

How long will this Milanote project take?

The catalogue estimate is one sitting for the limited scope. Setup, integration approvals, debugging, deployment and ongoing maintenance can add time. This is an estimate, not a delivery guarantee.

What would I give up by replacing Milanote?

conflict-safe multi-device sync; mature importers and exporters; collaborative editing and sharing; native mobile clients. Milanote: People pay for a writing surface they trust for years, plus migration tools, sync, and tiny interaction details that disappear into habit.

What can I use instead of building Milanote?

AFFiNE: Creative boards, documents and collections in one app, with local files underneath. Apple Freeform: A bottomless Apple whiteboard for notes, links and files; databases missed the meeting. Obsidian: Visual canvases tied to real notes and tasks, though taste is supplied separately. Compare all listed options at https://howtovibecodeit.dev/milanote/alternatives. Check each option's license, hosting needs and feature limits.

Every week, more subscriptions die.

New verdicts, new prompts, the week's most-doomed apps.
One email. Unsubscribe in one click.

last week:100 Questions · KINDA1of10 · KINDA1Password · KINDA+1090 more

free forever · no scanner spam · the prompt stays on the site, the deaths come to you

$weekly: what got a verdict, what died.