20 months ago, we started building Performance Monitoring as Flare’s next big feature, never expecting Laravel’s rapid commercial growth to put us in direct competition with their own tools. This is our honest take on those 20 months went, how we’re adapting to this new reality, and where we’re heading next while staying true to who we are. A dive into the deep end, without knowing how far down it goes.| Flare
| Flare
The word is out: we're working on performance monitoring, Flare's most significant feature yet. One of the challenges we've tackled in the previous months was storing all this performance data generated by our customers' applications. An application has multiple entry points. Think of requests, jobs, or commands within those entry points. Many things happen within those entry points, like executing queries, rendering views, making external HTTP calls, etc. We call each unit where something ha...| flareapp.io
Microsoft Teams is deprecating the old Office365 connection mechanism to post messages to team channels. This change affects all Flare users who rely on Flare notifications sent to Microsoft Teams.| Flare
As we work on Flare’s performance monitoring feature, we’ve adopted a method to streamline our component architecture, making our UI more adaptable and maintainable. We derived this approach from Adam Wathan, who gave an insightful presentation titled "Designing a Component Library" at Laracon US 2024. Although it’s been five months since the talk, there were some awesome takeaways. In his presentation, Adam showcased techniques for building flexible and maintainable UI components using...| Flare
We're currently completely rewriting the Flare backend client packages that run on our clients' servers. The original clients were written more than six years ago, and after more than a hundred releases, countless new features, and many bug fixes, it was time to review the packages.| Flare
Over the next few months, we're committed to fixing bugs - not just in your code, but in our app too. We’ve got a bunch of improvements lined up to make Flare even better!| flareapp.io
Our team has received a lot of feedback about errors caused by browser extensions flooding projects. We have listened! In the latest version of our JavaScript client, errors triggered by browser extensions will not be reported anymore.| flareapp.io
Secret management isn't the most thrilling part of development, but it's crucial. Let's look at some options, why we chose the 1Password CLI and how to set it up.| flareapp.io
Laravel's handy rescue helper to the ... rescue!| flareapp.io
From now on, you can quickly retry a failed Laravel Horizon job without hassle.| flareapp.io
For any application, handling errors gracefully is crucial for maintaining a smooth user experience. While PHP's try-catch statements are great at catching known exceptions and preventing them from crashing your application, they also make exceptions go unnoticed. What if you also want to log and report an exception without bringing your application to a screeching halt? That's where Laravel's report helper steps into the spotlight.| flareapp.io
We now mark exceptions as handled when they don't crash your application.| flareapp.io
In PHP 8.0 WeakMaps were added, a mystical feature we never used until we had a complicated issue to solve.| flareapp.io
You can now set a priority for each exception to find out what needs to be fixed first.| flareapp.io
How to fix bugs for packages used by all versions of Laravel released in the past five years?| flareapp.io
Share your errors to Flare from the new default Laravel error page.| flareapp.io
From now on, you prefill some info about the error in issues.| flareapp.io
In our latest release we've added support for assigning an error to a user of your team.| flareapp.io
We're proud to share that errors on Flare can now be associated with Linear. In this post, we'll tell you all about it!| flareapp.io
Laravel 11 recently introduced a nice new feature called Context. Ignition and Flare have both been updated to collect and show all context.| flareapp.io
Laracon EU 2024 was an awesome conference, we were sponsoring with Flare and having a blast until a DDoS attack hit us.| flareapp.io
We've recently switched our database infrastructure from MySQL to Postgres, this is a high level overview on how we used Laravel's query builder to migrate our data.| flareapp.io
We released our new suite of JavaScript packages. With updates for our JavaScript, React, Vue, and Vite plugins.| flareapp.io
Using custom context and glows adds extra information to error reports, helping you quickly understand and fix problems in your Laravel applications.| flareapp.io
It is integration month! After Jira we're launching another integration: Gitlab.| flareapp.io
A few days ago, we added a GitLab integration. In this blog post, we'll talk about the road to that integration and our struggles.| flareapp.io
Connect your Flare errors with Jira issues| flareapp.io
We've improved user management on Flare.| flareapp.io
Learn how Cloudflare Workers in Flare enable edge-based API authentication, effectively filtering out unauthorized requests and enhancing performance for your application.| flareapp.io
Collaborating in Slack to solve your exceptions just got a lot better with unfurling. We'll also do a bit of a code dive into how to integrate Slack unfurling into a Laravel application.| flareapp.io
We created a new structure for external integrations like GitHub and Jira which allows us to add these kinds of integrations a lot quicker.| flareapp.io
Errors will inevitably occur in your application. There is no way around it. If you notice them while working locally, you can fix them immediately. However, if your application is already live, it gets more tricky because you are not the only person triggering errors anymore. This is where error tracking software like Flare comes in handy.| flareapp.io
Earn money by referring users to Flare| flareapp.io
This will make it easier for newcomers to get familiar with Flare| flareapp.io
Today we're introducing the error activity feed and notes.| flareapp.io
Picture this: a bunch of developers, most of them back-enders, are given a Figma design file to turn into the new homepage for Flare. We set out to build our brand-new marketing site with a sprinkle of animations. Here is how we crafted them.| flareapp.io
Here's how you can implement our log in flow in your Laravel app| flareapp.io
Secret secrets are no fun, secret secrets hurt someone... unless they're managed right in your Laravel deployment! Say goodbye to plaintext perils and .env file follies. For Flare we explored some alternative solutions like config servers, the env:encrypt command and git-secret to keep your production environment variables safe and sound. Using git-secret's with user-specific access control and PGP encryption, managing environment variables becomes a breeze.| flareapp.io
We now show the arguments used with each function or method call, in this blogpost we go through the implementation of it.| flareapp.io
These past months, we've been busy redesigning our entire service. We're very proud to launch it today.| flareapp.io
Today, we're adding AI-powered solutions to Flare. This means we can suggest a solution for almost any error: the AI will likely suggest a helpful suggestion for most errors.| flareapp.io
Debugging errors can leak sensitive information, let's see how we can solve this using PHP 8.2| flareapp.io
SSR Inertia and response cache: the ultimate performance and SEO combo!| flareapp.io
Good things are coming!| flareapp.io
We're still working on our redesign and are close to release. Today we started tackling an issue where the performance of the error page was too slow for us. In the end, we needed to change the structure of the error occurrences table, which is a lot harder than it seems.| flareapp.io
The new version of Flare has a lot of graphs, but how do we calculate the data| flareapp.io
We're introducing Flare Roulette™ today. Let's make bug-fixing great again!| flareapp.io
We're redesigning Flare, but our application became really slow. Let's find out why and fix it!| flareapp.io
We're giving our entire service a new coat of paint| flareapp.io
Since the early days, Laravel has had an excellent validator available, but sometimes it doesn't work as expected, especially with nested arrays.| flareapp.io
We now support the most popular payment methods in Belgium and The Netherlands| flareapp.io
According to the React maintainers, React developers reach for the useEffect hook too quickly. It is far from the only hook with many naive usages.| flareapp.io
Creating a Flare subscription within the EU was never easier| flareapp.io
Here's a rundown of all the things we improved in Flare in the past year.| flareapp.io
Introducing the Ignition and Flare Livewire tab| flareapp.io
Flare gets a lot of errors, but how to group them?| flareapp.io
From now on, when something goes wrong in a queued job, Flare can tell you a lot more about what's going on| flareapp.io
| flareapp.io
As of today, Flare can notify you via Telegram. In this blog post, you'll see that we didn't only provide basic support but also went all the way with notification actions.| flareapp.io
We've just launched a new feature that will make it easier for users of your app to report specific errors.| flareapp.io
We've recently added a support form bubble form to our app. In this post we'll explain what it is, why we added it, and how you can add one to your app.| flareapp.io
If you've read our blog or docs the last few weeks, some things might look a little bit different. We now highlight our code blocks using Shiki.| flareapp.io
A static analyzer helps you to find bugs in your code without even running it, let's take a look what it can find in the Flare codebase.| flareapp.io
Flare runs on a few different servers that each produce their own logs. In this post, you'll learn how we can combine multiple logs in a single stream.| flareapp.io
We've now have a completely renewed billing experience powered by the latest version of Laravel Spark. In this blog post, we'll share why and how we performed this migration.| flareapp.io
Our search capabilities have been vastly improved under the hood.| flareapp.io
Like most SaaS companies, the Flare back-office features a neat dashboard showing some of our key metrics. Using Laravel Nova it's pretty easy to aggregate data per model like the total number of errors or the active subscriptions per week. Behind the scenes these dashboard tiles and graphs use simple database queries. For example, the number of active subscriptions is a simple SELECT COUNT(*) query on the subscriptions table. But how do we query new subscriptions per week?| flareapp.io
From now on, you can control the exceptions and errors sent to Flare| flareapp.io
We've added a nice addition to your UI.| flareapp.io
You can now retrieve all projects and errors using our new API.| flareapp.io
When you now check "Select all", all errors of a project can be selected.| flareapp.io
Like many others SaaS applications, you can try out Flare using a trial period. Of course, not everybody that tries out Flare will convert. After the trial period is over, some people will not use the service anymore. In this post you'll learn how we clean up the data of inactive teams and users| flareapp.io
Our projects overview has been vastly improved.| flareapp.io
Our email notifications got more powerfull.| flareapp.io
In some cases, such as a login page, these request fields may contain a password that you don't want to send to Flare. Here's how you can censor certain values.| flareapp.io
There's a new "type" property that gets displayed on each error in our UI.| flareapp.io
Here's a peak at the actual source code of Flare.| flareapp.io
We decided to email the project overview to each user every month.| flareapp.io
We're proud to share that errors on Flare can now be associated with issues on GitHub and vice versa. In this post, we'll tell you all about it!| flareapp.io
When we look at which notification channels our users use, we see that mail is the most popular channel. This motivated us to provide snoozing and resolving abilities to mail notifications.| flareapp.io
Some of our users have recently requested to view the periods that Spike protection is active. On the Spike protection page of the project settings you'll now see a table listing all period that spike protection was active.| flareapp.io
Our documentation pages can now be easily searched in real-time,| flareapp.io
In addition to snoozing notifications for a number of occurrences or a fixed period, we have introduced a new way of snoozing errors. You can now snooze errors per application version. In this blog post, you'll learn all about it.| flareapp.io
A few days ago, you might have received a Dependabot security warning on Ignition regarding a remote execution exploit. In this blog post, we'd like to explain why that security warning isn't an issue for most and how we improved Ignition's security.| flareapp.io
We added a couple of new notification channels. In this post you'll also see some actual code from our codebase.| flareapp.io
In this blogpost we'll take a quick look at how Blackfire is set-up and how Lambda layers works. In the second part of this post we'll add the two together to get production profiling data from Lambda into Blackfire.| flareapp.io
Recently we had to delete unneeded records in a huge table. In this post, I'd like to show you the challenges we had to overcome and the solutions we came up with.| flareapp.io
| flareapp.io
| flareapp.io
| flareapp.io
| flareapp.io
| flareapp.io
Today we are very excited to announce a new global helper function to quickly dump, die and debug using Ignition. Introducing ddd!| Flare
Flare has long relied on locally running Laravel Envoy for our app deployments. However, as the application and infrastructure evolves, so do the challenges. This article documents some of our endeavors to come up with a more robust solution in 2024 while keeping our deploys as simple as possible.| Flare