neuralglitch/font-manager
Font Manager for Laravel simplifies self-hosting typography: browse and install Google Fonts, register local font families, generate CSS and @font-face rules, and serve optimized font assets without external requests.
Architecture fit: The package now positions itself as a font asset pipeline for Laravel applications rather than a simple font loader. The 0.2.0 export system decouples font management from presentation by generating CSS variables, SCSS, Tailwind config, TypeScript definitions, and design-token artifacts. This fits Laravel projects that use Vite (the default), Webpack, or AssetMapper, and it is especially relevant for teams maintaining a design system or multi-brand frontend. The configuration surface is growing (build, export) but remains optional and additive.
Integration feasibility: Integration is feasible for a standard Laravel codebase. The new console commands (fonts:export, fonts:formats, fonts:format:info) provide discoverability, and the enhanced fonts:lock command can auto-export configured formats. Build-tool auto-detection reduces setup friction, while explicit build.tool configuration provides an escape hatch. The main integration work is validating that generated artifacts match the project’s existing conventions and are placed in the correct output paths.
Technical risk: The package is still pre-1.0, so API and configuration stability are not guaranteed. The behavioral change in fonts:lock—auto-exporting after locking—can surprise existing CI pipelines; the --no-export flag mitigates this but must be adopted deliberately. Export correctness is the largest technical risk: Tailwind config modules, TypeScript definitions, and design-token formats must be deterministic and valid for downstream tools. Auto-detection may misidentify build tools in mixed or non-standard setups. Generated files can also create noisy diffs if formatting is unstable.
Key questions:
fonts:lock fail atomically, or can partial exports be written?Stack fit: Strong fit for Laravel applications using Vite, Tailwind, Bootstrap SCSS, or TypeScript. The new export formats cover common frontend consumption patterns: CSS custom properties, SCSS variables/mixins, ESM JavaScript, Tailwind config, TypeScript definitions, and design-token formats (W3C, Figma Tokens Studio, Style Dictionary). This makes the package viable for teams that need a single font source of truth across multiple build targets.
Migration path: Adopt incrementally. Install the package, configure font sources, and run fonts:lock --no-export first to preserve prior behavior. Then enable one export format (for example, css_variables) and validate the generated output in the build. After that, add framework-specific formats (Tailwind config or Bootstrap SCSS) and design-token exports as needed. Existing projects should review the new build and export config sections and pin build.tool explicitly if auto-detection is uncertain.
Compatibility: Configuration changes are additive, but the fonts:lock auto-export behavior is a behavioral change that can affect CI and local workflows. Export formats target specific tool ecosystems, so compatibility depends on the consuming tool versions. The package should be treated as pre-1.0: pin the version and review release notes before upgrading. Build-tool auto-detection is a convenience, not a guarantee; explicit configuration is safer for production pipelines.
Sequencing:
build.tool explicitly if the project uses a non-standard setup.fonts:lock --no-export to establish a baseline.fonts:export --dry-run or equivalent checks into CI to detect drift.Maintenance: The package now generates more artifacts, so maintenance shifts from font loading to managing generated files and configuration. Teams must decide whether exports are committed or generated during builds. Committed exports require a regeneration step when fonts change; build-time exports require the package to run in CI. The 0.x version status means configuration and command behavior may change between minor releases, so version pinning and upgrade testing are necessary.
Support: The new fonts:formats and fonts:format:info commands improve self-service support, and the expanded documentation lowers the ramp-up cost. However, supporting Tailwind config generation, TypeScript definitions, and design-token formats requires some frontend tooling knowledge. The team should identify an owner for font pipeline configuration and generated artifacts.
Scaling: The export system scales horizontally across formats and projects, but generation cost grows with the number of fonts and configured formats. Large font families or many export targets may noticeably increase fonts:lock and CI times. Auto-export on lock can amplify this if run frequently. Output path customization helps separate artifacts per environment or brand, but multi-brand setups will need clear configuration conventions.
Failure modes:
fonts:lock auto-export fails or writes partial output, leaving the repository in an inconsistent state.Ramp-up: Low for basic CSS variable or SCSS variable export; moderate for Tailwind, TypeScript, and design-token integrations. Teams should budget time to read docs/exports.md, validate each format against the target toolchain, and establish a CI check for export drift. A pilot on one application before rolling out to multiple projects is advisable.
How can I help you explore Laravel packages today?