From 042ea88d94d82e9f8d16c9dead8b40cf09dbab36 Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Sun, 16 Aug 2026 19:05:53 +0200 Subject: [PATCH] feat(site): rewrite public copy around the batch chain Replace slogan-heavy bilingual copy with concrete industrial prose on home, about, work, notes, and contact, without invented metrics or em dashes. Co-authored-by: Cursor --- src/app/[lang]/about/page.tsx | 13 ++- src/app/[lang]/contact/page.tsx | 12 ++- src/app/[lang]/page.tsx | 19 ++-- src/app/[lang]/work/[slug]/page.tsx | 22 +++-- src/app/layout.tsx | 4 +- src/components/json-ld.tsx | 2 +- src/content/legal.ts | 22 +++-- src/content/notes.ts | 126 ++++++++++++++++++------ src/content/offers.ts | 20 ++-- src/content/person.ts | 54 +++++++---- src/content/projects.ts | 140 +++++++++++++++++---------- src/i18n/dictionaries.ts | 144 ++++++++++++++++------------ src/lib/contact/mail.ts | 4 +- 13 files changed, 383 insertions(+), 199 deletions(-) diff --git a/src/app/[lang]/about/page.tsx b/src/app/[lang]/about/page.tsx index 7610f39..520a08d 100644 --- a/src/app/[lang]/about/page.tsx +++ b/src/app/[lang]/about/page.tsx @@ -1,5 +1,7 @@ +import Link from "next/link"; import { getPerson } from "@/content/person"; import { getDictionary } from "@/i18n/dictionaries"; +import { publicPath } from "@/i18n/routes"; import { pageMetadata } from "@/lib/metadata"; import { requireLocale } from "@/lib/locale"; @@ -22,7 +24,7 @@ export default async function AboutPage({ params }: PageProps<"/[lang]/about">)

{person.role} · {person.location}

-
+
{person.story.map((paragraph) => (

{paragraph} @@ -40,6 +42,15 @@ export default async function AboutPage({ params }: PageProps<"/[lang]/about">) ))} +

+

{dict.about.close}

+ + {dict.actions.startConversation} + +
); } diff --git a/src/app/[lang]/contact/page.tsx b/src/app/[lang]/contact/page.tsx index cf6aa75..53108d5 100644 --- a/src/app/[lang]/contact/page.tsx +++ b/src/app/[lang]/contact/page.tsx @@ -31,7 +31,17 @@ export default async function ContactPage({

{dict.contact.kicker}

{dict.contact.title}

{dict.contact.lede}

-

{dict.contact.reply}

+
+

{dict.contact.needTitle}

+
    + {dict.contact.need.map((item) => ( +
  • + {item} +
  • + ))} +
+
+

{dict.contact.reply}

{dict.contact.emailDirect}: {site.email} diff --git a/src/app/[lang]/page.tsx b/src/app/[lang]/page.tsx index 486c7bd..51fdcd4 100644 --- a/src/app/[lang]/page.tsx +++ b/src/app/[lang]/page.tsx @@ -17,8 +17,8 @@ export async function generateMetadata({ params }: PageProps<"/[lang]">) { locale, "home", locale === "de" - ? "Jan Wagner — Software für anspruchsvolle Prozesse" - : "Jan Wagner — Software for demanding processes", + ? "Jan Wagner · Software für Satzzettel, Silo und Schichtabschluss" + : "Jan Wagner · software for batch tickets, silos and the shift close", dict.home.lede, ); } @@ -29,7 +29,7 @@ export default async function HomePage({ params }: PageProps<"/[lang]">) { const person = getPerson(locale); const [featured, ...rest] = getProjects(locale); const offers = getOffers(locale); - const notes = getNotes(locale).slice(0, 3); + const notes = getNotes(locale).slice(0, 4); return (

@@ -120,9 +120,16 @@ export default async function HomePage({ params }: PageProps<"/[lang]">) {
-

{dict.home.notesKicker}

-

{dict.home.notesTitle}

-
+
+
+

{dict.home.notesKicker}

+

{dict.home.notesTitle}

+
+ + {dict.actions.allNotes} → + +
+
{notes.map((note) => (