Skip to content

Landing Site

The SaaS module includes a complete public-facing landing site served from your root domain. It is built with Tailwind CSS v4 and is fully responsive.


Pages

URLDescription
/Home page — hero, features, how-it-works, testimonials, FAQ, CTA
/pricingPricing page with monthly/annual toggle and plan cards
/pricing/{slug}Individual plan detail page
/aboutAbout page
/contactContact page with form
/blogBlog listing (ready for future posts)
/blog/{slug}Individual blog post (coming soon placeholder)

Home Page Sections

The home page is assembled from Blade components. Each section can be customised independently.

ComponentView file
Header / Navcomponents/frontend/header.blade.php
Herocomponents/frontend/hero.blade.php
Client logoscomponents/frontend/client.blade.php
Services / Featurescomponents/frontend/service.blade.php
Pricing previewcomponents/frontend/pricing.blade.php
Blog previewcomponents/frontend/blog.blade.php
Testimonialscomponents/frontend/testimonial.blade.php
Footercomponents/frontend/footer.blade.php

To disable a section, comment it out in Modules/SaaS/resources/views/index.blade.php.


Pricing Page

The pricing page at /pricing fetches plan data from the database via SaaSService::getLandingData(). It supports:

  • Monthly / Annual toggle — switches between billing cycles via JavaScript
  • Savings badge — shows the yearly_discount_percent for annual plans
  • "Most Popular" badge — applied to plans with is_featured = true
  • Contact Sales button — rendered for plans with a cta_url set

Note: The landing CSS is a pre-compiled file at Modules/SaaS/resources/assets/landing/css/app.css. If you add new utility classes, you must add them to this file — it is not processed by Tailwind JIT at runtime.


Header Navigation

The header and mobile menu both include links to:

  • Home (/)
  • Pricing (/pricing)
  • Blog (/blog)
  • About (/about)
  • Contact (/contact)

To edit the navigation, modify:

  • Modules/SaaS/resources/views/components/frontend/header.blade.php
  • Modules/SaaS/resources/views/components/frontend/mobile-menu.blade.php

Customising Content

Replace the logo files at:

Modules/SaaS/resources/assets/landing/images/logo/logo-dark.png
Modules/SaaS/resources/assets/landing/images/logo/logo-light.png

Hero Image

Replace:

Modules/SaaS/resources/assets/landing/images/hero/hero-primary-image.png

Fonts

The landing site uses Remix Icon for icons. Icon font files are at:

Modules/SaaS/resources/assets/landing/fonts/remix/

CSS Customisation

The landing CSS variables control the colour scheme. Edit variables.css:

css
:root {
    --primary: #6366f1;          /* Brand / accent colour */
    --foreground: #0f172a;       /* Body text */
    --background: #ffffff;       /* Page background */
    --foreground-secondary: #64748b; /* Muted text */
}

After editing, serve the file via the asset route (/saas-landing-assets/...) or copy it to public/modules/saas/landing/.


Assets Serving

Landing assets are served dynamically by the application via the route:

/saas-landing-assets/{path}

The LandingController::asset() method streams files from Modules/SaaS/resources/assets/landing/. No php artisan storage:link is needed for these assets.