File Types
Supported
Section titled “Supported”| Type | Behavior |
|---|---|
Markdown (.md) | First-class. Synced, indexed, embedded, rendered everywhere. |
| Frontmatter | YAML at top of .md. Preserved exactly. Tags + key/value rendered separately. |
| Wikilinks | [[Note Title]] resolved against vault and rendered as links. (A backlinks panel isn’t shipped in the web app yet.) |
| Embeds | ![[image.png]] and ![[Note Title]] (block embed) rendered inline. |
| Images | .png, .jpg, .jpeg, .gif, .webp, .svg (stored as attachments, referenced by notes). |
| PDFs | Stored 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 attachments | Any other file type, stored, synced, and downloadable. Not previewed. |
Limits
Section titled “Limits”| Limit | Default | Configurable? |
|---|---|---|
| Per-note size | 10 MiB | No (hardcoded backend cap) |
| Per-attachment size | Tier-dependent on cloud (Free 10 MiB / Starter 200 MiB / Pro 500 MiB); 500 MiB ceiling on self-host | Per-tier on cloud |
| Total vault size | Tier-dependent on cloud, none on self-host | n/a |
| Notes per vault | None | n/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, and both are better off as attachments or external links.)
What’s NOT first-class
Section titled “What’s NOT first-class”- 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
.mdfiles 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 idea: 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.
What we DO render server-side
Section titled “What we DO render server-side”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.