0xSheff / laratron

🖼Laravel SSR using Rendertron 🖼

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Laratron

🖼Laravel SSR using Rendertron 🖼

About

Since we know that not all crawlers can render Javascript, we have to implement SSR (Server-Side Rendering). Implementing SSR in Laravel may be a headache and the easiest solution could be Rendertron.

Laratron is a tiny middleware for your Laravel app that detects whether the visitor is a crawler and passes the request to Rendertron.

About Rendertron (from official Readme):

Rendertron is designed to enable your Progressive Web App (PWA) to serve the correct content to any bot that doesn't render or execute JavaScript. Rendertron runs as a standalone HTTP server. Rendertron renders requested pages using Headless Chrome, auto-detecting when your PWA has completed loading and serializes the response back to the original request. To use Rendertron, your application configures middleware to determine whether to proxy a request to Rendertron. Rendertron is compatible with all client side technologies, including web components.

Installation

First of all we need to install Rendertron. Please consult the official documentation for more info. To install Laratron run this inside your project:

composer require sandulat/laratron

Configuration

Laratron exposes only one simple option, the URL of Rendertron, which can be set in your env file:

RENDERTRON_URL=http://localhost:3000

Usage

After installation you can use the middleware laratron on any route that you'd like to be server-side rendered.

Route::get('/', function () {
    return view('home');
})->middleware('laratron');

Or you can apply it on the entire web middleware group in App\Http\Kernel:

'web' => [
    // ...
    \Sandulat\Laratron\Http\Middleware\LaratronMiddleware::class,
],

Credits

Created by Stratulat Alexandru.

About

🖼Laravel SSR using Rendertron 🖼

License:MIT License


Languages

Language:PHP 100.0%