Sign in

Silvan Hagen

@silvanhagen.com
1.1K followers 324 following 174 posts

Friendly internet human. Developer & Consultant, mostly #Laravel & #WordPress. Working on: ⚡️ WireInTheWild.com 🤖 ContentCatalog.app 💬 Durchblick.app

PostsRepliesMedia
Silvan Hagen @silvanhagen.com · 04/11/2025
I love how Claude Code pats itself on the shoulder from one agent to another for the excellent research a lot lately. Everybody needs some pampering 😍.
010
Silvan Hagen @silvanhagen.com · 29/09/2025
First day at work after 20 days of vacation with my wife. I feel so refreshed. Before, I was using Claude Code a lot. Is it still good, or should I give Codex a try? I downgraded right before the vacation, so I'm open to giving Codex a try.
040
Silvan Hagen @silvanhagen.com · 13/09/2025
Scotland kind of feels like the "Switzerland isn't real" meme.
030
Silvan Hagen @silvanhagen.com · 25/08/2025
Working on a Laravel Cloud-style navigation for a Filament v4 project, and it's coming along nicely. 🤗 If you're interested in a tutorial, the code, or both, let me know!
340
Silvan Hagen @silvanhagen.com · 17/08/2025
Filament V4 Tip: Multitenants and Nested Resources When your nested resource model uses a hasOneThrough relationship to your tenant model, you might want to disable the tenancy for the nested resource (of course check that your authorization works).
010
Silvan Hagen @silvanhagen.com · 01/08/2025
Here are the results, can’t wait to try
030
Silvan Hagen @silvanhagen.com · 01/08/2025
Baking with my wife in progress 😍
230
Silvan Hagen @silvanhagen.com · 29/07/2025
Just published some new Livewire projects on Wire in the Wild. In time for Laracon and the next Livewire release. It's great to see Swiss institutions adopting Livewire 😍
Screenshot of wireinthewild.com the website that collects all Laravel Livewire projects
030
Silvan Hagen @silvanhagen.com · 22/07/2025
My Tuesday evening entertainment: Rowing and listening to Mostly Technical.
050
Silvan Hagen @silvanhagen.com · 21/07/2025
Working on a multi-step onboarding workflow combining Filament and Livewire. Should the tips and the buttons be in the white panel or outside?
Onboarding Screen for a SaaS app allowing you to prioritize certain pages from your website
000
Silvan Hagen @silvanhagen.com · 06/06/2025
Such an inspiring talk #WCEU2025
000
Silvan Hagen @silvanhagen.com · 06/06/2025
Powerful message about the impact of open source #WCEU2025
010
Silvan Hagen @silvanhagen.com · 06/06/2025
Basel is pretty 🤩. #WCEU2025
030
Silvan Hagen @silvanhagen.com · 13/05/2025
Trying to reduce my Laravel Cloud bill for fun and profit. My challenge is to see how low I can go with Wire in the Wild and one other demo project. First thing: Remove the scheduler to regenerate the sitemaps
010
Silvan Hagen @silvanhagen.com · 21/03/2025
Yeah, vacation starts this weekend 🤩. My body last night… it would be a shame if you got sick
430
Silvan Hagen @silvanhagen.com · 17/03/2025
Hmm, that's a new phishing attempt I haven't seen before. The links try to authorize an app hosted on render.
010
Silvan Hagen @silvanhagen.com · 14/03/2025
Filament Tip: Persist Table Filters, Sorts, and Searches per Tenant When you use persist<Type>InSession() methods on a table, the same filter, sort & search settings persist across all tenants. Apply this trait on your ListRecords pages and they are stored per tenant.
Code snippet: <?php  namespace App\Filament\Traits;  use Filament\Facades\Filament;  trait HasTenantAwareSessionKeys {     public function getTableFiltersSessionKey(): string     {         $table = md5($this::class.Filament::getTenant());          return "tables.{$table}_filters";     }      public function getTableSearchSessionKey(): string     {         $table = md5($this::class.Filament::getTenant());          return "tables.{$table}_search";     }      public function getTableSortSessionKey(): string     {         $table = md5($this::class.Filament::getTenant());          return "tables.{$table}_sort";     } }
164
Silvan Hagen @silvanhagen.com · 04/03/2025
Yeah, 1 year of Duolingo and still nowhere closer to having a conversation in Hungarian 🇭🇺😅
140
Silvan Hagen @silvanhagen.com · 02/03/2025
Jumped into message requests on X out of curiosity. This is what I was greeted with. At least try to figure out my name, maybe?
230
Silvan Hagen @silvanhagen.com · 28/02/2025
Just moved a custom domain from one application to another in Laravel Cloud. It works like a charm 😍 #wejustship
052
Silvan Hagen @silvanhagen.com · 25/02/2025
On the way to the @laravel.swiss meetup to talk about my early experience with Laravel Cloud.
170
Silvan Hagen @silvanhagen.com · 24/02/2025
Look mom, I'm on the Laravel Cloud website. I guess I need to put a better color picture of my face online 😅
070
Silvan Hagen @silvanhagen.com · 24/02/2025
Here we go Laravel 12.x
061
Silvan Hagen @silvanhagen.com · 12/02/2025
Wow, dark mode works too
020
Silvan Hagen @silvanhagen.com · 12/02/2025
Having so much fun with Native PHP iOS and Cursor
1162
Silvan Hagen @silvanhagen.com · 06/02/2025
That was Laracon EU 2025 for me... 🖥️ Infrastructure deployment and scaling? Solved! 📐 Vector embeddings in Laravel? Sure! 👾 Writing PHP in Vue? Coming on Monday! 📱 Use PHP to write iOS apps? Check! 🤗 Positive vibes only community? You bet!
A collection of images from my experience at Laracon EU 2025
180
Silvan Hagen @silvanhagen.com · 05/02/2025
Bye Amsterdam, bye Laracon EU, I had a blast 👋
080
Silvan Hagen @silvanhagen.com · 02/02/2025
Waiting to board our flight to Amsterdam for LaraconEU
0100
Silvan Hagen @silvanhagen.com · 30/01/2025
13 years ago, I joined meetup and attended an average of 5 events per year. Tonight I'll attend the 66th event, the @laravel.swiss meetup right before Laracon EU 🥳
1100
Silvan Hagen @silvanhagen.com · 27/01/2025
Pretty bold of Complianz.io to automatically add me to their email list after a plugin update on a client site. It feels like a dark pattern, since I didn't actively sign up.
110
Silvan Hagen @silvanhagen.com · 13/12/2024
Wow 🤩, the Laravel Cloud is already very smooth! Took almost no time to deploy a Filament app with database and custom domain.
2100
Silvan Hagen @silvanhagen.com · 13/11/2024
2️⃣5️⃣0️⃣ Livewire projects collected 🥳🤩😍 In a little over a year, we collected 250 Laravel Livewire and Filament projects. Thank you all for submitting the wonderful projects you have been building with my favorite stack. Cheers to the next 250 projects 🍻 Please add yours: wireinthewild.com
2111
Silvan Hagen @silvanhagen.com · 06/11/2024
Office view today
010
Silvan Hagen @silvanhagen.com · 28/10/2024
Obsidian with the Dataview plugin is mighty. I have a ton of notes and constantly add new links to my daily note. The following script generates a table with files with external links:
```dataviewjs
const folder = '00-09 System/02 Notes/02.01 Daily Notes';
const files = dv.pages('"' + folder + '"').sort(f => f.file.name, 'desc');
const urlRegex = /(?:https?:\/\/[^\s)]+)/g;

let totalUrls = 0;
let rows = [];
let domains = new Set();

for (let file of files) {
    const content = await dv.io.load(file.file.path);
    const urls = content.match(urlRegex) || [];
    
    if (urls.length > 0) {
        urls.forEach(url => {
            try {
                const domain = new URL(url).hostname;
                domains.add(domain);
            } catch (e) {}
        });
        
        totalUrls += urls.length;
        rows.push([
            file.file.link,
            urls.length,
            urls.map(url => `• [${url}](${url})`).join('\n')
        ]);
    }
}

// Show statistics
dv.header(3, "External Links Summary");
dv.paragraph(`Found ${totalUrls} external links across ${rows.length} notes`);
dv.paragraph(`Unique domains: ${domains.size}`);

if (rows.length > 0) {
    dv.table(["Note", "Count", "Links"], rows);
} else {
    dv.paragraph("No external links found in the specified folder.");
}
```
120