tempest/markdown
A fast, extensible server-side Markdown parser for PHP that uses a simple lexer instead of regex. Built-in support for code highlighting, tables, divs, responsive images, and frontmatter, with benchmarks well ahead of commonmark and Parsedown Extra.
league/commonmark (ecosystem default) or a hosted rendering service; this is the low-dependency, high-performance option.league/commonmark on a real docs corpus. That gap is the difference between "we must pre-render and cache everything" and "we can render per request," and between "this runs in a web worker" and "this runs in a memory-capped queue worker or serverless PHP runtime.".md file carries title, date, tags, draft and can drive routing, navigation, and SEO metadata without a database or separate YAML step. This directly enables "docs and blog as Git-tracked content, not CMS rows," which changes who owns publishing and how the content pipeline is built.Consider (pilot) when:
commonmark plus several extension packages plus a highlighter.maxNestingDepth exists, and the 1.2.1 release fixed XSS via HTML attributes and code blocks. Both signal security is being taken seriously, and both signal it's still being discovered.Look elsewhere when:
league/commonmark has years of production use, a broad extension ecosystem, and a long security history you can point a reviewer at.Adoption gate (recommended): a one-sprint spike — render your actual content corpus, diff output against the current renderer, run malicious-input tests, and measure latency and memory in your real runtime. Put the parser behind an internal interface so it stays swappable. Promote to production only if the diff is acceptable and single-maintainer risk is explicitly accepted.
For executives (30 seconds): Markdown is how our docs, blog, and user content becomes web pages. Today that's either slow, memory-hungry, or requires extra infrastructure. This is a small, MIT-licensed, pure-PHP component that renders the same content roughly 5x faster using a third of the memory of the most common alternative — on a real documentation set, 11ms instead of 57ms, 6.7MB instead of 21MB. It also replaces three or four dependencies with one by bundling frontmatter, code highlighting, and table/image support. There are no license fees, no new services, no new hosting, and it's trivial to remove. Recommendation: fund a one-sprint evaluation, not a commitment.
For engineering leads: composer require tempest/markdown, then parse() returns ->html and ->frontmatter. There's no regex engine — a lexer tokenizes the document, which is where the speed and memory gains come from. It ships frontmatter, code highlighting, tables, divs, responsive images, manual header IDs, and a configurable maxNestingDepth, and it's extensible via custom rules. Note it is framework-agnostic, not a Laravel package — no service provider, facade, config, or Blade directive. Budget ~30–50 lines of wrapper for singleton binding, a Blade directive, and config; treat that as a known cost, not a surprise. Recent releases fixed XSS in HTML attributes and code blocks, a parser cache leak, and several spec-edge cases: active maintenance, and a reminder that this is pre-stabilization software.
The honest caveat to say out loud: this is early-stage — 44 GitHub stars, no known dependents, an explicit "work in progress" notice, and a maintainer team still closing CommonMark compliance gaps. Frame it as a high-upside, low-switching-cost pilot, not a strategic platform bet. We contain the risk by pinning the version, keeping rendering behind an internal interface, owning an output-diff and XSS test suite, and committing to upstream the fixes we need. If the spike doesn't clear the bar we fall back to the incumbent having lost a week; if it does, we cut render cost and remove dependencies from the critical path.
How can I help you explore Laravel packages today?