This is an AI-generated project. I have not reviewed it. It runs, meets my needs, and has felt good to use since being migrated to depend on my own Docengine. Its other value is simply serving as an application for validating Docengine, so do not expect too much from it.
TypeMD is a local Markdown editor for Windows built with Wails, React,
TypeScript, and my own
docengine.
It provides WYSIWYG editing, multiple tabs, an outline, in-document search,
local images, manual saving, crash recovery, and external-change protection.
It also validates Docengine in a real desktop application and with large files.
TypeMD currently has a high level of dependence on Docengine, approximately 8/10, although the dependency is concentrated in a small part of the codebase. Docengine is the backend document kernel: it handles opening and creating files, revisions, edit history, undo and redo, snapshots and search, paged windows, save conflicts, and crash recovery. The interface can still start without it, but the main document features cannot function.
The frontend does not depend on Docengine directly. Only eight production Go
files import it, and all of them use only its high-level doc package.
Replacing Docengine would therefore require rewriting or adapting most of the
backend document-session capabilities, while the frontend and most of the
Wails protocol could remain. In short, TypeMD is highly dependent on
Docengine's capabilities, but the code-level coupling is localized.
The following results were measured on 2026-07-30 on Windows/amd64 with Go 1.26.5. “Open” measures the time for the desktop bridge and Docengine to open the file, excluding application cold start. “Full index” is the additional operation of waiting for indexing to finish after opening.
| File size | Open | Full index | Edit + undo + redo + save | Largest bridge window | Peak Go heap growth |
|---|---|---|---|---|---|
| 600 KiB | 31 ms | 30 ms | 52 ms | 98,392 B | 3.13 MiB |
| 64 MiB | 530 ms | 1.71 s | 987 ms | 98,392 B | 3.61 MiB |
| 1 GiB | 7.84 s | 25.13 s | 15.30 s | 98,392 B | 24.80 MiB |
The benchmark generates Markdown files of each size, measures opening and full indexing, requests windows at the beginning, middle, and end of the document, runs a full-text search, and performs one edit, undo, redo, and save cycle. These are single-run measurements from one machine and are not fixed latency guarantees for every device.