Consent

This site uses third party services that need your consent.

Skip to content
Steven Roland

Building a Simple Marketing Website with Laravel Folio

Laravel Folio is a powerful tool for simplifying routing in Laravel applications. It uses a file-based approach to define routes, making it particularly useful for creating simple websites like marketing pages, blogs, or portfolios. In this guide, we'll walk through the steps to build a simple marketing website using Laravel Folio.

Step 1: Set Up Your Laravel Project

First, you'll need to create a new Laravel project. You can do this using the Laravel installer:

laravel new marketing-website
cd marketing-website

Once your project is set up, you can serve it locally to ensure everything is working:

php artisan serve

Visit http://127.0.0.1:8000 in your browser to see the default Laravel welcome page.

Step 2: Install Laravel Folio

Next, you need to install Laravel Folio. Use Composer to add Folio to your project:

composer require laravel/folio

After installing Folio, run the Artisan command to set it up:

php artisan folio:install

This command will configure Folio to use the resources/views/pages directory for your routes.

Step 3: Create Your First Page

With Folio installed, you can start creating pages. Remove the default resources/views/welcome.blade.php file and create a new directory for your pages if it doesn't exist:

mkdir -p resources/views/pages

Create a new Blade template for your homepage:

touch resources/views/pages/index.blade.php

Add some simple content to this file:

<h1>Welcome to Our Marketing Website</h1>
<p>Discover our products and services.</p>

Visit http://127.0.0.1:8000 again, and you should see your new homepage.

Step 4: Add More Pages

To add more pages, simply create additional Blade files in the resources/views/pages directory. For example, create an "About Us" page:

touch resources/views/pages/about.blade.php

Add content to the about page:

<h1>About Us</h1>
<p>Learn more about our company and team.</p>

This page will be accessible at http://127.0.0.1:8000/about.

Step 5: Use Layouts for Consistency

To maintain a consistent look across your site, create a layout file. Create a new directory for layouts:

mkdir -p resources/views/layouts

Create a layout file:

touch resources/views/layouts/app.blade.php

Add a simple HTML structure with Tailwind CSS for styling:

<html class="bg-gray-50 text-gray-600">
<head>
    <title>{{ config('app.name') }}</title>
    <script src="https://cdn.tailwindcss.com"></script>
</head>
<body>
    <div class="container mx-auto p-4">
        {{ $slot }}
    </div>
</body>
</html>

Use this layout in your pages by extending it:

@extends('layouts.app')

@section('content')
<h1>Welcome to Our Marketing Website</h1>
<p>Discover our products and services.</p>
@endsection

Step 6: Add Route Parameters and Model Binding

Folio supports route parameters and model binding, which allows for dynamic content. For example, to create a page for individual products, you can use:

php artisan make:folio "products/[id]"

This command will create a file resources/views/pages/products/[id].blade.php. You can access the id parameter in the Blade template:

<h1>Product {{ $id }}</h1>
<p>Details about product {{ $id }}.</p>

Conclusion

Laravel Folio simplifies the process of building a marketing website by allowing you to define routes through Blade templates. This approach is efficient for creating content-driven sites without the need for extensive routing files or controllers. By leveraging Laravel Folio, you can quickly set up a marketing site with dynamic content and a consistent layout, making it an excellent choice for small to medium-sized projects.

More posts

Customizing Taxonomy Routes in Statamic

Learn how to customize taxonomy routes in Statamic for better site navigation and SEO. Use default routes or opt for custom solutions with Laravel or the Bonus Routes addon to create user-friendly and integrated URLs.

How to Identify and Deal with a Narcissist

Learn to identify narcissists by their grandiosity, need for admiration, and lack of empathy. Manage relationships by setting boundaries, communicating clearly, and seeking support. Prioritize your well-being and consider professional help if needed.