Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/apps/web/app
diff options
context:
space:
mode:
authorLeitwolf112026-11-08 18:46:08 +0300
committerLeitwolf112026-11-08 18:46:08 +0300
commitefa1f584205e93c292ea40b564d92a03f12ab33c (patch)
treeedc868bb3cb76bbb2032495097323771dd60f89b /apps/web/app
parentd28c8c216708c3bb59773722e6235c4c8cbb2b73 (diff)
downloadprogmaweb-feature/remove-xide.tar.gz
Remove Xide and ides.progmasoft.comfeature/remove-xide
Xide is no longer developed as of 2026-11-08 (Progmasoft/xide#29), so Progmaweb stops presenting it: - product.progmasoft.com: Xide leaves the catalog, its card and its detail page; /xide on the product host is a 404 like any unknown product. The catalog's description in every language names the Tala language with its tools and Catch3. - ides.progmasoft.com served only the IDE list and the Xide page, so the whole site goes: the pages under app/ides, its texts in every language, idesRoute and its host in the proxy, and both nginx server blocks. The certificate of progmasoft.com no longer has to name it. Tests: the catalog lists the remaining products and refuses xide.
Diffstat (limited to 'apps/web/app')
-rw-r--r--apps/web/app/ides/layout.tsx11
-rw-r--r--apps/web/app/ides/page.tsx53
-rw-r--r--apps/web/app/ides/xide/page.tsx93
3 files changed, 0 insertions, 157 deletions
diff --git a/apps/web/app/ides/layout.tsx b/apps/web/app/ides/layout.tsx
deleted file mode 100644
index 8b1c6b7..0000000
--- a/apps/web/app/ides/layout.tsx
+++ /dev/null
@@ -1,11 +0,0 @@
-// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com>
-// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1
-
-import type { ReactNode } from "react";
-import "../site.css";
-
-export default function IdesLayout({
- children,
-}: Readonly<{ children: ReactNode }>) {
- return children;
-}
diff --git a/apps/web/app/ides/page.tsx b/apps/web/app/ides/page.tsx
deleted file mode 100644
index 3a832a8..0000000
--- a/apps/web/app/ides/page.tsx
+++ /dev/null
@@ -1,53 +0,0 @@
-// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com>
-// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1
-
-import type { Metadata } from "next";
-import { Footer } from "@/components/Footer";
-import { SiteHeader } from "@/components/SiteHeader";
-import { getLocale } from "@/lib/locale.server";
-import { forwardArrow } from "@/lib/localization";
-import { getCatalogMessages, products } from "@/lib/products";
-import { getSitesMessages } from "@/lib/product-sites";
-
-export async function generateMetadata(): Promise<Metadata> {
- const { ides } = getSitesMessages(await getLocale());
- return {
- title: ides.title,
- description: ides.description,
- alternates: { canonical: "https://ides.progmasoft.com/" },
- };
-}
-
-/** ides.progmasoft.com: the development environments of Progmasoft. */
-export default async function IdesPage() {
- const locale = await getLocale();
- const { ides } = getSitesMessages(locale);
- const xide = getCatalogMessages(locale).products.xide;
- return (
- <div className="pm-page">
- <SiteHeader locale={locale} />
- <main>
- <section className="pm-hero">
- <div className="pm-shell pm-product-hero">
- <h1>{ides.title}</h1>
- <p className="pm-lede">{ides.description}</p>
- </div>
- </section>
- <section className="pm-section">
- <div className="pm-shell pm-product-grid">
- <a className="pm-card pm-product-card" href="/xide">
- <span className={`pm-accent pm-accent-${products.xide.accent}`} />
- <span className="pm-tag">{xide.category}</span>
- <h3>{products.xide.name}</h3>
- <p>{xide.tagline}</p>
- <span className="pm-more">
- {ides.open} {forwardArrow(locale)}
- </span>
- </a>
- </div>
- </section>
- </main>
- <Footer locale={locale} />
- </div>
- );
-}
diff --git a/apps/web/app/ides/xide/page.tsx b/apps/web/app/ides/xide/page.tsx
deleted file mode 100644
index 86022e0..0000000
--- a/apps/web/app/ides/xide/page.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-// SPDX-FileCopyrightText: 2026 Progmasoft <support@progmasoft.com>
-// SPDX-License-Identifier: AGPL-3.0-or-later WITH AdditionRef-Progmasoft-Patent-Grant-1.1
-
-import type { Metadata } from "next";
-import { Footer } from "@/components/Footer";
-import { SiteHeader } from "@/components/SiteHeader";
-import { getLocale } from "@/lib/locale.server";
-import { products } from "@/lib/products";
-import { getSitesMessages } from "@/lib/product-sites";
-
-export async function generateMetadata(): Promise<Metadata> {
- const { xide } = getSitesMessages(await getLocale());
- return {
- title: `Xide · ${xide.tagline}`,
- description: xide.description,
- alternates: { canonical: "https://ides.progmasoft.com/xide" },
- };
-}
-
-/** ides.progmasoft.com/xide: the site of Xide. */
-export default async function XidePage() {
- const locale = await getLocale();
- const { xide, common } = getSitesMessages(locale);
- return (
- <div className="pm-page">
- <SiteHeader locale={locale} />
- <main>
- <section className="pm-hero">
- <div className="pm-shell pm-hero-inner">
- <div>
- <p className="eyebrow">{xide.eyebrow}</p>
- <h1>
- Xide <span>{xide.tagline}</span>
- </h1>
- <p className="pm-lede">{xide.description}</p>
- <div className="pm-actions">
- <a className="button" href={products.xide.source}>
- {common.source}
- </a>
- <a
- className="button button-secondary"
- href="https://product.progmasoft.com/xide"
- >
- {common.productPage}
- </a>
- </div>
- </div>
- <aside className="pm-aside">
- <span className="pm-tag">{common.status}</span>
- <p>{xide.status}</p>
- </aside>
- </div>
- </section>
-
- <section className="pm-section">
- <div className="pm-shell">
- <div className="pm-heading">
- <h2>{xide.layoutTitle}</h2>
- </div>
- <div className="pm-bento">
- {xide.layout.map(([title, description]) => (
- <article className="pm-card" key={title}>
- <h3>{title}</h3>
- <p>{description}</p>
- </article>
- ))}
- </div>
- </div>
- </section>
-
- <section className="pm-section pm-section-muted">
- <div className="pm-shell pm-detail">
- <div className="pm-heading">
- <h2>{xide.languagesTitle}</h2>
- <p>{xide.languagesDescription}</p>
- </div>
- <div>
- <div className="pm-heading">
- <h2>{xide.architectureTitle}</h2>
- </div>
- <ul className="pm-features">
- {xide.architecture.map((item) => (
- <li key={item}>{item}</li>
- ))}
- </ul>
- </div>
- </div>
- </section>
- </main>
- <Footer locale={locale} />
- </div>
- );
-}