malte

Vite plugin · two-way Markdown ⇄ Svelte

Markdown ⇄ Svelte

Keep your copy in Markdown and your design in Svelte.

View on GitHub pnpm add -D @oselvar/malte

Why teams reach for malte

No selectors or ids — mark an element and you're done.

Components, not just elements — a comment marks them, no prop types to touch.

Your design stays untouched — edit the prose, never the markup.

Scoped CSS just works — content is baked in, not injected.

LLM-friendly copy — the whole page reads top-to-bottom in one file.

Fails loud — a mismatch breaks the build instead of shipping silently.

Build-time, zero runtime — no malte code ships to the browser.

Repeat with one template — this grid is a single component, fed eight blocks.

Every word on this page comes from src/routes/+page.en.md. The .svelte layout never changes.