tenext redesign

This commit is contained in:
2026-08-03 14:42:01 +05:30
parent 1e3f225bed
commit 6625bb9018
78 changed files with 2798 additions and 859 deletions

View File

@@ -1,30 +1,101 @@
import { Navbar } from "@/components/aiero/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { MarqueeStrip } from "@/components/aiero/MarqueeStrip";
import { Navbar } from "@/components/sections/Navbar";
import { ContactFormSection } from "@/components/shared/ContactFormSection";
import { AboutIntroSection } from "@/components/aiero/about/AboutIntroSection";
import { MissionSection } from "@/components/aiero/about/MissionSection";
import { PartnerLogosSection } from "@/components/shared/PartnerLogosSection";
import { TeamSection } from "@/components/aiero/about/TeamSection";
import { AboutHero } from "@/components/sections/about/AboutHero";
import { WhoWeAre } from "@/components/sections/about/WhoWeAre";
import { OurStory } from "@/components/sections/about/OurStory";
import { IconCardGrid } from "@/components/sections/about/IconCardGrid";
import { DeliveryModel } from "@/components/sections/about/DeliveryModel";
import { AboutPracticeTeams } from "@/components/sections/about/AboutPracticeTeams";
import { AboutIndustries } from "@/components/sections/about/AboutIndustries";
import { AboutCTA } from "@/components/sections/about/AboutCTA";
import {
pillars,
whyTenext,
capabilities,
techEcosystem,
trustPrinciples,
} from "@/data/about";
export const metadata = {
title: "About us - tenext",
title: "About Us",
description:
"Tenext Technologies helps enterprises turn digital transformation into predictable business outcomes across cloud, data, AI, and product engineering.",
};
export default function AboutPage() {
return (
<>
<Navbar />
<main className="min-h-screen bg-tenext-dark">
<PageTitleBanner
title="About us"
breadcrumbs={[{ label: "About us" }]}
<main className="bg-white">
{/* 1 — Hero */}
<AboutHero />
{/* 2 — Who we are */}
<WhoWeAre />
{/* 3 — Our story */}
<OurStory />
{/* 4 — Mission / Vision / Values */}
<IconCardGrid
eyebrow="what drives us"
title="Mission, vision, and the values behind our work"
items={pillars}
columns={3}
theme="dark"
/>
<AboutIntroSection />
<MarqueeStrip text="/ Neural Networks in shaping the future of technology." />
<MissionSection />
<PartnerLogosSection />
<TeamSection />
{/* 5 — Why Tenext */}
<IconCardGrid
eyebrow="why tenext"
title="What sets our engineering apart"
items={whyTenext}
columns={3}
theme="light"
/>
{/* 6 — Capabilities */}
<IconCardGrid
eyebrow="capabilities"
title="Engineering capabilities across the enterprise"
items={capabilities}
columns={3}
theme="surface"
/>
{/* 7 — Industries */}
<AboutIndustries />
{/* 8 — Delivery model */}
<DeliveryModel />
{/* 9 — Practice teams */}
<AboutPracticeTeams />
{/* 10 — Technology ecosystem */}
<IconCardGrid
eyebrow="technology ecosystem"
title="The technologies we build with"
description="We work across the modern enterprise stack — matched to your landscape, not to a single vendor."
items={techEcosystem}
columns={4}
theme="surface"
/>
{/* 11 — Enterprise trust */}
<IconCardGrid
eyebrow="enterprise trust"
title="Why enterprises rely on Tenext"
description="Not testimonials — the principles, standards, and culture that make delivery dependable."
items={trustPrinciples}
columns={4}
theme="dark"
/>
{/* 12 — Final CTA */}
<AboutCTA />
{/* 13 — Contact */}
<ContactFormSection />
</main>
</>

67
app/careers/page.tsx Normal file
View File

@@ -0,0 +1,67 @@
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { SectionContainer } from "@/components/shared/SectionContainer";
import { PageContainer } from "@/components/shared/PageContainer";
import { SectionHeading } from "@/components/shared/SectionHeading";
import { RevealOnView } from "@/components/shared/RevealOnView";
import { tenextButton as TenextButton } from "@/components/shared/Button";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
import { openRoles } from "@/data/site-pages";
export const metadata = {
title: "Careers",
description:
"Build the digital backbone for enterprises. Explore open roles at Tenext Technologies in Coimbatore.",
};
export default function CareersPage() {
return (
<>
<Navbar />
<main className="bg-white">
<PageTitleBanner
title="Careers"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Careers" }]}
/>
<SectionContainer paddingY="lg" className="px-[20px]">
<PageContainer>
<SectionHeading
tag="[ join us ]"
title="Build the digital backbone for enterprises"
description="We are engineers, designers, and problem-solvers who care about outcomes. These are the disciplines we hire for — introduce yourself and we will be in touch when a role opens."
titleClassName="text-tenext-dark max-w-[720px]"
descriptionClassName="max-w-[620px]"
className="mb-[50px]"
/>
<div className="flex flex-col gap-[16px]">
{openRoles.map((role, index) => (
<RevealOnView key={role.id} delay={index * 70}>
<div className="flex flex-col gap-[20px] rounded-[25px] border border-tenext-card-border p-[30px_40px] transition-transform duration-300 hover:-translate-y-1 md:flex-row md:items-center md:justify-between">
<div>
<h3 className="font-[var(--font-sora)] text-[22px] font-bold leading-[1.3] text-tenext-dark">
{role.title}
</h3>
<p className="mt-[6px] text-[15px] text-tenext-text-muted">
{role.location} · {role.type}
</p>
</div>
<TenextButton
href="/contacts"
variant="gradient-border"
className="shrink-0 rounded-[25px] px-[30px] py-[14px] text-[15px] font-medium"
showArrow={true}
>
Get in touch
</TenextButton>
</div>
</RevealOnView>
))}
</div>
</PageContainer>
</SectionContainer>
<PreFooterCTA />
</main>
</>
);
}

59
app/case-studies/page.tsx Normal file
View File

@@ -0,0 +1,59 @@
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { SectionContainer } from "@/components/shared/SectionContainer";
import { PageContainer } from "@/components/shared/PageContainer";
import { SectionHeading } from "@/components/shared/SectionHeading";
import { RevealOnView } from "@/components/shared/RevealOnView";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
import { caseStudies } from "@/data/site-pages";
export const metadata = {
title: "Case Studies",
description:
"How Tenext helps enterprises transform — representative engagements across retail, financial services, and manufacturing.",
};
export default function CaseStudiesPage() {
return (
<>
<Navbar />
<main className="bg-white">
<PageTitleBanner
title="Case Studies"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Case Studies" }]}
/>
<SectionContainer paddingY="lg" className="px-[20px]">
<PageContainer>
<SectionHeading
tag="[ our work ]"
title="How we deliver across industries"
description="Named client case studies will be published here as they are approved. In the meantime, here is how Tenext approaches engagements in the industries it serves."
titleClassName="text-tenext-dark max-w-[720px]"
descriptionClassName="max-w-[620px]"
className="mb-[50px]"
/>
<div className="grid grid-cols-1 gap-[20px] md:grid-cols-2 lg:grid-cols-3">
{caseStudies.map((item, index) => (
<RevealOnView key={item.id} delay={index * 90}>
<article className="flex h-full flex-col gap-[15px] rounded-[25px] border border-tenext-card-border p-[40px] transition-transform duration-300 hover:-translate-y-2">
<span className="tenext-subheading text-tenext-teal" style={{ fontFamily: "var(--font-sora)" }}>
{item.industry}
</span>
<h3 className="font-[var(--font-sora)] text-[22px] font-bold leading-[1.3] text-tenext-dark">
{item.title}
</h3>
<p className="text-[16px] leading-[1.7] text-tenext-text-muted">
{item.description}
</p>
</article>
</RevealOnView>
))}
</div>
</PageContainer>
</SectionContainer>
<PreFooterCTA />
</main>
</>
);
}

View File

@@ -1,10 +1,12 @@
import { Navbar } from "@/components/aiero/Navbar";
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { ContactFormSection } from "@/components/shared/ContactFormSection";
import { MapSection } from "@/components/aiero/contacts/MapSection";
import { MapSection } from "@/components/sections/contacts/MapSection";
export const metadata = {
title: "Contacts - tenext",
title: "Contact",
description:
"Talk to Tenext Technologies about cloud, data, AI, and product engineering for your enterprise.",
};
export default function ContactsPage() {
@@ -13,8 +15,8 @@ export default function ContactsPage() {
<Navbar />
<main className="min-h-screen bg-tenext-dark">
<PageTitleBanner
title="Contacts"
breadcrumbs={[{ label: "Contacts" }]}
title="Contact"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Contact" }]}
/>
<ContactFormSection />
<MapSection />

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -478,8 +478,21 @@ button {
.navbar-reveal,
.hero-reveal,
.scroll-widget,
.dropdown-reveal,
.reveal-on-view {
opacity: 1;
transform: none;
}
/* Stop looping / decorative motion entirely */
.marquee-track,
.hero-bg-motion,
.scroll-widget .scroll-btn-decoration {
animation: none !important;
}
/* Neutralize hover-lift so pointer movement doesn't shift layout */
.tenext-card:hover {
transform: none;
}
}

29
app/icon.tsx Normal file
View File

@@ -0,0 +1,29 @@
import { ImageResponse } from "next/og";
// Generated Tenext favicon — replaces the framework's default icon.
export const size = { width: 32, height: 32 };
export const contentType = "image/png";
export default function Icon() {
return new ImageResponse(
(
<div
style={{
width: "100%",
height: "100%",
display: "flex",
alignItems: "center",
justifyContent: "center",
background: "#1F1F1F",
color: "#45D0BD",
fontSize: 22,
fontWeight: 700,
fontFamily: "sans-serif",
}}
>
T
</div>
),
{ ...size }
);
}

34
app/industries/page.tsx Normal file
View File

@@ -0,0 +1,34 @@
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { MarqueeStrip } from "@/components/sections/MarqueeStrip";
import { AnchoredCardGrid } from "@/components/shared/AnchoredCardGrid";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
import { industries } from "@/data/site-pages";
export const metadata = {
title: "Industries",
description:
"Enterprise technology solutions for retail, financial services, healthcare, manufacturing, and education.",
};
export default function IndustriesPage() {
return (
<>
<Navbar />
<main className="bg-white">
<PageTitleBanner
title="Industries"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Industries" }]}
/>
<AnchoredCardGrid
tag="[ industries ]"
title="Depth across the industries you operate in"
description="We bring domain understanding and engineering rigor to the sectors where Tenext delivers transformation."
items={industries}
/>
<MarqueeStrip text="/ Building the digital backbone for enterprises across industries." />
<PreFooterCTA />
</main>
</>
);
}

View File

@@ -1,6 +1,7 @@
import type { Metadata } from "next";
import { Manrope, Sora, DM_Sans } from "next/font/google";
import { Footer } from "@/components/shared/Footer";
import { siteConfig } from "@/data/site-config";
import "./globals.css";
const manrope = Manrope({
@@ -21,10 +22,47 @@ const dmSans = DM_Sans({
weight: ["400", "500", "600", "700"],
});
const title =
"Tenext Technologies — Enterprise Digital Transformation, Cloud, Data & AI";
const description =
"Tenext Technologies helps enterprises transform with cloud, data, AI, and product engineering — delivering predictable outcomes, lower total cost of ownership, and accelerated time to value.";
export const metadata: Metadata = {
title: "Tenext Technologies — Enterprise Digital Transformation, Cloud, Data & AI",
description:
"Tenext Technologies helps enterprises transform with cloud, data, AI, and product engineering — delivering predictable outcomes, lower total cost of ownership, and accelerated time to value.",
metadataBase: new URL(siteConfig.url),
title: {
default: title,
template: "%s | Tenext Technologies",
},
description,
alternates: { canonical: "/" },
openGraph: {
type: "website",
siteName: siteConfig.legalName,
url: siteConfig.url,
title,
description,
},
twitter: {
card: "summary_large_image",
title,
description,
},
};
const organizationJsonLd = {
"@context": "https://schema.org",
"@type": "Organization",
name: siteConfig.legalName,
url: siteConfig.url,
email: siteConfig.email,
telephone: siteConfig.phoneRaw,
address: {
"@type": "PostalAddress",
streetAddress: siteConfig.address.line1,
addressLocality: "Coimbatore",
addressCountry: "IN",
},
sameAs: siteConfig.socials.map((s) => s.url),
};
export default function RootLayout({
@@ -38,6 +76,12 @@ export default function RootLayout({
className={`${manrope.variable} ${sora.variable} ${dmSans.variable}`}
>
<body suppressHydrationWarning>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{
__html: JSON.stringify(organizationJsonLd),
}}
/>
{children}
<Footer />
</body>

49
app/not-found.tsx Normal file
View File

@@ -0,0 +1,49 @@
import { Navbar } from "@/components/sections/Navbar";
import { tenextButton as TenextButton } from "@/components/shared/Button";
import { PageContainer } from "@/components/shared/PageContainer";
export const metadata = {
title: "Page not found",
};
export default function NotFound() {
return (
<>
<Navbar />
<main className="bg-white">
<section className="flex min-h-[70vh] items-center px-[20px] py-[100px]">
<PageContainer className="flex flex-col items-center text-center">
<span className="gradient-text-purple font-[var(--font-manrope)] text-[clamp(90px,18vw,200px)] font-extrabold leading-none">
404
</span>
<h1 className="mt-[10px] max-w-[620px] font-[var(--font-sora)] text-[clamp(28px,4vw,48px)] font-bold leading-[1.15] text-tenext-dark">
We couldn&apos;t find that page
</h1>
<p className="mt-[20px] max-w-[520px] text-[16px] leading-[1.8] text-tenext-text-muted">
The page you&apos;re looking for may have moved or no longer
exists. Let&apos;s get you back on track.
</p>
<div className="mt-[40px] flex flex-wrap items-center justify-center gap-[16px]">
<TenextButton
href="/"
variant="gradient-fill"
className="rounded-[25px] px-[35px] py-[15px] text-[15px] font-semibold"
showArrow={false}
>
Back to home
</TenextButton>
<TenextButton
href="/contacts"
variant="gradient-border"
className="rounded-[25px] px-[35px] py-[15px] text-[15px] font-medium"
showArrow={true}
>
Contact us
</TenextButton>
</div>
</PageContainer>
</section>
</main>
</>
);
}

65
app/opengraph-image.tsx Normal file
View File

@@ -0,0 +1,65 @@
import { ImageResponse } from "next/og";
// Static social-share image for the site (1200×630).
// Next.js exposes this as og:image and twitter:image automatically.
export const alt = "Tenext Technologies — Enterprise Digital Transformation";
export const size = { width: 1200, height: 630 };
export const contentType = "image/png";
export default function OpengraphImage() {
return new ImageResponse(
(
<div
style={{
width: "100%",
height: "100%",
display: "flex",
flexDirection: "column",
justifyContent: "space-between",
background: "#1F1F1F",
padding: "80px",
fontFamily: "sans-serif",
}}
>
<div style={{ display: "flex", alignItems: "center", gap: "16px" }}>
<div
style={{
width: "20px",
height: "20px",
borderRadius: "9999px",
background: "#45D0BD",
}}
/>
<div
style={{
color: "#FFFFFF",
fontSize: "34px",
fontWeight: 700,
letterSpacing: "-0.02em",
}}
>
Tenext Technologies
</div>
</div>
<div
style={{
color: "#FFFFFF",
fontSize: "68px",
fontWeight: 800,
lineHeight: 1.1,
letterSpacing: "-0.03em",
maxWidth: "900px",
}}
>
Engineering predictable outcomes from your digital investments
</div>
<div style={{ color: "#87899B", fontSize: "30px", fontWeight: 500 }}>
Cloud · Data · AI · Product Engineering · Digital Commerce
</div>
</div>
),
{ ...size }
);
}

View File

@@ -1,17 +1,17 @@
import { Navbar } from "@/components/aiero/Navbar";
import { HeroSection } from "@/components/aiero/HeroSection";
import { CardsGrid } from "@/components/aiero/CardsGrid";
import { PossibilitiesSection } from "@/components/aiero/PossibilitiesSection";
import { TinkerSection } from "@/components/aiero/TinkerSection";
import { MarqueeStrip } from "@/components/aiero/MarqueeStrip";
import { FeaturesSection } from "@/components/aiero/FeaturesSection";
import { WOWSection } from "@/components/aiero/WOWSection";
import { BenefitsGridSection } from "@/components/aiero/BenefitsGridSection";
import { MetricsSection } from "@/components/aiero/MetricsSection";
import { HowItWorksSection } from "@/components/aiero/HowItWorksSection";
import { TeamSection } from "@/components/aiero/about/TeamSection";
import { TestimonialsSection } from "@/components/aiero/services/TestimonialsSection";
import { BlogSection } from "@/components/aiero/BlogSection";
import { Navbar } from "@/components/sections/Navbar";
import { HeroSection } from "@/components/sections/HeroSection";
import { CardsGrid } from "@/components/sections/CardsGrid";
import { PossibilitiesSection } from "@/components/sections/PossibilitiesSection";
import { TinkerSection } from "@/components/sections/TinkerSection";
import { MarqueeStrip } from "@/components/sections/MarqueeStrip";
import { FeaturesSection } from "@/components/sections/FeaturesSection";
import { WOWSection } from "@/components/sections/WOWSection";
import { BenefitsGridSection } from "@/components/sections/BenefitsGridSection";
import { MetricsSection } from "@/components/sections/MetricsSection";
import { HowItWorksSection } from "@/components/sections/HowItWorksSection";
import { TeamSection } from "@/components/sections/about/TeamSection";
import { DeliveryPrinciplesSection } from "@/components/sections/services/DeliveryPrinciplesSection";
import { BlogSection } from "@/components/sections/BlogSection";
import { PartnerLogosSection } from "@/components/shared/PartnerLogosSection";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
@@ -19,7 +19,7 @@ export default function Home() {
return (
<main className="bg-white">
<div className="absolute left-5 right-5 top-0 z-50">
<Navbar />
<Navbar variant="overlay" />
</div>
<HeroSection />
<CardsGrid />
@@ -38,7 +38,7 @@ export default function Home() {
<MetricsSection />
<HowItWorksSection />
<TeamSection />
<TestimonialsSection />
<DeliveryPrinciplesSection />
<BlogSection />
<PartnerLogosSection />
<PreFooterCTA />

27
app/privacy/page.tsx Normal file
View File

@@ -0,0 +1,27 @@
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { LegalContent } from "@/components/shared/LegalContent";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
import { privacyPolicy } from "@/data/legal";
export const metadata = {
title: "Privacy Policy",
description:
"How Tenext Technologies collects, uses, and protects information you share through this website.",
};
export default function PrivacyPage() {
return (
<>
<Navbar />
<main className="bg-white">
<PageTitleBanner
title="Privacy Policy"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Privacy Policy" }]}
/>
<LegalContent sections={privacyPolicy} />
<PreFooterCTA />
</main>
</>
);
}

59
app/resources/page.tsx Normal file
View File

@@ -0,0 +1,59 @@
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { SectionContainer } from "@/components/shared/SectionContainer";
import { PageContainer } from "@/components/shared/PageContainer";
import { SectionHeading } from "@/components/shared/SectionHeading";
import { RevealOnView } from "@/components/shared/RevealOnView";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
import { resources } from "@/data/site-pages";
export const metadata = {
title: "Resources",
description:
"Ideas for the digital enterprise — perspectives on cloud, data, AI, and modern engineering.",
};
export default function ResourcesPage() {
return (
<>
<Navbar />
<main className="bg-white">
<PageTitleBanner
title="Resources"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Resources" }]}
/>
<SectionContainer paddingY="lg" className="px-[20px]">
<PageContainer>
<SectionHeading
tag="[ insights ]"
title="The areas we help enterprises navigate"
description="Articles and guides will be published here. These are the domains Tenext advises on across cloud, data, AI, and product engineering."
titleClassName="text-tenext-dark max-w-[720px]"
descriptionClassName="max-w-[620px]"
className="mb-[50px]"
/>
<div className="grid grid-cols-1 gap-[20px] md:grid-cols-2 lg:grid-cols-3">
{resources.map((item, index) => (
<RevealOnView key={item.id} delay={index * 90}>
<article className="flex h-full flex-col gap-[15px] rounded-[25px] border border-tenext-card-border p-[40px] transition-transform duration-300 hover:-translate-y-2">
<div className="text-[13px] font-semibold uppercase tracking-[0.1em] text-tenext-teal">
{item.category}
</div>
<h3 className="font-[var(--font-sora)] text-[22px] font-bold leading-[1.3] text-tenext-dark">
{item.title}
</h3>
<p className="text-[16px] leading-[1.7] text-tenext-text-muted">
{item.description}
</p>
</article>
</RevealOnView>
))}
</div>
</PageContainer>
</SectionContainer>
<PreFooterCTA />
</main>
</>
);
}

13
app/robots.ts Normal file
View File

@@ -0,0 +1,13 @@
import type { MetadataRoute } from "next";
import { siteConfig } from "@/data/site-config";
export default function robots(): MetadataRoute.Robots {
return {
rules: {
userAgent: "*",
allow: "/",
},
sitemap: `${siteConfig.url}/sitemap.xml`,
host: siteConfig.url,
};
}

View File

@@ -1,16 +1,18 @@
import { Navbar } from "@/components/aiero/Navbar";
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { MarqueeStrip } from "@/components/aiero/MarqueeStrip";
import { MarqueeStrip } from "@/components/sections/MarqueeStrip";
import { ContactFormSection } from "@/components/shared/ContactFormSection";
import { PartnerLogosSection } from "@/components/shared/PartnerLogosSection";
import { ServiceCardsGrid } from "@/components/aiero/services/ServiceCardsGrid";
import { ServiceFeaturesSection } from "@/components/aiero/services/ServiceFeaturesSection";
import { TestimonialsSection } from "@/components/aiero/services/TestimonialsSection";
import { PricingSection } from "@/components/aiero/services/PricingSection";
import { ServiceCardsGrid } from "@/components/sections/services/ServiceCardsGrid";
import { ServiceFeaturesSection } from "@/components/sections/services/ServiceFeaturesSection";
import { DeliveryPrinciplesSection } from "@/components/sections/services/DeliveryPrinciplesSection";
import { EngagementModelsSection } from "@/components/sections/services/EngagementModelsSection";
export const metadata = {
title: "Services - tenext",
title: "Services",
description:
"Technology engineering, cloud, AI & data science, enterprise mobility, and digital commerce services for enterprises.",
};
export default function ServicesPage() {
@@ -19,14 +21,14 @@ export default function ServicesPage() {
<Navbar />
<main className="min-h-screen bg-tenext-dark">
<PageTitleBanner
title="Services Page"
breadcrumbs={[{ label: "Services Page" }]}
title="Services"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Services" }]}
/>
<ServiceCardsGrid />
<MarqueeStrip text="/ Neural Networks in shaping the future of technology." />
<MarqueeStrip text="/ Building the digital backbone for enterprises across industries." />
<ServiceFeaturesSection />
<TestimonialsSection />
<PricingSection />
<DeliveryPrinciplesSection />
<EngagementModelsSection />
<PartnerLogosSection />
<ContactFormSection />
</main>

25
app/sitemap.ts Normal file
View File

@@ -0,0 +1,25 @@
import type { MetadataRoute } from "next";
import { siteConfig } from "@/data/site-config";
/** Top-level routes, highest priority first. */
const routes = [
{ path: "/", priority: 1.0 },
{ path: "/about", priority: 0.8 },
{ path: "/services", priority: 0.9 },
{ path: "/solutions", priority: 0.9 },
{ path: "/industries", priority: 0.8 },
{ path: "/case-studies", priority: 0.7 },
{ path: "/resources", priority: 0.6 },
{ path: "/careers", priority: 0.6 },
{ path: "/contacts", priority: 0.7 },
{ path: "/privacy", priority: 0.3 },
{ path: "/terms", priority: 0.3 },
];
export default function sitemap(): MetadataRoute.Sitemap {
return routes.map(({ path, priority }) => ({
url: `${siteConfig.url}${path}`,
changeFrequency: "monthly",
priority,
}));
}

34
app/solutions/page.tsx Normal file
View File

@@ -0,0 +1,34 @@
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { MarqueeStrip } from "@/components/sections/MarqueeStrip";
import { AnchoredCardGrid } from "@/components/shared/AnchoredCardGrid";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
import { solutions } from "@/data/site-pages";
export const metadata = {
title: "Solutions",
description:
"Digital transformation, product development, IoT, SMAC, DevOps, and blockchain solutions engineered for enterprise outcomes.",
};
export default function SolutionsPage() {
return (
<>
<Navbar />
<main className="bg-white">
<PageTitleBanner
title="Solutions"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Solutions" }]}
/>
<AnchoredCardGrid
tag="[ solutions ]"
title="Mapping capability to your business problems"
description="We pair engineering depth with a diagnostic approach, so every solution fits your existing systems and delivers measurable value."
items={solutions}
/>
<MarqueeStrip text="/ Building the digital backbone for enterprises across industries." />
<PreFooterCTA />
</main>
</>
);
}

27
app/terms/page.tsx Normal file
View File

@@ -0,0 +1,27 @@
import { Navbar } from "@/components/sections/Navbar";
import { PageTitleBanner } from "@/components/shared/PageTitleBanner";
import { LegalContent } from "@/components/shared/LegalContent";
import { PreFooterCTA } from "@/components/shared/PreFooterCTA";
import { termsOfUse } from "@/data/legal";
export const metadata = {
title: "Terms of Use",
description:
"The terms that govern your use of the Tenext Technologies website.",
};
export default function TermsPage() {
return (
<>
<Navbar />
<main className="bg-white">
<PageTitleBanner
title="Terms of Use"
breadcrumbs={[{ label: "Home", href: "/" }, { label: "Terms of Use" }]}
/>
<LegalContent sections={termsOfUse} />
<PreFooterCTA />
</main>
</>
);
}