Product Decisions This Supports
- Editorial quality as a feature, not a chore. Typographic polishing—curly quotes, em/en dashes, non-breaking spaces, no orphaned prepositions—measurably raises perceived product quality in CMS content, marketing pages, email, and PDF exports without asking authors to change behavior.
- Localization roadmap for Cyrillic markets. Muravjev's Typograph is built around Russian typographic rules; if RU/UK/BE is on the roadmap, this is domain logic we would otherwise have to hand-roll and maintain as regex tables.
- Build vs. buy for text normalization. The reusable asset is the rules engine, not the framework wrapper. This package bundles the engine for Symfony; the underlying library is what we'd actually depend on.
- Where to apply it (surface-level decision). Best candidates: article bodies at render time, transactional email templates, PDF/invoice exports, product descriptions from supplier imports, SEO/OG descriptions. Worst candidate: anywhere text is contractually verbatim.
- Raw vs. polished storage. A decision worth making explicitly: store raw text, transform on display. This makes the feature reversible and A/B-testable.
When to Consider This Package
Adopt (or rather, mine it) when:
- You are genuinely on Symfony, where the bundle's DI wiring and config give real value out of the box.
- You need Russian-language typography rules and want to avoid writing and maintaining that ruleset.
- The blast radius is small and reversible—display-time text transformation that can be disabled per surface.
- You are willing to vendor or fork it.
Look elsewhere when:
- You are on Laravel. This is a Symfony Bundle—it will not install or boot in Laravel. Use the underlying typographer behind a Laravel service provider, a Blade directive, or response middleware. That's roughly 50 lines of glue.
- Maintenance matters. Last release 2015-08-25, 1 star, 0 dependents, effectively single-maintainer and abandoned. There is no assurance of PHP 8.x or modern Symfony compatibility, and no security/support posture. Do not take this as a live runtime dependency un-vetted.
- A maintained alternative exists for your case: client-side typography in the editor (Tiptap/TinyMCE plugins), a hosted Typograf service, or a maintained community fork of the Muravjev engine.
- The content is legally or financially significant and must remain byte-for-byte verbatim.
How to Pitch It (Stakeholders)
Executive summary. This is a small, MIT-licensed typography rules engine (E. Muravjev's Typograph) packaged as a Symfony bundle. It upgrades existing text to typeset quality—correct quotes, dashes, spacing, and Russian-language rules—at essentially zero authoring cost. The catch is packaging, not concept: the wrapper is Symfony-only, has seen no release since 2015, and has no ecosystem (1 star, 0 dependents). Recommendation: do not adopt the package; adopt the capability. Implement the underlying typographer as a thin Laravel service plus a Blade directive and optional response middleware, pinned and vendored. Effort is days, not weeks; risk is contained because the transformation is display-time, toggleable, and never mutates stored content. The upside is a visible editorial-quality lift, and a real differentiator if we localize to Russian.
Engineering note. Treat it as a presentation-layer transform with a feature flag per surface. Pin the dependency, vendor the rules, and keep the integration boundary small enough that swapping engines later is a one-file change.