DEV Community

AceToolz
AceToolz

Posted on

Why I Built a Desktop Markdown Editor in 2026 Using Tauri 2.0

By Pranshu Agarwal · Founder, AceToolz


It Started With a Problem

When I was deep in building AceToolz, I had Markdown everywhere. README files, changelogs, documentation drafts, tool descriptions, etc. Markdown was the connective tissue of the whole project.

And I will be honest about something: I used AI tools heavily during development. Claude Code was a big part of my workflow. If you have used Claude Code or any agentic AI tool, you already know that the outputs are almost always Markdown. Implementation plans, architecture decisions, code explanations, session summaries. Everything comes back as a structured .md file. At one point I had dozens of these sitting in a folder and absolutely no good way to read them.

Every single time I needed to actually read one of those files, I was opening a browser tab, pasting content into Dillinger or StackEdit or similar sites, previewing it, closing the tab, making edits, then repeating the whole cycle again. It sounds minor. It was not. When you are doing that ten times a day, every day, it becomes genuinely annoying.

And it was not just reading. When writing detailed prompts, instructions or feature specs for Claude Code, I was writing in Markdown too. Structured headings, bullet points, code blocks. AI models respond significantly better to well-structured Markdown input than they do to unformatted paragraphs. So I was both reading Markdown outputs and writing Markdown inputs constantly, and I had no good dedicated place to do either.

I kept thinking: why is there no simple desktop app for this? Not a plugin, not a browser extension, not a full-blown note-taking suite. Just a clean, fast editor that opens a .md file and shows me what it looks like. That is it.

I never found one that felt right. So I built it.

That is how MarkUp started. A side project I originally built for myself, to scratch my own itch. And now I am sharing it with the developer community because I suspect a lot of you have felt the exact same frustration.


Markdown Is Not Going Anywhere

Before I get into MarkUp itself, I want to spend a moment on why Markdown specifically matters in 2026, because I think it is easy to take for granted how deeply embedded it has become.

GitHub made Markdown the default language of technical documentation. Then Notion, Obsidian, and Linear brought it to product teams. Then Ghost and Hashnode brought it to bloggers. Then Discord, Slack, and WhatsApp added their own flavors of it. At this point, if you work in tech in any capacity, you are writing Markdown whether you consciously think about it or not.

For developers, Markdown is everywhere: READMEs, wikis, pull request descriptions, issue templates, technical specs, API documentation. GitHub Flavored Markdown (GFM) especially has become a genuine standard that most developers are expected to understand and use fluently.

And then AI came along and made Markdown even more central to how developers work.

Every major AI coding tool outputs Markdown. Claude Code, Cursor, ChatGPT, Gemini. When you ask for an architecture plan, a code review, a feature breakdown, it comes back structured in Markdown. There is a good reason for this. Markdown is plain text, so it is lightweight and fast to generate. It carries semantic structure (headings, lists, code blocks) without the bloat of a Word document or the binary encoding of a PDF. A well-structured Markdown file gives an AI model clear context to reason about, and a well-structured Markdown output is easy for a developer to parse and act on. PDF and Word formats are designed for human readers and printing. Markdown is designed for both humans and machines. That distinction matters a lot in an AI-first workflow.

The funny thing is that despite Markdown being so ubiquitous, the tooling around it has mostly stayed web-based. There are great web editors. But very few desktop-first editors that treat Markdown as the main event rather than a secondary feature of a larger app.

That gap is what MarkUp is trying to fill.


Why Existing Options Were Not Enough

I tried several editors before building my own. Here is what I kept running into:

Several Web-based editors (Dillinger, StackEdit, HackMD) require a browser, require internet, and often require an account. They are fine for quick one-off previews but terrible for any kind of real workflow. Your files live on your machine. Your editor should too.

VS Code with a Markdown extension is what most developers default to, and honestly it is not bad. But opening VS Code to view an AI-generated implementation plan or a Claude Code session output feels like pulling out a full toolbox to tighten one screw. The Markdown preview in VS Code is a secondary feature bolted onto a code editor. It gets the job done but it is not designed around the Markdown reading and writing experience. When your AI workflow is generating .md files constantly, you want something faster to reach for.

Obsidian and Notion are powerful but they are knowledge management systems. They have their own file formats, sync systems, and opinions about how your notes should be organized. I did not want a system. I wanted an editor.

Typora comes closest to what I wanted. But it is paid, and more importantly it is not built around the split-preview workflow I prefer when writing documentation.

None of these were what I wanted. So I started building.


What MarkUp Is (and What It Is Not)

MarkUp is a free desktop Markdown editor available for Windows, macOS, and Linux. It is currently in Beta (v0.6.1) so there will be rough edges and I am actively working on improvements, but the core experience is solid enough to use daily.

It is not a note-taking app. It is not a knowledge base. It is not trying to organize your life or sync to the cloud. It opens .md files. It shows you a live preview while editing. It exports to PDF or HTML. It does that really well and stays out of your way.

No account required. No internet required. No telemetry. Your files stay on your machine.

MarkUp application in Dark Mode


The Features (A Developer's Walkthrough)

Real-Time Split Preview

The centerpiece of MarkUp is the split view. Write on the left, see the rendered output on the right, live as you type. No manual refresh, no toggle. The preview updates in real time.

You can also switch to editor-only or preview-only mode depending on what you are doing. Writing a long document? Editor-only keeps you focused. Reviewing someone else's Markdown? Preview-only reads like a proper document.

Dark Mode

Yes, obviously. Dark mode is not a feature, it is a requirement. MarkUp supports both light and dark themes and respects your system preference by default. The editor itself is comfortable for long writing sessions in both modes.

The Slash Command Palette

This is one of my favorite things in MarkUp and the feature I am most proud of.

Type / anywhere in the editor and a command palette opens with 20+ commands. Tables, code blocks, links, headings, emojis, task lists, dividers. You pick it from the menu and it inserts the correct Markdown syntax for you.

Slash commands in action

The reason I built this is that Markdown syntax, while simple, has just enough friction to break your writing flow. Having to remember the pipe syntax for a table is the kind of thing that makes people give up on Markdown and go back to Google Docs. Slash commands eliminate that friction entirely.

This feature is also why I think MarkUp is useful beyond the traditional developer audience. No-code developers, vibe coders, writers who have heard about Markdown but find the raw syntax intimidating: the slash command palette means you never have to memorize a single piece of syntax. You just type / and pick what you want.

Multi-Tab Support With Session Persistence

You can have multiple documents open simultaneously, each in its own tab. More importantly, when you close MarkUp and reopen it, all your tabs are exactly where you left them. Content, scroll position, everything.

This seems like a small thing but it is one of those features that, once you have it, you never want to work without it. I often have a README, a changelog, and a documentation draft open at the same time. Session persistence means I never lose that context.

Zen Mode

Press Esc in any tab and you enter Zen Mode. The menu bar, tab bar, and status bar all disappear. Only the text is visible. It is the kind of focused writing mode that iA Writer charges for.

Zen Mode

Export to PDF and HTML

When your document is ready, you can export it as a PDF via the system print dialog (clean, properly formatted, syntax highlighting preserved) or as a self-contained HTML file with embedded styles. The HTML export is particularly useful for documentation you want to share with someone who does not use Markdown.

External File Modification Detection

If another app modifies a file you have open in MarkUp (a Git pull, a sync tool, a code editor auto-save), MarkUp detects it and prompts you to reload. Small feature, prevents real headaches.

GitHub Flavored Markdown

Full GFM support: tables, task lists, strikethrough, fenced code blocks with syntax highlighting. If it renders correctly on GitHub, it renders correctly in MarkUp.


The Technical Architecture

I want to spend a bit of time here because the technology choices were deliberate and I think they are interesting.

Why Tauri 2.0 and Not Electron

The honest answer is that Electron felt like too much.

Electron bundles a full Chromium browser and a Node.js runtime with every app. That is why a lot of Electron apps are 150MB+ and take several seconds to launch. For a Markdown editor, that overhead seemed absurd.

Tauri takes a different approach. Instead of bundling a browser, it uses the operating system's native WebView (WebView2 on Windows, WKWebView on macOS, WebKitGTK on Linux). The app logic is handled by a Rust binary on the backend. The result is dramatically smaller binaries and significantly faster startup times.

The Windows installer for MarkUp is 2.74MB. The macOS DMG is 3.90MB. For context, Slack's installer is around 90MB.

Tauri 2.0 specifically introduced better plugin architecture, improved mobile support (which I am looking at for future versions), and a cleaner IPC model between the frontend and the Rust backend. It was the right call.

Why CodeMirror 6

The editor itself is built on CodeMirror 6, which is a professional-grade code editor library used by platforms like CodeSandbox, Replit, and Jupyter.

I did not want to write a text editor from scratch. CodeMirror 6 gave me syntax highlighting, undo/redo history, search, key bindings, and extensibility out of the box. It is the kind of library that is easy to start with and does not fight you when you need to customize it.

The React 18 frontend sits on top of CodeMirror 6 and handles the split-preview layout, tab management, and all the UI state. TypeScript throughout, which made the codebase much easier to reason about as features grew.

Offline-First Architecture

There is no server. There is no API. There is no authentication. The app reads and writes files directly on your file system via Tauri's file system APIs. Markdown rendering happens locally using a renderer running in the frontend. Export happens via the native print dialog or a local file write.

This was a deliberate choice. I wanted MarkUp to work on a plane, in a basement with no WiFi, in any situation where internet is not available. It is also why there is zero data collection. There is no server to send data to.

The repository is private for now, but open-sourcing it is on the roadmap once the codebase is in a state I am happy to share publicly.


Who Is MarkUp Really For

When I built MarkUp I was thinking primarily about developers. People editing READMEs, writing technical documentation, reviewing changelogs. That is still the core audience and if you fall into that category, I think you will find it genuinely useful.

But the more people I have shown it to, the more I realize the slash command palette changes the audience significantly. Non-developers who write documentation for tools, product managers drafting specs, content writers working with headings and tables: the friction of learning Markdown syntax has always kept these people away. When you can type /table and get a formatted table without knowing the pipe syntax, that barrier disappears.

No-code developers and vibe coders especially. These are people who rely heavily on AI tools to build products, and that means they are swimming in Markdown constantly whether they realize it or not. Every Claude response, every Cursor suggestion, every ChatGPT output is Markdown. They are reading AI-generated specs, prompts, and plans all day long. They just have no dedicated place to open and read those files comfortably. MarkUp is actually a better fit for this audience than for traditional developers in some ways: the slash commands mean they never need to learn syntax, and the clean split view means they can finally read their AI outputs as formatted documents rather than raw text full of asterisks and hash symbols.

So while the technical architecture section above is aimed squarely at developers, the app itself is designed to be comfortable for anyone who works with text and structure.


Try It

MarkUp is free, works on Windows, macOS, and Linux, and you can download it at acetoolz.com/markup. No account, no install wizard to fight with, just download and open.

It is in Beta right now (v0.6.1), so I would genuinely appreciate feedback. If something does not work as expected or you want a feature that is missing, let me know in the comments here or reach out directly.

And if you find MarkUp useful, take a look at AceToolz as well. We have built 25+ online tools for everyday developer and productivity tasks: PDF tools, image tools, text utilities, AI writing tools, and more. The whole platform is built around the same philosophy as MarkUp: practical tools that work without unnecessary friction.


Final Thought

The best tools I use are the ones I barely notice. They just do what I need and get out of the way. That is what I was going for with MarkUp.

If you are a developer who deals with Markdown regularly and you have felt the same friction I felt, I hope this makes your day a little bit smoother.


Pranshu Agarwal is the founder of AceToolz, a platform of 25+ online productivity and developer tools. Follow AceToolz on Dev.to for more.

Top comments (0)