diff --git a/app/Http/Controllers/ProductLandingController.php b/app/Http/Controllers/ProductLandingController.php new file mode 100644 index 0000000..6ab88dc --- /dev/null +++ b/app/Http/Controllers/ProductLandingController.php @@ -0,0 +1,31 @@ +session()->has('mb.email')) { + return redirect()->route($dashboardRoute); + } + + return view('product.landing'); + } + + if (auth()->check()) { + return redirect()->route($dashboardRoute); + } + + return view('product.landing'); + } +} diff --git a/config/product_landing.php b/config/product_landing.php new file mode 100644 index 0000000..482da17 --- /dev/null +++ b/config/product_landing.php @@ -0,0 +1,43 @@ + 'hosting', + 'name' => 'Hosting', + 'logo' => 'images/logo/ladillhosting-logo.svg', + 'icon' => 'hosting.svg', + 'tagline' => 'Fast, managed web hosting', + 'headline' => 'Reliable hosting for your websites', + 'accent' => 'shared, WordPress, and cloud plans', + 'description' => 'Hosting provides managed web hosting for business sites, WordPress, and multi-domain setups — with SSL, backups, and one-click tools.', + 'benefits' => + [ + 0 => + [ + 'title' => 'Plans for every stage', + 'text' => 'Single-domain, multi-domain, WordPress, and reseller options.', + ,] + 1 => + [ + 'title' => 'Free SSL included', + 'text' => 'Secure every site with automatic HTTPS.', + ,] + 2 => + [ + 'title' => 'Managed & monitored', + 'text' => '99.9% uptime with 24/7 platform support.', + ,] + ,] + 'use_cases' => + [ + 0 => 'Business websites', + 1 => 'WordPress blogs', + 2 => 'Agency client hosting', + ,] + 'gradient_from' => '#1c75bc', + 'gradient_to' => '#010c1f', + 'dashboard_route' => 'hosting.dashboard', + 'platform_url' => 'https://localhost', + 'marketing_url' => 'https://localhost/products/hosting', + 'register_url' => 'https://auth.localhost/register', + 'landing_variant' => 'default', +]; diff --git a/resources/views/product/landing.blade.php b/resources/views/product/landing.blade.php new file mode 100644 index 0000000..37bc63f --- /dev/null +++ b/resources/views/product/landing.blade.php @@ -0,0 +1,101 @@ +@php + $landing = (array) config('product_landing'); + $logo = (string) ($landing['logo'] ?? ''); + $logoPath = $logo !== '' ? public_path($logo) : null; + $platformUrl = (string) ($landing['platform_url'] ?? 'https://ladill.com'); + $marketingUrl = (string) ($landing['marketing_url'] ?? $platformUrl); + $signInUrl = route('sso.connect', [ + 'redirect' => route($landing['dashboard_route'] ?? 'login'), + 'interactive' => 1, + ]); + $variant = (string) ($landing['landing_variant'] ?? 'default'); +@endphp + + + + + + {{ $landing['name'] ?? config('app.name') }} — Ladill + + @include('partials.favicon') + + + + @vite(['resources/css/app.css']) + + +
+ +
+
+ @if ($logo !== '') + {{ $landing['name'] ?? config('app.name') }} + @else + {{ $landing['name'] ?? config('app.name') }} + @endif + +
+
+ +
+
+
+

{{ $landing['tagline'] ?? '' }}

+

{{ $landing['headline'] ?? ($landing['name'] ?? '') }}

+

{{ $landing['description'] ?? '' }}

+ + + +

+ Learn more on ladill.com +

+
+ +
+

Why {{ $landing['name'] ?? 'Ladill' }}

+
+ @foreach (($landing['benefits'] ?? []) as $benefit) +
+

{{ $benefit['title'] }}

+

{{ $benefit['text'] }}

+
+ @endforeach +
+ + @if (! empty($landing['use_cases'])) +
+

Ideal for

+
+ @foreach ($landing['use_cases'] as $useCase) + {{ $useCase }} + @endforeach +
+
+ @endif +
+
+
+ + + + diff --git a/routes/web.php b/routes/web.php index d4077f5..2241141 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,5 +1,6 @@ 'https://'.config('app.servers_d // Ladill Hosting — authenticated app for buying + managing hosting (hosting.ladill.com). -Route::get('/', fn () => auth()->check() - ? redirect()->route('hosting.dashboard') - : redirect()->route('sso.connect'))->name('hosting.root'); +Route::get('/', [ProductLandingController::class, 'show'])->name('hosting.landing'); Route::get('/login', [SsoLoginController::class, 'connect'])->name('login'); Route::get('/sso/connect', [SsoLoginController::class, 'connect'])->name('sso.connect');