Welcome to the new Laravel News
Published on by Eric L. Barnes
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.
New Design
This brand new design was created by Zaengle and the goal was to modernize the previous design that they also created back in 2016. The logo also got a nice little improvement.
They also helped on the tech side by bringing the site to Statamic and fully developing the frontend. For more details on the frontend stack, check out their write-up.
Statamic
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.
Deployment
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 maincomposer install --optimize-autoloader --no-devphp artisan config:cachephp artisan route:cachephp artisan cache:clearphp 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.
Caching
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.
For instance, when a new post is published, the home page and category pages have their cache cleared. The rest we leave alone. Of course, this does mean that some things that should be dynamic will never change, but we will be fixing them by utilizing JavaScript to load those dynamically.
Software Used
Here is a list of all the software and packages we are utilizing for the site:
- Statamic
- Linode
- Cloudflare
- 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.
Wrap Up
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.
Eric is the creator of Laravel News and has been covering Laravel since 2012.