M4RKYU.SYSEdition 2027
Skip to content
LOCEN/Ontario · CA/▸work · m4rkdownStandbyOK/--:--:--EST
M4M4RK_YUportfolio
  • BuildBuild
    BuildOverview
    • WorkSelected case studies and write-ups
    • GamesPlayable prototypes and game-dev logs
  • GalleryGallery
    GalleryOverview
    • PhotosPhoto collections and visual experiments
    • ShopPrints, posters, and one-off objects
  • WritingWriting
    WritingOverview
    • BlogLong-form devlogs and field notes
    • NotesShort observations, links, snippets
  • ResourcesResources
    ResourcesOverview
    • Tools38 in-browser developer utilities
    • LinksDaily-use dev and design bookmarks
  • AboutAbout
  • ContactContact
中文
← projects
Web app · 2024Ready

M4rkdown

A v3.1 offline-first Markdown workspace with advanced preview, local documents, collaboration, and an eight-player typing arena.

Quick facts

Role
Solo developer: editor UX, offline/PWA layer, realtime sync, and deployment.
Timeline
2024-2026 · v3.1.0
Platforms
Responsive web · Installable PWA
LiveSource

On this page

  • >What it is
  • >What it looks like
  • >Built with
  • >Highlights
  • >Engineering
  • >Under the hood
  • >Outcome
  • >Roadmap & lessons
M4rkdown split editor showing Markdown source and rendered preview
Fig. 01 — M4rkdown

Why I made this

I write in markdown constantly and resent every editor that gives up the moment the wifi does. The multiplayer typing game was just me refusing to stop once it worked offline.

01

What it is

#

Problem

Most markdown editors assume a connection and a single writer. M4rkdown asks what an editor feels like when it works offline first and invites other people in.

Solution

M4rkdown combines CodeMirror 6, local document tabs, rich Markdown preview, templates, export, and PWA caching in a Preact app. PartyKit adds collaborative writing and a separate typing battle with solo challenges, multiplayer rooms, XP, and reconnect recovery.

02

What it looks like

#
  • Two modesThe entry screen makes the project's unusual scope explicit: a serious offline writer and a live typing game share one product.
03

Built with

#

Frontend

  • Preact 10
  • Signals
  • TypeScript
  • Vite

Editor

  • CodeMirror 6
  • Vim mode
  • KaTeX
  • Mermaid

Realtime

  • PartyKit

Platform

  • Workbox
  • PWA
  • localStorage
04

Highlights

#
  • Editor, split, preview, focus, and typewriter modes
  • Vim bindings, formatting toolbar, linting, outline, templates, and image paste
  • KaTeX math, Mermaid diagrams, syntax themes, and multiple export formats
  • Tabbed local documents with word goals and offline PWA support
  • Realtime collaborative writing with reconnect recovery
  • Solo daily challenges and multiplayer typing rooms for up to eight players
05

Engineering

#
  1. Process 01

    Separate local documents from realtime rooms

    Context
    Offline writing and multiplayer sessions have different ownership, persistence, and recovery semantics.
    Approach
    Keep tabbed documents in local storage and use PartyKit only for room-based collaboration and battles.
    Outcome
    Offline writing stays dependable, while moving content between local and shared contexts remains an explicit action.
  2. Process 02

    Use one product shell for work and play

    Context
    A typing arena could have become a disconnected side project with separate navigation and state.
    Approach
    Present Writer and Battle as first-class modes inside the same Preact application.
    Outcome
    The utility becomes memorable and reuses realtime infrastructure, but the product must maintain two very different interaction densities.
06

Under the hood

#

Architecture notes

  • CodeMirror 6 owns editing extensions while Preact Signals keep document, preference, and mode state lightweight.
  • Workbox caches the application shell so core writing remains available offline.
  • PartyKit separates room-based collaboration and typing-arena state from local document persistence.
  • Markdown extensions for math, diagrams, callouts, footnotes, and syntax rendering are composed into the preview pipeline.

Challenges

  • Offline local documents and realtime rooms have different ownership and recovery rules.
  • A feature-rich editor must keep keyboard commands discoverable without letting toolbars dominate the writing surface.
  • The former m4rkdown.is-a.dev address no longer resolves to the app; the case study now links to the working Vercel deployment.
07

Outcome

#
“
A deployed v3.1.0 PWA with a genuinely broad editor surface and a memorable second mode: collaborative and competitive realtime typing built on the same application foundation.
08

Roadmap & lessons

#

Lessons learned

  1. 01Offline-first changes every assumption about state and conflict resolution.
  2. 02A small playful mode makes a utility memorable.

Next steps

  1. 01Add durable document version history
  2. 02Test collaboration recovery under network churn
  3. 03Retire stale domain references across the repository

Related work

Web app

Nimbus

A passwordless cloud workspace for organizing, sharing, beaming, and asking questions about your files.

Web app

M4rketView

A free, no-key crypto dashboard with live prices, resilient public-data fallbacks, local portfolios, alerts, and comparison tools.

PreviousAI Agent ToolkitA personal Windows-first toolkit for local AI coding: PowerShell automation, Ollama, a Streamlit control center, and conservative repo workers.
Back to all work
Back to archive
M4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYUM4RKYU
Crafted since 2024
ZhenXiao Mark YuZhenXiao Mark Yu
get in touch

Saw something here?Tell me about it.

It's a portfolio, not a service · but I read every note — drop a line if anything here resonated, or just to say hi.

Start a conversation
open channel

say hi anytime · 2026

--:--:--ESTOntario, Canada
  • Email
  • GitHub
  • dev.to
  • LinkedIn
  • Twitter / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat

Newsletter

Get the occasional dispatch

Notes and logs from m4rkyu.com — short, dated, no noise. Unsubscribe anytime.

Work

Production builds, games, and visual archives.

  • Projects
  • Games
  • Archive
  • Logs

Resources

Daily-use tools and a personal link library.

  • Search
  • Latest
  • Tools
  • Links
  • Notes
  • Topics
  • Shop
RSSJSON feed

Studio

Background, contact, and channels for collaboration.

  • About
  • Contact
  • Changelog
  • Colophon
  • Resumepending

Socials

Find me on the usual feeds.

  • GitHub
  • dev.to
  • LinkedIn
  • Twitter / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
  • Email
© 2026 ZhenXiao Mark Yumarkyu0615@gmail.com
  • Email
  • GitHub
  • dev.to
  • LinkedIn
  • Twitter / X
  • Instagram
  • Facebook
  • YouTube
  • CodePen
  • Spotify
  • Snapchat
PrivacyTermsBuilt with Next.js 16 · React 19 · Tailwind 4