pharaonic/laravel-readable
Laravel Readable adds human-friendly formatting helpers to your Laravel app—turn numbers into 1.2K, dates into "3 days ago", bytes into file sizes, and more, with simple Blade-ready functions.
readable_*() helpers, and Blade directives. That is typically 150–400 lines of glue code a team would otherwise write, test, and maintain — so it informs the "adopt, wrap, or build" call for any Laravel app with data-dense UI.number_format() and Carbon::diffForHumans() calls, which supports a decision to fund a small formatting-consistency initiative instead of scattered refactors.Number::fileSize(), Number::format(), Number::abbreviate(), Number::ordinal(), Number::percentage(), and Number::spell(). For teams on current Laravel, much of this package's surface is already first-party — which turns the decision from "adopt a dependency" into "do we need the Blade-directive ergonomics and duration/date helpers at all?"Adopt (or trial) when:
Number helpers and Carbon's defaults.Formatter/Humanize service that delegates to this package, so swapping it out is a one-file change.Look elsewhere (or skip) when:
intl / NumberFormatter / IntlDateFormatter, or a translation-backed layer (Carbon's diffForHumans with locale, nesbot/carbon + symfony/translation). A package like this rarely matches ICU behavior.Number helpers and skip the dependency entirely.<time datetime> semantics) — expect to build that yourself.For executives: This is a small, MIT-licensed presentation utility that turns raw numbers, timestamps, and byte counts into human-readable copy. It is not infrastructure. The value is engineering time saved on cosmetic formatting across dashboards and notifications; the cost is one more dependency to track. Recommendation: trial, not commit — wrap it behind an internal interface, pin the version, and revisit once we confirm whether Laravel's built-in Number helpers plus a handful of Blade components cover 80% of the need.
For engineering: Treat it as a leaf dependency behind a single Humanizer/Formatter abstraction. Do not call package statics from domain or service code. Audit the source (it is small) before merge, confirm the release/tag history on Packagist, and confirm locale behavior against intl for any user-facing copy in non-English markets. Budget roughly half a day for the wrapper, tests, and a swap-out path; if the audit uncovers thin test coverage or hardcoded English strings, fall back to Number::*, Carbon::diffForHumans(), and a local Blade component — the delta is small.
Bottom line: low-risk to try, low-cost to replace, and only clearly worth adopting if Blade directives and duration formatting are a recurring need. The 23-star signal means we adopt it on our terms, not as a platform bet.
How can I help you explore Laravel packages today?