# mdsvex left unified

> For agents: start with the [agent guide](https://ratstack.sh/llms.txt). Every page is Markdown by default; add `Accept: text/html` for HTML.

Free workshop: [how to burn a trillion tokens and get good results](/tokenmaxx#interested).

In [Discussion #259](https://github.com/pngwn/MDsveX/discussions/259), pngwn gives four reasons to leave unified:

- Performance.
- API instability.
- Poor documentation.
- Possible changes to allowed syntax extensions.

The new parser uses its own plugin system instead of remark and rehype plugins.

[Penguin-flavoured markdown](https://github.com/pngwn/MDsveX/discussions/293), or PFM, also changes syntax. On [Reddit, as evilpingwin](https://www.reddit.com/r/sveltejs/comments/15rz6al/thoughts_on_mdsvex_moving_away_from_unified/), pngwn says GFM's features remain supported. The syntax is not always identical. He promises an automated migration path.

## Where we stopped

Our local check of published `mdsvex@1.0.0-next.0` stops on this minimal CommonMark input:

```markdown
- **`x`** x
- y
```

The published migrator converts it to PFM:

```text
- *`x`* x
- y
```

**What to notice:** PFM uses one asterisk for strong text, not CommonMark's two.

The next.0 check gives these results:

- The compiler prints `Infinite loop detected`.
- The second list item disappears.
- The parser reports zero errors.
- A supplied rehype plugin is never called.

These observations apply to that published prerelease, not every later commit. We keep 0.12.8. [The fence](/lore/the-fence) does not permit rewriting valid prose around a parser defect.

## The migrator still uses remark

The [published migrator](https://registry.npmjs.org/@mdsvex/migrate/0.2.0-next.0) depends on `unified`, `remark-parse`, and `remark-gfm`. The new renderer leaves that ecosystem. The migration into it still reads CommonMark with remark.

## Sources

1. [v1 early feedback](https://github.com/pngwn/MDsveX/discussions/259)
   GitHub. v1 early feedback Accessed 2026-10-02.

2. [evilpingwin on syntax and migration](https://www.reddit.com/r/sveltejs/comments/15rz6al/thoughts_on_mdsvex_moving_away_from_unified/)
   Primary source. evilpingwin on syntax and migration Accessed 2026-10-02.

3. [Penguin-flavoured markdown](https://github.com/pngwn/MDsveX/discussions/293)
   GitHub. Penguin-flavoured markdown Accessed 2026-10-02.

4. [Published compiler used in the local reproduction](https://registry.npmjs.org/mdsvex/1.0.0-next.0)
   npm. Published compiler used in the local reproduction Accessed 2026-10-02.

5. [Published migrator dependencies](https://registry.npmjs.org/@mdsvex/migrate/0.2.0-next.0)
   npm. Published migrator dependencies Accessed 2026-10-02.

## Linked from

- Agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](https://ratstack.sh/llms.txt)

- Change log → What changed in the files served here, newest first. → [Read page](https://ratstack.sh/log)

- debt.md → A source-linked count of repo-owned lint and type escapes. → [Read page](https://ratstack.sh/debt.md)

- Full agent guide → An Effect stack so pure (aspirational) Kit Langton will blush. → [Read page](https://ratstack.sh/llms-full.txt)

- log.md → The generated change log as Markdown. → [Read page](https://ratstack.sh/log.md)

- Rat Stack lore | rat-stack → Short, source-grounded notes on the ideas and decisions behind rat-stack. → [Read page](https://ratstack.sh/lore)
