Skip to content

File Types

TypeBehavior
Markdown (.md)First-class. Synced, indexed, embedded, rendered everywhere.
FrontmatterYAML at top of .md. Preserved exactly. Tags + key/value rendered separately.
Wikilinks[[Note Title]] resolved against vault. Backlinks tracked.
Embeds![[image.png]] and ![[Note Title]] (block embed) rendered inline.
Images.png, .jpg, .jpeg, .gif, .webp, .svg — stored as attachments, referenced by notes.
PDFsStored as attachments. Inline preview in web app.
Canvas (.canvas)Obsidian’s spatial-canvas JSON — synced as-is, renders in Obsidian. The web app does not render canvases today (no canvas viewer is wired); it shows the file as a markdown/attachment surface.
Audio.mp3, .wav, .m4a — stored as attachments, browser preview where the browser supports it.
Video.mp4, .webm — same as audio.
Other attachmentsAny other file type — stored, synced, downloadable. Not previewed.
LimitDefaultConfigurable?
Per-note size1 MiBYes (MAX_NOTE_SIZE_BYTES)
Per-attachment size25 MiBYes (MAX_ATTACHMENT_SIZE_BYTES)
Total vault sizeTier-dependent on cloud, none on self-hostn/a
Notes per vaultNonen/a

If you hit the per-note size cap, the plugin rejects the push with a 413. The fix is to split the note. (Notes that big are usually a code dump or a copy-paste of a long article — both are better off as attachments or external links.)

  • Live collaborative editing — Engram isn’t Google Docs. Two people editing the same note live will see a conflict, not a live cursor.
  • Excalidraw plugin output — Excalidraw stores its data in .md files with embedded JSON. Engram syncs them but the web app’s markdown viewer doesn’t render the diagrams — only Obsidian’s Excalidraw plugin does.
  • Dataview queries — Dataview’s plugin-specific query syntax doesn’t execute server-side. The note syncs; the query runs only inside Obsidian.
  • Templater scripts — same: the file content syncs, the script is Obsidian-only.

These are plugins that operate purely inside Obsidian. Engram syncs their backing files but doesn’t replicate their runtime.

The web app renders the same things Obsidian does for stock markdown: wikilinks, embeds, callouts, KaTeX, Mermaid, footnotes, GFM tables, task lists. If you’d see it in Obsidian’s reading view (without plugins), you’ll see it in the web app.