What We Learned at LaraconEU 2025
Published on February 05, 2025
For the second year in a row, we traveled to Amsterdam to attend LaraconEU 2025, the largest European conference dedicated to Laravel and its ecosystem. More than 720 attendees gathered at the Muziekgebouw aan 't IJ, a bright concert hall overlooking the canals of the North Sea. Let’s take a look back at the talks from this event, where we participated as a Gold sponsor and also as a speaker. French version of this blog post is also online.
![Picture of the LaraconEU venue" class="wp-image-10765](/wp-content/uploads/2025/02/laraconEU2-3-1024x771.webp)
Welcome speech
Caneco reminded everyone that Laracon isn't limited to the Netherlands, with upcoming editions planned in countries such as India, Great Britain, Denmark, and the United States. He also emphasized the promise of the Laravel community at this event: no trash talk, encouraging interactions, taking plenty of selfies, and... no Vegemite on site (an inside joke within the community). A huge shout-out to him for making all attendees and speakers feel at ease, for his excellent work as a host, and for attempting to pronounce our company name correctly!
Pipeline Power-Up: Turning Complex Logic into Simple Steps
Bobby Bouwmann explained how to manage the complex logic of a project by creating pipelines. These allow each step to be isolated in a dedicated class with a simple and single responsibility. This approach makes it easier to control, evolve, and test the code. A Pipeline class, presented by Bobby, then executes each step in the correct order. Bobby also demonstrated how to leverage modern PHP features to go even further. For example, each step of the pipeline can be represented by an enumeration value, which the Pipeline class can manage. Finally, he introduced the Saga pattern, which is very popular in the JavaScript ecosystem.
Have you met Ada? Word Embeddings with Laravel
Diana Scharf kicked off her talk with an AI-focused presentation. She began by brilliantly simplifying the concept of word embeddings and the underlying mathematical concepts: "a representation of the world in the form of vectors."
After revisiting (or introducing) the basics, Diana presented how the Ada word embedding model by OpenAI works, striking a balance between quality and cost. She also took the opportunity to remind us of Ada Lovelace, the first programmer in history. Using Jupyter Notebook, Diana demonstrated the functioning of a tokenizer and showed how to tokenize text for use as word embeddings in PHP, thanks to the PHPW2V library. The tokenizer returns a list of vectors, which need to be stored. Diana used PostgreSQL, enhanced with specific extensions to support vector-related features.
Finally, Diana illustrated how to leverage these word embeddings with OpenAI and other providers from within a Laravel application. She presented a method to query an LLM with custom word embeddings directly from Eloquent models. The process involves first searching the PostgreSQL database for the closest tokens to the text we want to work with, and these returned tokens help us craft a relevant prompt.
Help out frustrated Bob
Bert De Swaef presented advanced features and services of Laravel to address challenges encountered in real-world projects. Throughout the talk, a fictional project developed by Bob illustrated the various tips discussed. To enhance the user experience, Bert explored some of Livewire's features, such as preloading resources on hover and regularly polling for updates.
To take responsiveness and performance even further, he introduced Laravel Reverb, a technology based on WebSockets. While its functionality is similar to Mercure (an open solution developed and maintained by Les-Tilleuls.coop), its technical approach differs. Laravel Reverb notifies clients only in case of an update, reducing unnecessary requests.
Bert also demonstrated how to combine Laravel Reverb with Eloquent to send an event when saving a model and retrieve this update on the view side to automatically reload the user interface. Finally, with Eloquent, he explored advanced features of the Query Builder to meet more specific needs.
From Zero to Static Analysis Hero
Ryan Chandler began by reminding the audience of the original goal of static analysis, particularly for interpreted languages like PHP: to detect errors as early as possible, before runtime. Static analysis is also used in most PHP linters and code formatters, such as Rector, which relies on PHPStan. He noted that for PHP, the primary tools for analyzing codebases are PHPStan and Psalm, with PHPStan being the most widely used in the ecosystem.
Ryan then focused on PHPStan and explained how it leverages the Abstract Syntax Tree (AST) using the nikic/PHP-Parser library to analyze PHP code and apply validation rules based on the configuration defined (paths, levels, custom rules, extensions, etc.). He then demonstrated how to create a custom PHPStan rule to add project-specific checks. The goal is to standardize development practices, ensure adherence to best practices, and improve code quality. In summary, creating a PHPStan rule involves:
- Defining a class targeting a specific AST node type.
- Implementing the rule by performing tests on these nodes and adding errors if necessary.
- Adding the rule to PHPStan’s configuration using the
rules
key.
Once set up, you simply need to run PHPStan, integrate the rule into your CI pipeline, and you're good to go! 🙂
No more slow requests
Marcel Pociot presented the fundamentals of performance optimization in Laravel. He first explained how application caching works, particularly with php artisan optimize
, which is used by default on Laravel Forge to cache configuration, routes, events, and views.
He then highlighted the importance of queues for managing emails, SMS, and application load, before discussing Opcache and its key role in Laravel Herd to optimize PHP script execution. For a deeper dive into Opcache and JIT, we recommend an article by our colleague Grégoire Hébert: Opcache & JIT PHP.
On the database side, Marcel addressed N+1 queries and offered solutions such as eager loading, explicit joins, and pagination. Finally, he introduced the profiler integrated into Laravel Herd, which allows for in-depth analysis of queries and the identification of bottlenecks.
Laravel Update
Taylor Otwell opened his keynote by recalling the origins of Laravel. Created 15 years ago, Laravel is a tool "built for productivity," designed not to develop an open-source project but to facilitate the launch of products and side projects with maximum efficiency. This philosophy is reflected throughout the framework and its ecosystem. He also detailed the framework's new positioning. Laravel aims to become the default choice for building full-stack web applications, regardless of languages or ecosystems. The goal is for the solution to be as simple as possible to install, use, and deploy in production.
![Taylor Otwell at LaraconEU 2025" class="wp-image-10766](/wp-content/uploads/2025/02/laraconEU-1-1024x771.webp)
Taylor explained that new developers, especially those starting out in the field, should have access to a functional and productive environment effortlessly and within minutes, followed by an environment that fosters efficiency.
To achieve this, many tools in the ecosystem have been released or updated this year:
- php.new: A one-liner to install PHP, Composer, and create a Laravel project on any OS. Our only regret is that our FrankenPHP project, which offers a similar installation method and is the default engine for Laravel Octane, isn’t (yet?) installed by this tool.
- Inertia 2.0: An integration of React, Vue, and Svelte front-end libraries into Laravel. This new version is even simpler to use than the previous one. Taylor also took the opportunity to announce that Inertia had been acquired by Laravel.
- Flux: A UI kit for Livewire providing many ready-to-use graphic components (buttons, dialogs, modals…).
- An official extension for VS Code, which, although less powerful than PhpStorm, is widely used by developers from other ecosystems, free, and partially open source.
Taylor then announced upcoming updates:
- A new version of laravel.com, which will be completely revamped and modernized.
- Laravel 12, which, as usual, will introduce many new features and will be fully backward-compatible with Laravel 11.
- A new version of Laravel Nightwatch, Laravel’s monitoring tool.
- Brand-new starter kits, completely rewritten (one for each popular front-end stack), which will allow projects to be bootstrapped faster than ever.
Finally, Taylor introduced this year’s big announcement: Laravel Cloud. Laravel Cloud will greatly simplify the deployment of Laravel applications.
Connect the platform to your Git repository, and Laravel Cloud takes care of everything: automatic installation, configuration, and optimization of PHP, necessary extensions, and the Laravel application itself. Additional services can be added directly from the UI (Postgres, Redis, and S3-compatible storage are already supported, and services like MySQL will be added soon). These services are automatically provisioned and integrated into your application, without needing any code or configuration changes.
It’s also possible to activate advanced framework features with one click, like Laravel Octane, a system that drastically improves the performance of Laravel applications using a worker mode based on our FrankenPHP tool.
Taylor deployed several versions of an app based on one of the new “starter kits” live, and the demonstration was impressive. Slick and practical UI, astonishing simplicity (nothing to do), and ultra-fast deployments. He also announced very competitive pricing, thanks to a system that puts the app (and its database) to sleep when no requests are being made.
Performance should also be top-notch: Laravel Cloud is fully optimized to get the best out of the framework, and a partnership with Cloudflare (CDN, HTTP cache, web application firewall, file storage…) has been announced. With this new Cloud and all these new tools, Laravel’s goal is clear: let developers focus on high-value code and innovation, while completely freeing them from managing infrastructure and repetitive or avoidable tasks.
Laravel Cloud will be available starting February 24, alongside Laravel 12, the new Laravel website, and the new starter kits.
Nightwatch Returns
Jess Archer, engineering team lead at Laravel, opened the second morning of the conference with a presentation on Nightwatch, the monitoring tool she contributes to developing. She detailed its dashboard, offering a complete view of servers and applications: CPU usage, memory, requests, and user activity. The Requests tab helps identify bottlenecks using enhanced filters and backtraces. In Jobs, you can track attempts and errors during retries. The Exceptions and Queries sections help prioritize errors and inefficient queries. Jess demonstrated how to configure an application with a simple composer require
command, before sharing a use case with Laravel Forge, illustrating API optimization and N+1 query issues. Early access is available at nightwatch.laravel.com.
Introducing [REDACTED]: a new paradigm for Laravel + Javascript
Aaron Francis unveiled Fusion, a new library designed to simplify the integration of JavaScript with Laravel and streamline interaction between Vue.js, HTML, and the backend.
He detailed its main features:
- Simplified templating with the creation of props.
- Hot Module Reloading for a smoother development experience.
- Dynamic props, set by default but overrideable via query parameters.
- Route-based props, allowing the display of data like the title of a route or execution of specific logic.
- Access to backend data from any point in the application.
- Use with Vue.js, especially with directives like v-if, v-bind, or v-for, combined with Fusion props for optimized frontend-backend interactions.
Aaron also emphasized the influence of Hotwire and Stimulus for Symfony on Fusion, which brings a modern and performant approach to Laravel developers looking to optimize their JavaScript projects. Finally, he concluded his talk with a live demo illustrating the simplicity of Fusion for writing PHP alongside the frontend. More information is available in this video.
Building Mobile Apps with PHP
Simon Hamp presented how to create native mobile applications using only PHP. He shared his experience from last year, where he learned how to compile PHP and develop extensions—essential skills for contributing to this innovative project. He conducted a live coding session, displaying his IDE and smartphone without virtualization, to show how PHP Native works with an iOS app integrating Livewire and PHP Native.
Although hot reload is not yet available and every change requires a manual recompilation, Simon successfully published the app on the App Store, demonstrating the potential of the solution. PHP Native offers an alternative to traditional mobile frameworks, enabling Laravel developers to build apps in PHP. While the project is still under development and requires work to support native APIs, early access is available at a discounted rate. In the future, the team plans to add support for Android and other native API features that are currently missing.
Building world-class APIs with API Platform for Laravel
Our co-founder Kévin Dunglas, creator of FrankenPHP and maintainer of many open-source solutions, took the stage to present “API Platform for Laravel,” a package that enables the creation of high-quality web APIs (REST and GraphQL) in an extremely simple way. API Platform is the go-to tool in the Symfony ecosystem for building APIs. The tool is celebrating its 10th anniversary this year, and its very recent version 4 (announced at the API Platform Conference) now offers Laravel support.
![Kévin Dunglas at LaraconEU 2025" class="wp-image-10769](/wp-content/uploads/2025/02/Capture-decran-2025-02-04-a-16.57.56-1024x757.png)
During his presentation, Kévin showed us how adding a single #[ApiResource]
attribute to an Eloquent model class was enough to:
- Expose a fully functional REST API (GET routes for items and collections, POST, PATCH, and DELETE)
- Generate complete OpenAPI and/or Hydra documentation, always synchronized with the database schema
- Provide a graphical interface to view the documentation and test the API
He then demonstrated the full power of the tool and its deep integration with Laravel features:
- Selecting fields to display using the
$visible
and$hidden
properties - Filtering and sorting data through filters, automatically applied by Eloquent
- Advanced data validation with FormRequest
- Authentication compatible with Laravel’s default system, using Sanctum (SPA authentication), Passport (OAuth 2), or Socialite (social login via Google, LinkedIn, Facebook, etc.)
- Custom authorization logic with Gates and Policies
- Using specific DTOs (Data Transfer Objects) for the APIs
- Plugging in custom business logic with processors and providers
- Exposing a GraphQL API without changing the code
- Performance improvements through native support for Octane
The icing on the cake, all these features are automatically documented via OpenAPI and Hydra, without the developer having to worry about it. API Platform Laravel is already available, and it’s completely open-source and free. API Platform was created and is maintained by our cooperative, so don’t hesitate to contact us if you need help implementing it on your projects!
Thank you LaraconEU!
We were already impressed last year: LaraconEU is one of the best PHP conferences in Europe for networking and discovering best practices in the Laravel ecosystem. Since our last participation, we’ve grown even closer to this community. Our cooperative is one of the few French companies partnered with the framework, ensuring us complete legitimacy to support our clients in their application development needs. The release of API Platform for Laravel, our ongoing work on FrankenPHP, and our direct contributions to this framework have also helped us build strong ties with its core team. We’re excited to continue this collaboration. In the meantime, feel free to contact us for the design, development, and deployment of your Laravel applications!