The Local-First Markdown Workspace

MdWrk is a local-first Markdown workspace for authors and developers who want Markdown writing, preview, organization, package documentation, themes, and extension contracts without making cloud storage the default workflow.

Designed for Privacy, Built for Reusable Surfaces

The workspace client is the product surface. The lander is a guided window into the client, the shared packages, and the extension platform.

Offline First

Built as a Progressive Web App. Install the MdWrk client once, keep working offline, and sync only when you choose to.

Split Packages

The editor and previewer are separate MdWrk packages, so the client, examples, and docs consume the same public surfaces.

Extension Ready

The client hosts bundled and external extensions through a governed runtime, manifest, settings, and trust policy stack.

Zero Knowledge

No hosted authoring backend owns your Markdown. Data stays local unless you connect your own Git provider.

Local Database

IndexedDB persistence keeps workspaces, sessions, themes, and extension state local to the device.

GitHub Sync

Optional Git provider integration keeps repository operations additive instead of mandatory.

Shared Themes

Renderer, editor, docs, blog, and client app all consume MdWrk theme contracts instead of forking per-surface styling.

Blazing Fast

No network round trip for typing or previewing. The editor and preview pipeline stay local and responsive.

One Editor Package. One Preview Package. Shared Everywhere.

The lander demo runs through the same public MdWrk editor and renderer package surfaces that the client ships.

demo_showcase.md

mdwrk client surface

The lander demonstrates the same shared packages that the mdwrk client uses.

Shared packages

SurfacePackageNotes
Editor@mdwrk/markdown-editor-reactLive
Preview@mdwrk/markdown-renderer-reactShared
Themes@mdwrk/theme-contractLight + dark
ExtensionsRuntime-backedGoverned

Workspace signals

  • Local-first persistence
  • Split editor and preview packages
  • Extension-ready client host
  • Shared theme rendering for docs and blog

Authoring workflow

  • Draft Markdown in the editor pane.
  • Preview headings, tables, lists, and code in the rendered pane.
  • Keep the source readable as plain text.
  • Use the same renderer behavior that powers MdWrk docs and blog pages.

Renderer workflow

  • Parse Markdown through the shared renderer contract.
  • Escape raw HTML by default for public content safety.
  • Apply the lander light and lander dark theme tokens.
  • Preserve semantic headings so crawlers and assistive technology can read the output.

Extension workflow

  • Keep extension boundaries visible.
  • Use package-level contracts instead of one-off demo code.
  • Verify theme behavior across both panes.
  • Treat the rendered preview as the product surface, not a screenshot.

Example

import { MarkdownSourceEditor } from "@mdwrk/markdown-editor-react";
import { MarkdownRenderer } from "@mdwrk/markdown-renderer-react";

const surface = {
  client: "@mdwrk/mdwrkspace",
  editor: "@mdwrk/markdown-editor-react",
  preview: "@mdwrk/markdown-renderer-react"
};
Render Engine: @mdwrk/markdown-renderer-core 192 words1604 chars

Your Data Stays on Your Device

MdWrk uses IndexedDB to store your workspaces directly in your browser. No AI servers scan your content, and no trackers follow your keys.

Privacy Standard: Verified Local