// SPDX-FileCopyrightText: 2026 Progmasoft // SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1 import type { Metadata } from "next"; import { Fragment } from "react"; import { Footer } from "@/components/Footer"; import { SiteHeader } from "@/components/SiteHeader"; import { getLocale } from "@/lib/locale.server"; import { forwardArrow, getMessages } from "@/lib/localization"; export async function generateMetadata(): Promise { const { metadata } = getMessages(await getLocale()); return { title: metadata.homeTitle, description: metadata.homeDescription, alternates: { canonical: "https://progmasoft.com/" }, robots: { index: true, follow: true }, }; } const productLinks = [ { href: "https://xsharp-lang.xyz/", accent: "violet", }, { href: "https://viget.progmasoft.com/", accent: "blue", }, { href: "https://github.com/Progmasoft", accent: "green", }, ] as const; export default async function Homepage() { const locale = await getLocale(); const { home } = getMessages(locale); return ( <>

{home.heroEyebrow}

{home.heroTitleStart} {home.heroTitleAccent}

{home.heroDescription}

{home.facts.map(([term, description]) => (
{term}
{description}
))}
progmasoft/organization
{home.stack.map(([label, title, description], index) => ( {index > 0 && ( )}
{label} {title} {description}
))}

{home.productsEyebrow}

{home.productsTitle}

{home.productsDescription}

{home.products.map( ([eyebrow, name, description, action], index) => ( ), )}

{home.principlesEyebrow}

{home.principlesTitle}

{home.principlesDescription}

{home.principles.map(([title, description], index) => (
{String(index + 1).padStart(2, "0")}

{title}

{description}

))}

{home.accountEyebrow}

{home.accountTitle}

{home.accountDescription}

{home.openAccount}