refactor(seo): Improve page metadata and HTML semantics

This commit updates the page metadata (title and description) from the default Next.js placeholders to be descriptive of the Opp lens application, improving SEO.

Additionally, it refactors the HTML structure for better semantics and accessibility:
- Replaced generic `div` and fragment tags with appropriate semantic elements like `main`, `article`, `li`, and `small`.
- Corrected the heading hierarchy for better document structure.
- Fixed image source paths by making them absolute to prevent broken images.
This commit is contained in:
AmirReza Jamali
2025-10-26 10:38:46 +03:30
parent 71094f6c86
commit a78726303a
5 changed files with 59 additions and 56 deletions
+21 -18
View File
@@ -16,8 +16,9 @@ const geistMono = Geist_Mono({
});
export const metadata: Metadata = {
title: "Create Next App",
description: "Generated by create next app",
title: "Opp lens - AI-Powered Tender Management",
description:
"Democratizing Tender Access for SMEs with AI-powered tender discovery and preparation.",
icons: {
icon: "/fav-icon.svg",
},
@@ -37,7 +38,7 @@ function ContactInfo({
contactIconSrc?: string;
}) {
return (
<div className="flex gap-3 my-3 text-white">
<li className="flex gap-3 my-3 text-white">
<Image
src={icon}
width={24}
@@ -65,7 +66,7 @@ function ContactInfo({
{contact}
</p>
)}
</div>
</li>
);
}
@@ -149,23 +150,25 @@ export default async function RootLayout({
<p className="text-white my-2">
Democratizing Tender Access for SMEs.
</p>
<p className="text-white my-2">
<small className="text-white my-2">
© 2025 Opplens.com by PBL Partners AB. All Rights Reserved.
</p>
</small>
</div>
</div>
<div>
{contactInfo.map((contact, index) => (
<ContactInfo
key={index}
icon={contact.icon}
contact={contact.contact}
href={contact.href}
ariaLabel={contact.ariaLabel}
contactIconSrc={contact.contactIconSrc}
/>
))}
</div>
<address className="not-italic">
<ul>
{contactInfo.map((contact, index) => (
<ContactInfo
key={index}
icon={contact.icon}
contact={contact.contact}
href={contact.href}
ariaLabel={contact.ariaLabel}
contactIconSrc={contact.contactIconSrc}
/>
))}
</ul>
</address>
</div>
</div>
</footer>