DEV Community

Neel Bhalodiya
Neel Bhalodiya

Posted on

Inertiajs Server-side Rendering (SSR) For React (Vite Setup)

Before starting, ensure you're using the latest version of Inertia.js. If not, you can upgrade by following the Upgrade Guide.

Step 1: Install Required Packages

For React:

  • You don't need to install any specific package for SSR in React.

For Laravel:

  • You need to install the SSR package for Laravel:

composer require inertiajs/inertia-laravel

Step 2: Create an SSR File

Create an ssr.jsx or ssr.js file inside the resources/js/ directory. The full path should look like this: resources/js/ssr.js. You can use the following command to create the file:
touch resources/js/ssr.js

Image description

  • After creating the file, you need to define the resolve and setup functions for your ssr.jsx or ssr.js.

  • For the exmple this shown you can check here:

Image description

Step 3: Update vite.config.js

  • Now, update your vite.config.js file by adding the SSR property. In the laravel function (after the input function), add the following line ssr: 'resources/js/ssr.js'

Image description

Step 4: Update package.json

  • Next, modify your package.json file to include both a normal build and an SSR build. Replace the existing build script with: "build": "vite build && vite build - ssr"

Image description

  • Now, run the following build command in your terminal:
    npm run build

  • After the build completes, start the SSR service with the following Artisan command:
    php artisan inertia:start-ssr

Step 5: Update app.jsx

  • In your app.jsx, replace createRoot with hydrateRoot to enable SSR.

Image description

Note: Potential Issues with SSR

  • After completing all the steps, you may encounter errors with some React components. This is because certain npm libraries do not support SSR. For example, I faced issues with the lightgallery npm package as it didn't fully support SSR. In such cases, you can conditionally import libraries that don't work with SSR.

Image description

  • With these steps, you should have a fully functional SSR setup for Inertia.js with React using Vite as your bundler.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs