Meet Blaze: Your Blade Components Just Got Seriously Fast
WirementPro
Meet Blaze: Your Blade Components Just Got Seriously Fast

We love chasing performance wins. Not the kind that require you to rewrite everything from scratch or abandon the tools you already know — but the kind where you drop in a package, run a command, and suddenly your pages feel noticeably snappier. Today, we're excited to share one of those wins.

We've updated WireframePro with support for Livewire Blaze, an experimental-but-impressive package from the Livewire team that pre-compiles Blade components for blazing fast rendering performance. And yes, the name is completely on the nose.

So, What Is Blaze?

At its core, Blaze is a Laravel package that tackles a sneaky performance bottleneck that most of us don't think much about: Blade component rendering overhead.

Every time Laravel renders a Blade component — a button, a card, a badge — it goes through a full runtime evaluation cycle. That's fine for one or two components. But what about a dashboard with a data table, a sidebar, a navigation bar, dozens of status badges, and a handful of action buttons? All those small components add up. Fast.

Blaze solves this with a two-tier approach:

1. Compile-time folding — For components that always produce the same output for the same input (think: buttons, cards, badges), Blaze pre-renders the static parts at compile time. By the time a user request comes in, that work is already done.

2. Runtime memoization — For components that are mostly static but use some dynamic data, Blaze caches the rendered output and avoids re-rendering identical components multiple times on the same page.

The benchmark from the Blaze team says it all:

Rendering 25,000 foldable button components:

Without Blaze  ████████████████████████████████████████  750ms
With Blaze     ██                                         45ms

                                                          ~17x faster

Now, you're probably not rendering 25,000 buttons on a single page (hopefully). But even on typical real-world pages, Blaze can shave 10–100ms off your rendering time — and those milliseconds matter for the user experience.

How It Works in Practice

The API is wonderfully simple. You add a single directive to the top of any eligible Blade component:

{{-- resources/views/components/button.blade.php --}}

@blaze

@props(['variant' => 'primary', 'size' => 'md'])

<button type="button" class="btn btn-{{ $variant }} btn-{{ $size }}">
    {{ $slot }}
</button>

That's it. The @blaze directive tells Blaze that this component is "pure" — it has no side effects, doesn't reach into auth state or the database, and always renders the same output for the same props. Blaze takes it from there.

The mental model is clean: think of @blaze components as your design system building blocks. Buttons. Cards. Badges. Typography. Layout wrappers. The things that live in a component library and look identical regardless of who's looking at them or when.


What About Components That Aren't Fully Static?

This is where Blaze gets really clever. Sometimes a component is mostly static, but has a small dynamic section — like a form input that needs to show validation errors. Normally, that tiny $errors check would prevent you from using @blaze at all.

Enter @unblaze. It lets you punch a hole in an otherwise static component, keeping everything else optimized:

@blaze

@props(['name', 'label'])

<div class="form-field">
    <label>{{ $label }}</label>
    <input type="text" name="{{ $name }}" class="input">

    @unblaze
        @if($errors->has($name))
            <p class="text-red-500 text-sm mt-1">{{ $errors->first($name) }}</p>
        @endif
    @endunblaze
</div>

The <div>, <label>, and <input> get pre-rendered at compile time. Only the error message block runs at runtime. You get the best of both worlds: optimization and full functionality.

Great News If You're Using Flux UI

If WireframePro is your starting point and you're building on Flux UI v2, you're in for a treat: all eligible Flux components are already marked with @blaze. You don't have to touch a thing. Just install Blaze and every Flux button, badge, card, and icon automatically benefits from the optimization.

composer require livewire/blaze:^1.0@beta

That single command is genuinely all you need to start seeing improvements. The performance gains kick in automatically the next time your views are compiled.

What We Updated in WireframePro

With this release, WireframePro's component library has been audited and annotated with @blaze directives across all eligible UI components. Here's what that means for you:

  • All pure UI components (buttons, badges, alerts, stat cards, avatar placeholders, icon wrappers) are now @blaze-eligible and will be pre-rendered at compile time.

  • Form field components use @unblaze to keep dynamic error states running while the surrounding markup is folded.

  • Navigation and auth-aware components are intentionally not marked with @blaze, because they depend on request state and user context — exactly as they should be.

The result is a starter kit that feels noticeably faster right out of the box, especially on pages with repeated UI patterns like tables, grids, and lists.

A Word of Caution

Blaze is still early-stage and experimental — the Livewire team is upfront about this. APIs may change, and edge cases are still being worked out. We've tested it thoroughly in WireframePro's component set, but if you start annotating your own custom components with @blaze, be sure to test carefully. The good news: Blaze fails gracefully. If something can't be optimized, it quietly falls back to normal Blade rendering. Your app won't break — it just won't be faster in that specific case.

If you want to debug why a component isn't being folded, you can enable debug mode in a service provider:

app('blaze')->debug();

This surfaces the actual exception instead of swallowing it silently — super handy during development.

Should You Use It Today?

If you're on WireframePro — yes, you're already benefiting from it once you run composer require livewire/blaze:^1.0@beta. The work is done for you.

If you're considering adding @blaze to your own component library, the checklist is simple:

  • Does it work the same for all users?

  • Does it work the same on every request?

  • Does it only depend on the props you pass in?

  • Are all its child components also foldable?

If yes to all four — add @blaze and enjoy the speedup.

Performance improvements that don't require you to change how you build things are rare. Blaze is one of them. And we think it's going to become a standard part of every serious Laravel project once it hits stable.

WirementPro
Privacy Policy

Information about how Wirement Pro processes your personal data

Last updated

March 23, 2026

Introduction

This privacy policy is intended to provide information about how and why Wirement Pro collects and processes personal data.

Personal data is information or assessment that can be directly or indirectly linked to an individual. This may include name, address, phone number, email address, date of birth, IP address.

Wirement Pro is the data controller for information collected and processed.

For questions about our processing of your personal data, please contact us at: support@wirementpro.com

Data Collection and Use

We collect and use your personal data depending on how we interact with you. We do not sell your personal data to third parties, nor do we exchange or forward your information to third parties.

Purpose of Data Processing

Registration

Via our registration form

Project Data

Access and management

Login

Secure access to the service

Personal Data We Collect
  • First and last name

  • Email address

  • Project information and subscription data

  • Usage statistics

Your Rights

You have the right to request access, correction, or deletion of the personal data we process about you. You can also withdraw your consent for processing of personal data with us.

Access

View what data we have about you

Correction

Correct incorrect information

Deletion

Have your data deleted

Changes

If we make changes to this privacy policy, we will post the updated policy on our website with an updated date.

Cookies

A cookie is a small text file stored on your computer that allows us to track your activity on our website. You can choose whether to accept the use of cookies in your browser settings.

Important: Wirement Pro uses cookies to remember your settings and improve user experience.

Data Processors

We do not share your personal data with third parties without your consent.

Terms of Service

Terms and conditions for use of Wirement Pro

Last updated

March 23, 2026

1. Acceptance of Terms

By registering for or using the Wirement Pro service ("Service"), you accept these terms of use ("Terms"). If you do not accept all the terms, you must not use the Service.

2. Description of Service

Wirement Pro is a SaaS starter kit platform that helps developers and businesses to:

  • Launch websites and applications quickly

  • Manage projects and track progress

  • Handle billing and subscriptions

  • Access pre-built components and templates

3. User Registration and Account
3.1 Registration
  • • You must provide accurate and complete information upon registration

  • • You are responsible for keeping your account information up to date

  • • You must be at least 18 years old to use the Service

3.2 Account Security
  • • You are responsible for protecting your username and password

  • • You must immediately notify us of any suspected unauthorized use of your account

  • • We are not responsible for losses resulting from unauthorized use of your account

4. Privacy and Data Protection
4.1 Data Collection

We collect and process personal data in accordance with our privacy policy, including:

  • • Account information and contact details

  • • Project information and subscription data

  • • Usage data and preferences

4.2 Data Protection
  • • We use industry standards to protect your data

  • • We do not share your personal information with third parties without your consent

  • • You have the right to access, correct, and delete your personal information

5. Usage Rights and Restrictions
5.1 Permitted Use
  • • Management of project data

  • • Lawful business purposes

5.2 Prohibited Use
  • • Use the Service for illegal activities

  • • Attempt to gain unauthorized access

  • • Distribute malicious software

  • • Infringe on others' intellectual property

6. Disclaimer
6.1 Service Availability
  • • We do not guarantee that the Service will always be available or error-free

  • • We may perform maintenance that temporarily affects availability

6.2 Limitation of Liability
  • • Our liability is limited to the maximum permitted under applicable law

  • • We are not liable for indirect losses or consequential damages

7. Changes to Terms

7.1 Right to Modify

We may change these terms at any time. Material changes will be notified with at least 30 days' notice.

7.2 Notification Method

Changes are notified via email, message in the Service, or update on our website.

8. Governing Law and Dispute Resolution

• These terms are governed by applicable law

• Disputes shall be attempted to be resolved amicably

• Legal disputes will be handled according to jurisdiction requirements

9. Contact Information

For questions about these terms, contact us at: support@wirementpro.com

By using Wirement Pro, you confirm that you have read, understood, and accepted these terms of use.