1<!DOCTYPE html> 2<html lang="en"> 3<head> 4 <meta charset="utf-8"/> 5 <meta name="viewport" content="width=device-width, initial-scale=1"/> 6 <meta name="csrf-token" content="4fdpIGE1qNbcQY2IqdbmjMQx5M0ahqWIuWmdg9zt"/> 7 8 <title>Laravel News</title> 9 10 11 <meta 12 name="description" 13 content="Laravel News is the official blog of Laravel. Every day bringing you the latest news, tutorials, and packages for the framework." 14 /> 15 <meta property="og:type" content="website"/> 16 <meta property="og:title" content="Laravel News"/> 17 <meta 18 property="og:image" 19 content="https://picperf.io/https://laravel-news.com/images/laravelnews-og.png" 20 /> 21 <meta 22 property="og:description" 23 content="Laravel News is the official blog of Laravel. Every day bringing you the latest news, tutorials, and packages for the framework." 24 /> 25 <meta property="og:url" content="https://laravel-news.com/contact"/> 26 <meta property="og:site_name" content="Laravel News"/> 27 <meta property="og:locale" content="en_US"/> 28 <meta name="fediverse:creator" content="@[email protected]"/> 29 30 31 32 <meta name="twitter:card" content="summary_large_image"/> 33 <meta name="twitter:site" content="@laravelnews"/> 34 <meta name="twitter:title" content="Laravel News"/> 35 <meta 36 property="twitter:image" 37 content="https://picperf.io/https://laravel-news.com/images/laravelnews-og.png" 38 /> 39 <meta 40 name="twitter:description" 41 content="Laravel News is the official blog of Laravel. Every day bringing you the latest news, tutorials, and packages for the framework." 42 /> 43 44 <link href="https://laravel-news.com/contact" rel="canonical"/> 45 <link href="https://laravel-news.com/" rel="home"/> 46 47 <link 48 rel="alternate" 49 type="application/rss+xml" 50 title="Laravel News » Feed" 51 href="https://feed.laravel-news.com/" 52 /> 53 <link 54 rel="alternate" 55 title="Laravel News Feed" 56 type="application/json" 57 href="https://laravel-news.com/feed/json" 58 /> 59 <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"/> 60 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"/> 61 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"/> 62 <link rel="manifest" href="/site.webmanifest"/> 63 <meta name="p:domain_verify" content="10fb40c4dd5b036ab42f1d935c6400b6"/> 64 <meta name="facebook-domain-verification" content="smr6d95hfkmrn505mfkv7dzalj68g2"/> 65 <meta property="fb:admins" content="100007722642618"/> 66 <meta property="fb:app_id" content="440569919467159"/> 67 68 69 <link rel="preconnect" href="https://use.typekit.net"/> 70 <link rel="preconnect" href="https://fonts.bunny.net"/> 71 <link href="https://fonts.bunny.net/css?family=jetbrains-mono:400,400i&display=swap" rel="stylesheet"/> 72 <link rel="stylesheet" href="https://use.typekit.net/ltt3ltm.css"> 73 74 75
75<script src="https://cdn.usefathom.com/script.js" data-site="BYASFNCM" defer></script>
75 76 77 <!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 77-78
77 78 <script async src="https://www.googletagmanager.com/gtag/js?id=
78G-LE9GHTERHJ
vendor: 16 bytes, lines 78-79
78"></script> 79
79<script> 80
vendor: 152 bytes, lines 80-84
80window.dataLayer = window.dataLayer || []; 81 function gtag(){dataLayer.push(arguments);} 82 gtag('js', new Date()); 83 84 gtag('config', '
84G-LE9GHTERHJ
vendor: 8 bytes, lines 84-85
84'); 85
85</script>
85 86 87
87<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer ></script>
87 88 89 <link rel="preload" as="style" href="https://laravel-news.com/build/assets/app-Bwim-7ov.css" /><link rel="modulepreload" as="script" href="https://laravel-news.com/build/assets/app-Dz_15UI5.js" /><link rel="stylesheet" href="https://laravel-news.com/build/assets/app-Bwim-7ov.css" data-navigate-track="reload" />
89<script type="module" src="https://laravel-news.com/build/assets/app-Dz_15UI5.js" data-navigate-track="reload"></script>
89 90 91 <!-- Livewire Styles --><style >[wire\:loading][wire\:loading], [wire\:loading\.delay][wire\:loading\.delay], [wire\:loading\.inline-block][wire\:loading\.inline-block], [wire\:loading\.inline][wire\:loading\.inline], [wire\:loading\.block][wire\:loading\.block], [wire\:loading\.flex][wire\:loading\.flex], [wire\:loading\.table][wire\:loading\.table], [wire\:loading\.grid][wire\:loading\.grid], [wire\:loading\.inline-flex][wire\:loading\.inline-flex] {display: none;}[wire\:loading\.delay\.none][wire\:loading\.delay\.none], [wire\:loading\.delay\.shortest][wire\:loading\.delay\.shortest], [wire\:loading\.delay\.shorter][wire\:loading\.delay\.shorter], [wire\:loading\.delay\.short][wire\:loading\.delay\.short], [wire\:loading\.delay\.default][wire\:loading\.delay\.default], [wire\:loading\.delay\.long][wire\:loading\.delay\.long], [wire\:loading\.delay\.longer][wire\:loading\.delay\.longer], [wire\:loading\.delay\.longest][wire\:loading\.delay\.longest] {display: none;}[wire\:offline][wire\:offline] {display: none;}[wire\:dirty]:not(textarea):not(input):not(select) {display: none;}:root {--livewire-progress-bar-color: #2299dd;}[x-cloak] {display: none !important;}[wire\:cloak] {display: none !important;}dialog#livewire-error::backdrop {background-color: rgba(0, 0, 0, .6);}</style> 92 </head> 93 94<body class="relative antialised min-h-screen bg-white font-sans text-black"> 95 96 97<div x-persist="header"> 98<header 99 x-data="{ 100 mobileMenuIsOpen: false, 101 searchModalIsOpen: false, 102 init() { 103 document.addEventListener('livewire:navigating', () => { 104 this.mobileMenuIsOpen = false; 105 this.searchModalIsOpen = false; 106 }); 107 }, 108 }" 109 class="absolute inset-x-0 z-10" 110> 111 <div 112 class="shadow-card z-50 flex items-center justify-center bg-red-600 px-3 py-3 text-center text-sm text-white"> 113 <div id="top-ad" x-init="$ajax('/api/ad/top')"> </div> 114 </div> 115 <div 116 class="mt-5 mx-auto flex w-full max-w-7xl items-center justify-between gap-4 px-6 py-6 md:gap-8 md:py-10" 117 > 118 <div class="xl:gap-18 flex items-center gap-16"> 119 <a 120 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 hover:-translate-y-1 hover:opacity-70 focus-visible:ring-offset-2" href="/" 121 > 122 <img 123 class="lg:h-18 lg:w-18 h-12 w-12 sm:h-16 sm:w-16" 124 width="87" 125 height="86" 126 src="https://picperf.io/https://laravel-news.com/images/logo.svg" 127 alt="Laravel News" 128/> 129 <span class="sr-only">Laravel News</span> 130</a> 131 <div class="hidden items-center gap-4 sm:flex md:gap-8"> 132 <a 133 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/blog" 134 > 135 Blog 136</a> 137 <a 138 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/category/tutorials" 139 > 140 Tutorials 141</a> 142 <a 143 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/category/packages" 144 > 145 Packages 146</a> 147 <a 148 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 !hidden p-1 font-bold hover:text-gray-600 md:!inline-flex" href="/newsletter" 149 > 150 Newsletter 151</a> 152 <a 153 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 !hidden p-1 font-bold hover:text-gray-600 md:!inline-flex" href="/podcasts" 154 > 155 Podcasts 156</a> 157 </div> 158 </div> 159 <div class="xl:gap-18 flex items-center gap-16"> 160 <div class="hidden items-center gap-4 md:gap-8 lg:flex"> 161 162 163 164 165 166 167 168 <a 169 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/partners" 170 wire:navigate.hover 171 > 172 Partners 173</a> 174 <a 175 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/links" 176 wire:navigate.hover 177 > 178 Links 179</a> 180 <a 181 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/login" 182 wire:navigate.hover 183 > 184 Your Account 185</a> 186 </div> 187 <div class="-mr-1 flex items-center gap-2"> 188 <button 189 class="inline-flex rounded-sm p-1 leading-none text-black transition duration-300 hover:text-gray-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 focus-visible:ring-offset-4 focus-visible:ring-offset-white" 190 @click.prevent="searchModalIsOpen = true" 191 > 192 <img 193 src="https://picperf.io/https://laravel-ne
193ws.com/images/icons/search.svg" 194 class="h-6 w-6" 195 width="24" 196 height="24" 197 alt="Search" 198 /> 199 <span class="sr-only">Search</span> 200 </button> 201 <button 202 class="inline-flex rounded-sm p-1 leading-none text-black transition duration-300 hover:text-gray-600 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 focus-visible:ring-offset-4 focus-visible:ring-offset-white lg:hidden" 203 @click.prevent="mobileMenuIsOpen = true" 204 > 205 <img src="https://picperf.io/https://laravel-news.com/images/icons/menu.svg" class="h-6 w-6" width="24" height="24" alt="Menu"/> 206 <span class="sr-only">Menu</span> 207 </button> 208 </div> 209 </div> 210 </div> 211 <template x-teleport="body"> 212 <div 213 x-dialog 214 x-model="mobileMenuIsOpen" 215 x-cloak 216 class="fixed inset-0 z-50 overflow-hidden lg:hidden" 217 > 218 219 <div x-dialog:overlay x-transition.opacity class="fixed inset-0 bg-black/50"></div> 220 221 222 <div class="fixed inset-y-0 right-0 w-full max-w-lg"> 223 <div 224 x-dialog:panel 225 x-transition:enter="transition duration-300 ease-out" 226 x-transition:enter-start="translate-x-full" 227 x-transition:enter-end="translate-x-0" 228 x-transition:leave="transition duration-300 ease-in" 229 x-transition:leave-start="translate-x-0" 230 x-transition:leave-end="translate-x-full" 231 class="h-full w-full" 232 > 233 <div 234 class="flex h-full flex-col justify-between overflow-y-auto bg-white shadow-card" 235 > 236 <div class="p-6 md:p-10"> 237 <div class="flex items-center justify-between"> 238 239 <a 240 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 hover:-translate-y-1 hover:opacity-70 focus-visible:ring-offset-2" href="/" 241 wire:navigate.hover 242 > 243 <img 244 class="h-12 w-12 sm:h-16 sm:w-16" 245 width="87" 246 height="86" 247 src="https://picperf.io/https://laravel-news.com/images/logo.svg" 248 alt="Laravel News" 249/> 250 <h2 x-dialog:title class="sr-only">Laravel News</h2> 251</a> 252 253 254 <button 255 type="button" 256 @click="$dialog.close()" 257 class="rounded-sm p-1 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 focus-visible:ring-offset-4" 258 > 259 <span class="sr-only">Close menu</span> 260 261 <img 262 src="https://picperf.io/https://laravel-news.com/images/icons/close.svg" 263 class="h-6 w-6" 264 width="24" 265 height="24" 266 alt="Close menu" 267 /> 268 </button> 269 </div> 270 <div class="-mx-1 mt-12 flex flex-col gap-4"> 271 <a 272 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/blog" 273 wire:navigate.hover 274 > 275 Blog 276</a> 277 <a 278 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/category/tutorials" 279 wire:navigate.hover 280 > 281 Tutorials 282</a> 283 <a 284 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/category/packages" 285 wire:navigate.hover 286 > 287 Packages 288</a> 289 <a 290 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/podcasts" 291 > 292 Podcasts 293</a> 294 <a 295 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/newsletter" 296 wire:navigate.hover 297 > 298 Newsletter 299</a> 300 <a 301 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/links" 302 wire:navigate.hover 303 > 304 Community Links 305</a> 306 <a 307 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/partners" 308 wire:navigate.hover 309 > 310 Partners 311</a> 312 <div class="px-1 py-3"> 313 <hr class="border-gray-600/30"/> 314 </div> 315 <a 316 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/login" 317 wire:navigate.hover 318 > 319 Your Account 320</a> 321 <a 322 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 hover:text-gray-600" href="/advertising" 323 wire:navigate.hover 324 > 325 Advertising 326</a> 327 </div> 328 </div> 329 </div> 330 </div> 331 </div> 332 </div> 333</template> 334 <template x-teleport="body"> 335 <div 336 x-data="{ 337 initialized: false, 338 init() { 339 $watch('searchModalIsOpen', (value) => { 340 if (! this.initialized) { 341 search.start(); 342 343 this.initialized = true; 344 } 345 346 if (value) { 347 setTimeout(() => { 348 this.$el.querySelector('input').focus(); 349 }, 100); 350 } 351 }); 352 }, 353 }" 354 x-dialog 355 x-model="searchModalIsOpen" 356 x-cloak 357 class="fixed inset-0 z-10" 358 @keydown.slash.meta.window="searchModalIsOpen = !searchModalIsOpen" 359 @keydown.k.meta.window="searchModalIsOpen = !searchModalIsOpen" 360 @keydown.escape.window="searchModalIsOpen = false" 361 > 362 <div 363 x-dialog:overlay 364 x-transition.opacity 365 class="fixed inset-0 bg-black/60 backdrop-blur-sm" 366 ></div> 367 368 <div class="relative flex min-h-screen items-center justify-center p-4"> 369 <div 370 x-dialog:panel 371 x-transition.opacity.duration.400ms 372 class="relative h-[88vh] w-full max-w-3xl overflow-y-auto rounded-lg border border-gray-100 bg-white shadow-card" 373 > 374 <div class="p-6 lg:p-12"> 375 <div class="flex items-center justify-between gap-4"> 376 <h2 x-dialog:title class="text-2xl font-bold">Search Articles</h2> 377 <button 378 type="button" 379 @click="$dialog.close()" 380 class="rounded-sm p-1 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 focus-visible:ring-offset-4" 381 >
382 <span class="sr-only">Close search</span> 383 384 <img 385 src="https://picperf.io/https://laravel-news.com/images/icons/close.svg" 386 class="h-6 w-6" 387 width="24" 388 height="24" 389 alt="Close search" 390 /> 391 </button> 392 </div> 393 394 <div class="ais-InstantSearch mt-10"> 395 <div id="searchbox"></div> 396 <div id="hits"></div> 397 <div class="mt-1 border-gray-200 border-t"> 398 <div class="mt-4 flex flex-wrap items-center justify-between gap-x-6 gap-y-2"> 399 <p> 400 Or try 401 <a href="/search" 402 class="focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 font-bold text-red-600 hover:text-red-700"> 403 paginated search â 404 </a> 405 </p> 406 407 <p class="text-sm text-gray-500"> 408 Lightning-fast search powered by 409 <a href="https://go.laravel.news/typesense" 410 target="_blank" 411 rel="noopener" 412 class="focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 font-bold text-gray-700 underline decoration-gray-300 underline-offset-2 hover:text-red-600 hover:decoration-red-600"> 413 Typesense 414 </a> 415</p> 416 </div> 417 </div> 418 </div> 419 </div> 420 </div> 421 </div> 422 </div> 423</template> 424</header> 425</div> 426 427<div> 428 <div class="h-[160px] sm:h-[148px] md:h-[180px]"></div> 429 <section class="mx-auto w-full max-w-2xl px-6 pb-32 pt-24 sm:pb-40 sm:pt-32 lg:max-w-7xl"> 430 <div class="max-w-3xl"> 431 <h1 class="text-5xl font-bold sm:text-6xl">Contact us</h1> 432 <p class="mt-8"> 433 If you are interesting in advertising or partnering with Laravel News send us an 434 email at 435 <a 436 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 text-red-600 hover:text-red-700" href="mailto:[email protected]" 437 > 438 [email protected] 439</a> 440 . 441 </p> 442 <p class="mt-4"> 443 If you have written a package or a tutorial please use the links section as those 444 submissions feed into the weekly newsletter, social accounts, and more. 445 </p> 446 <p class="mt-4"> 447 For everything else our mailing address is below and we love postcards and hand 448 written letters: 449 </p> 450 <address class="mt-8 font-bold not-italic"> 451 Laravel News 452 <br /> 453 PO Box 196 454 <br /> 455 Cramerton NC, 28032 456 </address> 457 </div> 458 </section> 459 <div class="mx-auto w-full max-w-2xl px-6 lg:max-w-7xl"> 460 <hr class="border-t border-gray-600/30" /> 461 </div> 462</div> 463 464<div x-persist="footer"> 465<footer class="relative overflow-hidden py-24 sm:py-32"> 466 467 <svg 468 class="absolute bottom-0 right-0" 469 width="603" 470 height="419"
471 viewBox="0 0 603 419" 472 fill="none" 473 xmlns="http://www.w3.org/2000/svg" 474 > 475 <g opacity=".2" filter="url(#filter0_f_4_553)"> 476 <circle cx="462" cy="462" r="258" fill="#F9332B"/> 477 </g> 478 <defs> 479 <filter 480 id="filter0_f_4_553" 481 x="0" 482 y="0" 483 width="924" 484 height="924" 485 filterUnits="userSpaceOnUse" 486 color-interpolation-filters="sRGB" 487 > 488 <feFlood flood-opacity="0" result="BackgroundImageFix"/> 489 <feBlend in="SourceGraphic" in2="BackgroundImageFix" result="shape"/> 490 <feGaussianBlur stdDeviation="102" result="effect1_foregroundBlur_4_553"/> 491 </filter> 492 </defs> 493 </svg> 494 <div 495 class="relative mx-auto flex w-full max-w-2xl flex-col items-start justify-between gap-x-16 gap-y-12 px-6 lg:max-w-7xl lg:flex-row" 496 > 497 <div class="lg:w-1/2"> 498 <h2 class="text-2xl font-bold lg:text-[28px]">Subscribe to our newsletter</h2> 499 <div class="relative mt-10"> 500 <img 501 class="absolute -top-10 right-48 z-10" 502 x-data="{ 503 initializeAnimation: false, 504 init() { 505 setTimeout(() => { 506 this.initializeAnimation = true; 507 }, 1500); 508 }, 509 }" 510 :class="initializeAnimation ? 'animate-cube' : ''" 511 src="https://picperf.io/https://laravel-news.com/images/cube.svg" 512 width="47" 513 height="53" 514 alt="Cube" 515/> 516 <div 517 class="relative overflow-hidden rounded-lg border border-gray-100 bg-white p-8 shadow-card" 518 > 519 <span class="absolute inset-y-0 left-0 w-1 bg-red-600"></span> 520 <div> 521 522 <form method="POST" action="https://laravel-news.com/php-artisan-subscribe"> 523 <input type="hidden" name="location" value="footer"> 524 <div class="absolute left-[-9999px] top-auto h-px w-px overflow-hidden" aria-hidden="true"> 525 <label> 526 First name 527 <input name="first_name" type="text" tabindex="-1" autocomplete="off" value=""/> 528 </label> 529 </div> 530 <div class="flex w-full flex-wrap items-stretch gap-4"> 531 <label class="relative flex min-w-[240px] flex-1 items-center bg-white"> 532 <span class="sr-only">Email</span> 533 <img 534 src="https://picperf.io/https://laravel-news.com/images/icons/newsletter.svg" 535 alt="Newsletter icon" 536 width="24" 537 height="24" 538 class="pointer-events-none absolute left-3 top-3" 539 /> 540 <input 541 name="artisan_destination" 542 type="email" 543 autocomplete="email" 544 class="w-full rounded-lg border-gray-100 bg-transparent px-12 py-3 text-gray-600 placeholder-gray-600/50 transition focus:border-gray-100 focus:bg-gray-100/40 focu
544s:outline-none focus:ring-2 focus:ring-red-600/80 focus:ring-offset-2" 545 placeholder="Email" 546 /> 547 </label> 548 <button 549 type="submit" class="inline-flex items-center justify-center leading-none bg-red-600 border border-transparent rounded-lg font-bold text-base text-white hover:bg-red-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 focus-visible:ring-offset-2 disabled:bg-red-600/50 disabled:cursor-not-allowed transition ease-in-out duration-300 px-6 py-4" 550> 551 Join free 552</button> 553 </div> 554 </form> 555</div> 556 </div> 557 </div> 558 <div class="mt-10 flex flex-wrap items-center gap-8"> 559 <p class="font-bold">and follow us on</p> 560 <div class="flex flex-wrap items-center gap-2 sm:flex-nowrap"> 561 <a 562 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://www.facebook.com/laravelnews" target="_blank" 563 > 564 <img 565 loading="lazy" 566 src="https://picperf.io/https://laravel-news.com/images/facebook.svg" 567 alt="Facebook" 568 width="24" 569 height="24" 570 class="h-6 w-6 object-contain" 571 rel="nofollow" 572 /> 573 <span class="sr-only">Facebook</span> 574</a> 575 <a 576 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://instagram.com/laravelnews" 577 > 578 <img 579 loading="lazy" 580 src="https://picperf.io/https://laravel-news.com/images/instagram.svg" 581 alt="Instagram" 582 width="24" 583 height="24" 584 class="h-6 w-6 object-contain" 585 rel="nofollow" 586 /> 587 <span class="sr-only">Instagram</span> 588</a> 589 <a 590 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://twitter.com/laravelnews" 591 > 592 <img 593 loading="lazy" 594 src="https://picperf.io/https://laravel-news.com/images/x.svg" 595 alt="X" 596 width="24" 597 height="24" 598 class="h-6 w-6 object-contain" 599 rel="nofollow" 600 /> 601 <span class="sr-only">X</span> 602</a> 603 <a 604 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://www.linkedin.com/company/laravel-news" 605 > 606 <img 607 loading="lazy" 608 src="https://picperf.io/https://laravel-news.com/images/linkedin.svg" 609 alt="Linkedin" 610 width="24" 611 height="24" 612 class="h-6 w-6 object-contain" 613 rel="nofollow" 614 /> 615 <span class="sr-only">Linkedin</span> 616</a> 617 <a 618 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://t.me/laravelnews" 619 > 620 <img 621 loading="lazy" 622 src="https://picperf.io/https://laravel-ne
622ws.com/images/telegram.svg" 623 alt="Telegram" 624 width="24" 625 height="24" 626 class="h-6 w-6 object-contain" 627 rel="nofollow" 628 /> 629 <span class="sr-only">Telegram</span> 630</a> 631 <a 632 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://www.youtube.com/@laravelnews" 633 > 634 <img 635 loading="lazy" 636 src="https://picperf.io/https://laravel-news.com/images/youtube.svg" 637 alt="Youtube" 638 width="24" 639 height="24" 640 class="h-6 w-6 object-contain" 641 rel="nofollow" 642 /> 643 <span class="sr-only">Youtube</span> 644</a> 645 <a 646 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://www.threads.net/@laravelnews" 647 > 648 <img 649 loading="lazy" 650 src="https://picperf.io/https://laravel-news.com/images/threads.svg" 651 alt="Threads" 652 width="24" 653 height="24" 654 class="h-6 w-6 object-contain" 655 rel="nofollow" 656 /> 657 <span class="sr-only">Threads</span> 658</a> 659 660 <a 661 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 h-12 w-12 items-center justify-center !rounded-lg border border-gray-100 bg-white !shadow-sm hover:opacity-60" href="https://mastodon.social/@laravelnews" rel="me" 662 > 663 <img 664 loading="lazy" 665 src="https://picperf.io/https://laravel-news.com/images/mastodon.svg" 666 alt="Mastodon" 667 width="24" 668 height="24" 669 class="h-6 w-6 object-contain" 670 /> 671 <span class="sr-only">Mastodon</span> 672</a> 673 </div> 674 </div> 675 </div> 676 <div class="grid w-full max-w-sm gap-x-12 gap-y-4 sm:grid-cols-2"> 677 <a 678 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/newsletter" 679 > 680 Laravel Newsletter 681</a> 682 <a 683 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/links" 684 > 685 Laravel Links 686</a> 687 <a 688 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/category/packages" 689 > 690 Laravel Packages 691</a> 692 <a 693 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/category/tutorials" 694 > 695 Laravel Tutorials 696</a> 697 <a 698 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/events" 699 > 700 Laravel Events 701</a> 702 <a 703 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="https://laravel-ne
703ws.com/popular-laravel-packages" 704 > 705 Popular Packages 706</a> 707 <a 708 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/tag/releases" 709 > 710 Laravel Releases 711</a> 712 <a 713 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="https://laravel-news.com/archive" 714 > 715 Article Archive 716</a> 717 <a 718 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/partners" 719 > 720 Partners 721</a> 722 <a 723 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/advertising" 724 > 725 Advertising 726</a> 727 <a 728 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="https://laravel-news.com/services" 729 > 730 Expert Help 731</a> 732 <a 733 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="https://larajobs.com" 734 > 735 Laravel Jobs 736</a> 737 <a 738 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="https://shop.laravelnews.com/" 739 > 740 LN Swag 741</a> 742 <a 743 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="https://phpnews.net" 744 > 745 PHP News 746</a> 747 <a 748 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/contact" 749 > 750 Contact Us 751</a> 752 <a 753 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 p-1 font-bold hover:text-gray-600" href="/login" 754 > 755 Your account 756</a> 757 </div> 758 </div> 759 <div 760 class="relative mx-auto mt-20 flex w-full max-w-2xl flex-wrap justify-between gap-x-16 gap-y-12 px-6 lg:max-w-7xl" 761 > 762 <p class="text-sm text-gray-600"> 763 © 2012 - 2026 Laravel News 764 <br/> 765 A division of dotdev inc. 766 </p> 767 <p class="text-sm text-gray-600"> 768 <a 769 class="inline-flex rounded-sm transition duration-300 leading-none focus:outline-none focus-visible:ring-2 focus-visible:ring-red-600/80 text-black hover:text-red-600" href="/about" 770 wire:navigate.hover 771 > 772 Colophon / About 773</a> 774 </p> 775 </div> 776</footer> 777</div> 778
779<script data-navigate-once="true">window.livewireScriptConfig = {"csrf":"4fdpIGE1qNbcQY2IqdbmjMQx5M0ahqWIuWmdg9zt","uri":"\/livewire\/update","progressBar":"","nonce":""};</script>
779 780
781<script src="https://laravel-news.com/a/script.js" defer> 782<!-- Cloudflare Web Analytics -->
vendor: 108 bytes, lines 782-784
782 783<script defer src='https://static.cloudflareinsights.com/beacon.min.js' 784 data-cf-beacon='{"token": "
784036ae43092b6429fbf4c640fd73dc0e2
vendor: 13 bytes, line 784
784"}'></script>
784<!-- End Cloudflare Web Analytics -->
785<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a403652b1e5222f9',t:'MTc5MDI2OTc0OA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
785</body> 786</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.