Skip to content
Alsatian Docs: a design document in split view with a table and highlighted code.
All projects

Software and toolsIn development

Alsatian Docs

A local-first Markdown editor with version history on GitHub and real-time collaborative editing.

My role
Design and development
Status
In development
Technologies
  • TypeScript
  • React
  • Electron
  • CodeMirror 6
  • Yjs
  • Cloudflare Durable Objects
  • Capacitor
  • Tailwind CSS
  • Vitest
  • Playwright

Overview

Alsatian Docs is a Markdown document editor for desktop (Linux and Windows) and Android. Every document is a real .md file that any other program can edit: the app never locks content into its own format.

On top of that it adds what usually requires separate tools: Git version history explained in plain language, GitHub sync, and several people editing the same document at once.

It is being built in milestones. The project roadmap documents what is done, how it was verified and what still needs validation.

  • Synchronised editor and preview (sample data)
  • Git version control without jargon (sample data)

Key features

  1. 01

    Editor and preview

    CodeMirror 6 with Markdown/GFM, a safe preview with code highlighting, and a split view with two-way synchronised scrolling.

  2. 02

    Saving that never clobbers

    Atomic saving and autosave that never overwrite changes made outside the app without asking, preserving encoding and line endings byte for byte.

  3. 03

    Git without jargon

    “Save version”, “get changes” and “publish”: branches, diffs, per-document history and conflicts resolved inside the editor.

  4. 04

    Real-time collaboration

    Named cursors on Yjs and Cloudflare Durable Objects. You can keep writing offline and it syncs when you reconnect.

  5. 05

    GitHub without passwords

    Connection through a GitHub App using Device Flow, with no secrets in the app and tokens encrypted in the system keychain.

  6. 06

    Desktop and Android

    AppImage, .deb and Windows installers, plus an Android app built with Capacitor. Exports to PDF and Word.

Role and responsibilities

My role

Design and development

  • Monorepo architecture: desktop, mobile and collaboration server.
  • Git and GitHub integration, including conflict resolution.
  • Real-time collaboration and three-way merging on publish.
  • Unit, integration and E2E testing, and automated releases from CI.