@extends('frontend.layouts.app') @section('title', $title) @section('description', $description) @section('keywords', $keywords) @section('load_webgl_hover', true) @php $settingsService = app(\App\Services\SettingsService::class); $siteName = $settingsService->get('site_name', config('app.name')); $siteDescription = $settingsService->get('site_description', 'Innovative IT solutions for modern organizations.'); $contactPhone = $settingsService->get('contact_phone', '+263 78 691 2342'); $contactPhones = collect(preg_split('/\s*(?:\/|,|;|\r\n|\r|\n)\s*/', (string) $contactPhone)) ->map(fn ($phone) => trim($phone)) ->filter() ->values(); $contactEmail = $settingsService->get('contact_email', config('mail.from.address')); $assetPath = fn (string $path) => asset('frontend/' . ltrim($path, '/')); $storedAsset = function (?string $path, string $fallback) use ($assetPath) { if (!$path) { return $assetPath($fallback); } $path = trim($path); if (preg_match('/^(https?:)?\/\//i', $path) || str_starts_with($path, '/')) { return $path; } if (str_starts_with($path, 'storage/')) { return asset($path); } if (str_starts_with($path, 'settings/') || str_starts_with($path, 'uploads/')) { return asset('storage/' . $path); } return $assetPath($path); }; $homeImage = fn (?string $path) => $storedAsset($path, 'images/service/hm1-img01.webp'); $settingEnabled = fn (string $key, bool $default = true) => filter_var($settingsService->get($key, $default ? 'true' : 'false'), FILTER_VALIDATE_BOOLEAN); $normaliseHref = fn (?string $href, string $fallback) => trim((string) $href) !== '' ? trim((string) $href) : $fallback; $heroGeneratedImages = [ 'engineers' => 'storage/uploads/generated/ndarama-hero-engineers.png', 'support' => 'storage/uploads/generated/ndarama-hero-support.png', ]; $homeHeroSlides = collect([ ['index' => 1, 'fallback_image' => 'images/hero/hm1-bg01.webp', 'fallback_url' => route('frontend.about')], ['index' => 2, 'fallback_image' => $heroGeneratedImages['engineers'], 'fallback_url' => route('frontend.contact')], ['index' => 3, 'fallback_image' => $heroGeneratedImages['support'], 'fallback_url' => route('frontend.services.index')], ])->filter(fn ($slide) => $settingEnabled("home_hero_slide_{$slide['index']}_enabled", true)) ->map(fn ($slide) => [ 'number' => str_pad((string) $slide['index'], 2, '0', STR_PAD_LEFT), 'label' => $settingsService->get("home_hero_slide_{$slide['index']}_label", 'INNOVATIVE SOLUTIONS'), 'title' => $settingsService->get("home_hero_slide_{$slide['index']}_title", $slide['index'] === 1 ? 'Innovative IT' : ($slide['index'] === 2 ? 'Scalable Digital' : 'Reliable CMS')), 'accent' => $settingsService->get("home_hero_slide_{$slide['index']}_accent", $slide['index'] === 1 ? 'Business' : ($slide['index'] === 2 ? 'Solutions' : 'Platforms')), 'body' => $settingsService->get("home_hero_slide_{$slide['index']}_body") ?: $siteDescription, 'button_label' => $settingsService->get("home_hero_slide_{$slide['index']}_button_label", 'Discover More'), 'url' => $normaliseHref($settingsService->get("home_hero_slide_{$slide['index']}_button_url"), $slide['fallback_url']), 'image' => $storedAsset($settingsService->get("home_hero_slide_{$slide['index']}_image"), $slide['fallback_image']), ])->values(); if ($homeHeroSlides->isEmpty()) { $homeHeroSlides = collect([[ 'number' => '01', 'label' => 'INNOVATIVE SOLUTIONS', 'title' => 'Innovative IT', 'accent' => 'Business', 'body' => $siteDescription, 'button_label' => 'Discover More', 'url' => route('frontend.about'), 'image' => $assetPath('images/hero/hm1-bg01.webp'), ]]); } @endphp @push('head') @if($homeHeroSlides->isNotEmpty()) @endif @endpush @php $partnerLogos = collect(range(1, 6)) ->filter(fn ($index) => $settingEnabled("home_partner_{$index}_enabled", true)) ->map(fn ($index) => [ 'name' => $settingsService->get("home_partner_{$index}_name", "Partner {$index}"), 'url' => $normaliseHref($settingsService->get("home_partner_{$index}_url"), '#'), 'logo' => $storedAsset($settingsService->get("home_partner_{$index}_logo"), 'images/brands/' . str_pad((string) $index, 2, '0', STR_PAD_LEFT) . '.webp'), ]) ->filter(fn ($partner) => !empty($partner['logo'])) ->values(); if ($partnerLogos->isEmpty()) { $partnerLogos = collect(['01', '02', '03', '04', '05', '06'])->map(fn ($brand) => [ 'name' => "Partner {$brand}", 'url' => '#', 'logo' => $assetPath("images/brands/{$brand}.webp"), ]); } $generatedWebsiteImages = [ 'collaboration' => 'storage/uploads/generated/ndarama-collaboration.png', 'engineer' => 'storage/uploads/generated/ndarama-engineer.png', 'support' => 'storage/uploads/generated/ndarama-support.png', ]; $themeArrow = <<<'HTML' HTML; $themeArrowWhite = <<<'HTML' HTML; $fallbackServices = collect([ ['name' => 'Android and IOS Apps Designing', 'category' => 'Coding', 'description' => 'Scalable app experiences for teams, customers, and operations.', 'image' => 'images/service/hm1-img01.webp', 'url' => route('frontend.services.index')], ['name' => 'Digital Transformation and Automation', 'category' => 'Automation', 'description' => 'Connected workflows that reduce manual effort and unlock better visibility.', 'image' => 'images/service/hm1-img02.webp', 'url' => route('frontend.services.index')], ['name' => 'Web and Mobile UI/UX Designing', 'category' => 'Designing', 'description' => 'Clean product interfaces shaped around real users and business goals.', 'image' => 'images/service/hm1-img03.webp', 'url' => route('frontend.services.index')], ]); $serviceItems = $featuredServices->count() ? $featuredServices->take(3)->map(fn ($service) => [ 'name' => $service->name, 'category' => optional($service->category)->name ?? 'Service', 'description' => $service->short_description ?: \Illuminate\Support\Str::limit(strip_tags($service->description), 150), 'image' => $service->image ? 'storage/' . $service->image : null, 'url' => route('frontend.services.show', $service), 'features' => $service->features_list, ]) : $fallbackServices; $fallbackProjects = collect([ ['title' => 'Webx - Modern Website', 'tag' => 'Development', 'description' => 'A modern web platform with clear journeys and measurable outcomes.', 'image' => 'images/project/hm1-img01.webp', 'url' => route('frontend.projects.index')], ['title' => 'Business Strategy', 'tag' => 'Business', 'description' => 'Structured digital strategy for better teams, tools, and decisions.', 'image' => 'images/project/hm1-img02.webp', 'url' => route('frontend.projects.index')], ['title' => '3D Product Designing', 'tag' => 'Designing', 'description' => 'Product presentation and design systems for stronger brand experiences.', 'image' => 'images/project/hm1-img03.webp', 'url' => route('frontend.projects.index')], ['title' => 'Business Development', 'tag' => 'Development', 'description' => 'Growth-focused systems for operations, sales, and service delivery.', 'image' => 'images/project/hm1-img04.webp', 'url' => route('frontend.projects.index')], ]); $projectItems = $featuredProjects->count() ? $featuredProjects->take(4)->map(fn ($project, $index) => [ 'title' => $project->title, 'tag' => optional($project->department)->name ?? $project->status_label, 'description' => \Illuminate\Support\Str::limit(strip_tags($project->description ?: $project->content), 110), 'image' => $project->featured_image ? 'storage/' . $project->featured_image : 'images/project/hm1-img0' . (($index % 4) + 1) . '.webp', 'url' => route('frontend.projects.show', $project->slug), ]) : $fallbackProjects; $fallbackTeam = collect([ ['name' => 'Ndarama Engineering Team', 'position' => 'Software Delivery', 'image' => $generatedWebsiteImages['engineer'], 'url' => route('frontend.teams.index')], ['name' => 'Ndarama Product Team', 'position' => 'Digital Solutions', 'image' => $generatedWebsiteImages['collaboration'], 'url' => route('frontend.teams.index')], ['name' => 'Ndarama Support Team', 'position' => 'Client Success', 'image' => $generatedWebsiteImages['support'], 'url' => route('frontend.teams.index')], ]); $teamItems = $featuredTeams->count() ? $featuredTeams->take(3)->map(fn ($member, $index) => [ 'name' => $member->name, 'position' => $member->position ?: optional($member->department)->name ?: 'Team Member', 'image' => $member->image ? 'storage/' . $member->image : 'images/team/hm1-img0' . (($index % 3) + 1) . '.webp', 'url' => route('frontend.teams.show', $member), 'linkedin' => $member->linkedin, 'twitter' => $member->twitter, ]) : $fallbackTeam; $founderProfile = $featuredTeams->first(function ($member) { $position = strtolower((string) $member->position); return str_contains($position, 'chief executive') || str_contains($position, 'ceo') || str_contains($position, 'founder'); }) ?: $featuredTeams->first(); $fallbackNews = collect([ ['title' => 'Top 10 Most Popular Tools For Marketing', 'date' => '16 Aug, 2025', 'image' => 'images/blog/blog01.webp', 'url' => route('frontend.news.index')], ['title' => 'Business Growing Tips for Sales Globally', 'date' => '17 Aug, 2025', 'image' => 'images/blog/blog02.webp', 'url' => route('frontend.news.index')], ['title' => 'Installation Sales Navigator Extension on Chrome', 'date' => '29 Aug, 2025', 'image' => 'images/blog/blog03.webp', 'url' => route('frontend.news.index')], ]); $newsItems = $featuredNews->count() ? $featuredNews->take(3)->map(fn ($news, $index) => [ 'title' => $news->title, 'date' => optional($news->published_at)->format('d M, Y'), 'image' => $news->featured_image ? 'storage/' . $news->featured_image : 'images/blog/blog0' . (($index % 3) + 1) . '.webp', 'url' => route('frontend.news.show', $news->slug), ]) : $fallbackNews; @endphp @push('styles') @endpush @section('content') {{-- Hero banner with slider content and primary CTA --}}
@foreach($homeHeroSlides as $slide)
first) style="background-image: url('{{ $slide['image'] }}');" @else data-bg-src="{{ $slide['image'] }}" @endif >
TECHNOLOGY BUSINESS SOLUTION INNOVATION
.. {{ $slide['label'] }}

{{ $slide['title'] }}
{{ $slide['accent'] }}

{{ $slide['body'] }}

{{ $slide['button_label'] }} {{ $slide['button_label'] }} {!! $themeArrow !!}
{{ $slide['number'] }}
@endforeach
{{-- Feature highlights and quick social-proof metrics --}}
0
active projects
Explore MoreExplore More {!! $themeArrowWhite !!}
@foreach($serviceItems->take(2) as $service)

{{ $service['name'] }}

{{ $service['description'] }}

@endforeach
{{-- About preview with company intro and supporting imagery --}}
Established 2024

Empowering Your Business with Innovative IT Solutions

Black African software professionals collaborating on Ndarama digital systems
{{ $founderProfile?->name ?? $siteName }}

{{ $founderProfile?->name ?? $siteName }}

{{ $founderProfile?->position ?? 'Founder and CEO' }} - {{ $siteName }}

{{ $siteDescription }}

Discover MoreDiscover More {!! $themeArrow !!}
Black African support specialists helping Ndarama clients
{{-- Services grid showcasing key offerings --}}
Services

Empowering Companies with Reliable
and Scalable IT Services

@foreach($serviceItems as $service)
{{ str_pad($loop->iteration, 2, '0', STR_PAD_LEFT) }}.
{{ strtoupper($service['category']) }}

{{ $service['name'] }}

{{ $service['description'] }}

Learn More
@foreach(collect($service['features'] ?? [])->take(5) as $feature) {{ $feature }} @endforeach @if(empty($service['features'])) WordpressShopifyWebflowHosting @endif
@endforeach
{{-- Why choose us section with value proposition points --}}
Why Choose Us

Proven Track Record of Driving Digital Transformation

@foreach([ ['title' => 'Cutting-Edge Technology', 'text' => 'Modern tools selected around your business needs.', 'icon' => 'images/choose/hm1-icon01.webp'], ['title' => 'Proven Client Satisfaction', 'text' => 'CMS-backed content, clear workflows, and reliable delivery.', 'icon' => 'images/choose/hm1-icon02.webp'], ] as $item)

{{ $item['title'] }}

{{ $item['text'] }}

@endforeach
Discover MoreDiscover More {!! $themeArrow !!}
Ndarama Technologies team collaboration

Best
Agency

{{ date('Y') }}
    @foreach(['Digital Marketing', 'Branding Solutions', 'Custom Website', 'Innovation Design', 'Cyber Security'] as $marquee)
  • {{ $marquee }}
  • @endforeach
{{-- Process timeline describing delivery steps --}}

PROCESS

@foreach([ ['title' => 'Consult & Understand', 'text' => 'We map your operations, users, data, and the real business problem before writing code.', 'icon' => 'images/process/hm1-icon1.webp'], ['title' => 'Plan & Architect', 'text' => 'We shape the workflow, modules, integrations, timelines, and delivery priorities.', 'icon' => 'images/process/hm1-icon2.webp'], ['title' => 'Build & Deploy', 'text' => 'We deliver secure web, mobile, ERP, billing, and data systems with practical rollout support.', 'icon' => 'images/process/hm1-icon3.webp'], ['title' => 'Support & Improve', 'text' => 'We monitor adoption, fix friction, and keep improving the platform as your needs grow.', 'icon' => 'images/process/hm1-icon4.webp'], ] as $step)

STEP {{ str_pad($loop->iteration, 2, '0', STR_PAD_LEFT) }}

{{ $step['title'] }}

{{ $step['text'] }}

@endforeach
{{-- Recent projects carousel/list --}}
Projects

We Have Successfully Completed
Creative Projects

@foreach($projectItems as $project)
{{ $project['title'] }}
{{ strtoupper($project['tag']) }}

{{ $project['title'] }}

{{ $project['description'] }}

@endforeach
{{-- Contact and CTA area with phone/email details --}}
Get in Touch

Connect with us for next
Gen Business Success

Ask for a call back

@csrf @include('frontend.partials.contact-spam-fields')
Ndarama Technologies support team

Call us anytime

@forelse($contactPhones as $phone) {{ $phone }} @empty {{ $contactPhone }} @endforelse

{{-- Team spotlight cards --}}
Our Team

Meet the Expert Team Powering Our
Goals and Ambitions

@foreach($teamItems as $member)
{{ $member['name'] }}

{{ $member['name'] }}

{{ $member['position'] }}

@endforeach
{{-- Testimonials section intentionally hidden for now. @if(false)
Testimonial

Helping Organizations Build
Reliable Digital Operations

Projects and
Digital Systems

@foreach($partnerLogos->concat($partnerLogos->take(1)) as $partner) @endforeach
@foreach([ ['name' => 'Ndarama Client', 'role' => 'Operations Lead', 'image' => 'images/project/hm1-img01.webp'], ['name' => 'Ndarama Client', 'role' => 'Business Manager', 'image' => 'images/project/hm1-img02.webp'], ['name' => 'Ndarama Client', 'role' => 'Technology Partner', 'image' => 'images/project/hm1-img03.webp'], ['name' => 'Ndarama Client', 'role' => 'Operations Lead', 'image' => 'images/project/hm1-img01.webp'], ] as $testimonial)
{{ $testimonial['name'] }}

{{ $testimonial['name'] }}

{{ $testimonial['role'] }}

(4.8)

"Technically sound delivery, clear communication, and a website platform our team can actually manage."

@endforeach
@endif --}} {{-- Pricing section intentionally hidden for now. @if(false)
Pricing Plans

Choose the Perfect Plans for
Your Business Growth

@foreach([ ['plan' => 'Starter', 'price' => '29 USD', 'popular' => false, 'features' => ['3 Users available', 'Limited tools', 'Unlimited support']], ['plan' => 'Growth', 'price' => '39 USD', 'popular' => true, 'features' => ['5 Users available', 'CMS management', 'Unlimited support', 'API access']], ['plan' => 'Business', 'price' => '59 USD', 'popular' => false, 'features' => ['10 Users available', 'Advanced CMS tools', 'Priority support', 'Premium apps']], ] as $plan)
@if($plan['popular']) @endif
@if($plan['popular'])
@endif
{{ $plan['plan'] }}

{{ $plan['price'] }}

/ month

Organize daily tasks and content updates.

Join this PlanJoin this Plan

Key Features

    @foreach($plan['features'] as $feature)
  • {{ $feature }}
  • @endforeach
  • Custom enterprise SLA
@endforeach
@endif --}}
@foreach([ ['count' => $statistics['total_projects'], 'suffix' => '+', 'label' => 'Successful Projects', 'icon' => 'images/counter/hm1-icon01.webp'], ['count' => $statistics['total_news'], 'suffix' => '+', 'label' => 'Published Articles', 'icon' => 'images/counter/hm1-icon02.webp'], ['count' => 96, 'suffix' => '%', 'label' => 'Satisfaction Rates', 'icon' => 'images/counter/hm1-icon03.webp'], ] as $counter)

0{{ $counter['suffix'] }}

{{ $counter['label'] }}
@endforeach
{{-- Mid-page call-to-action block --}}
Get in Touch

Helping Organizations Turn
Daily Operations into
Reliable Digital Systems

{{-- Latest blog posts preview --}}
Latest Blog

Read our Latest Insights from
Update Blog Posts

@foreach($newsItems as $news)
@endforeach
{{-- Newsletter signup strip --}}
@include('frontend.partials.events-tip', [ 'tip_title' => 'Explore upcoming events', 'tip_text' => 'Browse our events calendar for details. If registration is open, you can sign up from the event page.', 'tip_href' => route('frontend.events.index'), ]) @endsection