Over the past few months, we've been working on the next version of Laravel News, and we are happy to have launched it this past weekend. With the launch, we wanted to make an official announcement and talk about some of the changes and improvements made to the site.
The previous version of Laravel News was powered by WordPress, and then all new posts would be pushed into a Laravel app via webhooks. This means I had two systems to manage and keep up to date, so with this version; I wanted to bring everything into one Laravel app. That's why I chose Statamic since you can still utilize all Laravel features outside the CMS.
Statamic powers all the articles, then the community links, the daily newsletter, and all the other custom backend features are powered by custom Laravel code.
We are using a single Linode instance that is managed through Laravel Forge with Cloudflare in front. It's the same setup we've used for years, and it is nice to have a simple structure without a lot of moving parts.
For deployments, we use the Forge auto-deploy feature, and then it just runs some basic caching commands in the deploy script:
git pull origin main composer install --optimize-autoloader --no-dev php artisan config:cache php artisan route:cache php artisan cache:clear php please stache:refresh
The one thing we don't do on deploy is clear all the static cache because we have so many files that it wouldn't be ideal to clear it often. Only when design fixes or improvements are made.
To make the site super fast, we utilize Statamic's static caching system with some unique customizations the Statamic team helped me with and a mixture of Cloudflare, Imigx, and Turbolinks.
The way the static cache is setup is once someone loads a page, it's stored as a static HTML file and Nginx always attempts to load the static file first, then if not found, falls back to pulling it from PHP.
Even with static caching, we have a ton of pages. Over 2500 articles, a dozen categories, numerous tags, pagination on all these, and on and on, because of this the cache gets pretty large, and it's not ideal for us to clear it all the time. Instead, we only clear it when necessary.
Here is a list of all the software and packages we are utilizing for the site:
- Laravel Forge makes server management a breeze.
- Fathom Analytics switched from Google Analytics. Privacy first!
- Imigx for displaying all the images.
- Algolia for the search results
- Laravel Fortify for the frontend authentication.
We hope you like the new design as much as we do, and we will be continuing to make improvements and fixing issues as they pop up. With all major launches, it's hard to get everything perfect and notice anything wrong let us know.