finds.dev← search

// the find

mikepenz/multiplatform-markdown-renderer

★ 1,021 · Kotlin · Apache-2.0 · updated Jul 2026

Markdown renderer for Kotlin Multiplatform Projects (Android, iOS, Desktop), using Compose.

A Compose Multiplatform library for rendering Markdown on Android, iOS, desktop, and web. It covers the full standard Markdown spec plus GFM tables, task lists, and code syntax highlighting via a plugin model. The target audience is Kotlin Multiplatform teams who need consistent Markdown display across platforms without dropping into WebView.

The component model is well thought out — you can swap individual renderers (paragraph, code block, list item) without reimplementing the whole thing, which is rare in Markdown libraries. Async parsing with `rememberMarkdownState` is the right default and the `retainState` option for flickerless updates shows real attention to UX. The Material 2/3 split into separate modules rather than a runtime flag is a clean call that avoids dependency bloat. Binary API compatibility files in each submodule mean you get a clear signal when you break public API.

Table support only landed in 0.30.0 and is described with no caveats, but GFM table alignment and colspan/rowspan are historically fragile in Compose text layouts — this is likely a rough edge you won't discover until production. The syntax highlighting integration delegates to the Highlights library, which adds another dependency you don't control and whose theme system is entirely separate from Material tokens, so dark-mode theming requires manual wiring. Streaming markdown (`StreamingMarkdownState`) exists but the docs are thin — you get a class name in the file tree and one test file, no examples of actual usage with streaming LLM output where you'd most want this. No accessibility documentation beyond one test file in the m3 module; screen reader behavior across iOS and desktop is unclear.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →