<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anthony Bär</title>
    <description>The latest articles on DEV Community by Anthony Bär (@abaer).</description>
    <link>https://dev.to/abaer</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4097826%2F3d5653a6-001a-4d59-a41a-6395e673d589.png</url>
      <title>DEV Community: Anthony Bär</title>
      <link>https://dev.to/abaer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/abaer"/>
    <language>en</language>
    <item>
      <title>LaraBeacon 3 picks up where Enlightn stopped—and adds a second pass for AI-written Laravel</title>
      <dc:creator>Anthony Bär</dc:creator>
      <pubDate>Thu, 27 Aug 2026 17:24:31 +0000</pubDate>
      <link>https://dev.to/abaer/larabeacon-3-picks-up-where-enlightn-stopped-and-adds-a-second-pass-for-ai-written-laravel-3h73</link>
      <guid>https://dev.to/abaer/larabeacon-3-picks-up-where-enlightn-stopped-and-adds-a-second-pass-for-ai-written-laravel-3h73</guid>
      <description>&lt;p&gt;Enlightn was one of those Laravel packages that earned a permanent place in many &lt;code&gt;require-dev&lt;/code&gt; sections. One Artisan command checked far more than code style: production configuration, security headers, queue settings, database usage, caching, and the small deployment details that tend to surface at the worst possible time.&lt;/p&gt;

&lt;p&gt;Its final release supports Laravel 9 through 11. Packagist now marks the package as abandoned. That leaves teams moving to Laravel 12 or 13 with an awkward choice: remove a useful release check, keep an old framework version around it, or maintain a private fork.&lt;/p&gt;

&lt;p&gt;We chose a fourth option and continued the public package as LaraBeacon.&lt;/p&gt;

&lt;p&gt;LaraBeacon 3 is a maintained LGPL-licensed fork of Enlightn's open-source core. The original Git history and attribution remain intact. The first release updates the package for Laravel 12 and 13, PHP 8.2 through 8.5, Larastan 3, and PHPStan 2, while keeping the useful idea intact: run a command and get practical findings about performance, security, and reliability.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer require &lt;span class="nt"&gt;--dev&lt;/span&gt; baer-software/larabeacon:^3.0
php artisan larabeacon
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;There are 67 checks in the public package. They run locally and can be used in CI without creating an account. &lt;code&gt;php artisan larabeacon --ci&lt;/code&gt; limits a pipeline run to checks that make sense in that environment; the remaining checks can run against a representative release candidate where services, headers, and production configuration are actually present.&lt;/p&gt;

&lt;h2&gt;
  
  
  A second pass for AI-written Laravel
&lt;/h2&gt;

&lt;p&gt;That second pass has become more useful as more Laravel code is written with AI assistance.&lt;/p&gt;

&lt;p&gt;AI can produce a convincing Laravel diff quickly. It cannot infer that a production app uses a different queue driver, that a header is missing at the edge, or that a local pass proves the deployed environment is ready.&lt;/p&gt;

&lt;p&gt;LaraBeacon does not try to decide whether generated code is “good.” It checks concrete Laravel conditions in the environment where it runs and makes the remaining release questions visible.&lt;/p&gt;

&lt;p&gt;The workflow is simple enough to hand back to the coding agent:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Run LaraBeacon with details.&lt;/li&gt;
&lt;li&gt;Investigate every failed check in the context of the application.&lt;/li&gt;
&lt;li&gt;Fix only confirmed problems.&lt;/li&gt;
&lt;li&gt;Rerun the application tests and LaraBeacon.&lt;/li&gt;
&lt;li&gt;Report anything that still needs human judgment.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Environment-dependent passes remain evidence for the scanned environment only. A local run is not proof of production configuration. LaraBeacon also does not prove that a feature matches the product intent, that every authorization rule is correct, or that the user experience makes sense.&lt;/p&gt;

&lt;p&gt;That is the point of the separation: the agent can write the diff, LaraBeacon can inspect framework-specific release risks, and a human can still decide whether the result should ship.&lt;/p&gt;

&lt;p&gt;The complete &lt;a href="https://larabeacon.com/ai-assisted-laravel" rel="noopener noreferrer"&gt;AI-assisted Laravel workflow&lt;/a&gt; includes a prompt that can be pasted into Codex, Claude Code, Cursor, or another coding agent.&lt;/p&gt;

&lt;h2&gt;
  
  
  Migration is small, but it deserves a review
&lt;/h2&gt;

&lt;p&gt;We did not try to disguise the fork as an unrelated new invention. Existing Enlightn users should recognise the workflow and much of the analyzer architecture.&lt;/p&gt;

&lt;p&gt;The package name, PHP namespace, configuration file, and Artisan commands have changed, so migration deserves a short review rather than a blind Composer substitution. The &lt;a href="https://larabeacon.com/docs/migration-from-enlightn" rel="noopener noreferrer"&gt;migration guide&lt;/a&gt; covers the concrete changes and recommends comparing the last Enlightn result with the first LaraBeacon run before creating a new baseline.&lt;/p&gt;

&lt;p&gt;The 3.0 work also removed assumptions that no longer hold in current Laravel applications. It supports the PHP-Parser 5 API used during baseline generation, PHPStan 2 extension APIs, Laravel 13 queue defaults, and current Vite output. Installation is tested as a real Composer dependency across the supported Laravel and PHP combinations, not only inside the package repository.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core remains useful on its own
&lt;/h2&gt;

&lt;p&gt;LaraBeacon Pro and LaraBeacon Cloud exist, but neither is required to use Core.&lt;/p&gt;

&lt;p&gt;Pro is a separate package with additional independently implemented checks. Core remains fully useful offline. Cloud reporting is optional and only happens when a run is started with &lt;code&gt;--report&lt;/code&gt;; source snippets and exception stack traces are excluded by default, and either requires a separate explicit opt-in.&lt;/p&gt;

&lt;p&gt;This release is the beginning of the maintenance line, not a claim that every old assumption has already been rediscovered. Real applications are where analyzers meet unusual deployment conventions, custom filesystem layouts, and the less photogenic corners of long-lived Laravel codebases.&lt;/p&gt;

&lt;p&gt;If LaraBeacon produces a questionable result, misses a modern pattern, or makes migration unnecessarily difficult, please open an issue with a reproducible example.&lt;/p&gt;

&lt;p&gt;The source is on &lt;a href="https://github.com/A-Baer/LaraBeacon" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, the package is available on &lt;a href="https://packagist.org/packages/baer-software/larabeacon" rel="noopener noreferrer"&gt;Packagist&lt;/a&gt;, and the complete check catalogue and documentation live at &lt;a href="https://larabeacon.com" rel="noopener noreferrer"&gt;larabeacon.com&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>opensource</category>
      <category>ai</category>
      <category>php</category>
    </item>
  </channel>
</rss>
