Add the recruiter Pitch route and rebuild Home for direct-customer work.

Pitch takes the verified profile, metrics and public cases off Home so `/` can speak to small companies in plain language. The Systems Map now sits on the services overview, and both locales stay table-driven.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-08-26 12:52:12 +02:00
parent b15dfd7801
commit 86d6dd085d
35 changed files with 738 additions and 188 deletions

View File

@@ -101,23 +101,43 @@ export interface ServicePageCopy extends PageCopy {
readonly offeringCaseBackedLabel: string;
}
export interface AudienceEntryCopy {
readonly id: 'recruiters' | 'companies';
readonly headline: string;
export interface HomeServiceAreaCopy {
readonly id: 'workplaces' | 'servers' | 'software' | 'ai';
readonly title: string;
readonly body: string;
readonly bullets: readonly string[];
readonly ctas: readonly CtaCopy[];
readonly routeId: RouteId;
}
export interface HomePageCopy extends PageCopy {
readonly serviceAreas: readonly HomeServiceAreaCopy[];
readonly serviceAreasHeading: string;
readonly process: readonly ProcessStepCopy[];
readonly processHeading: string;
readonly proofCaseId: CaseStudyId;
readonly proofHeading: string;
readonly proofNote: string;
readonly featuredCaseIds: readonly CaseStudyId[];
}
export interface PitchTimelineEntryCopy {
readonly id: string;
readonly period: string;
readonly role: string;
readonly body: string;
}
export interface PitchPageCopy extends PageCopy {
readonly profile: readonly string[];
readonly metrics: readonly MetricCopy[];
readonly audiences: readonly AudienceEntryCopy[];
readonly timeline: readonly PitchTimelineEntryCopy[];
readonly coreStack: readonly StackGroupCopy[];
readonly featuredCaseIds: readonly CaseStudyId[];
readonly systemsMap: {
readonly heading: string;
readonly intro: string;
};
readonly timelineHeading: string;
readonly stackHeading: string;
}
export interface ServicesOverviewPageCopy extends PageCopy {
readonly systemsMap: { readonly heading: string; readonly intro: string };
}
export type ContactFieldId =
@@ -198,6 +218,8 @@ export interface SiteSeoCopy {
export interface SiteContent {
readonly pages: Record<RouteId, PageCopy>;
readonly home: HomePageCopy;
readonly pitch: PitchPageCopy;
readonly servicesOverview: ServicesOverviewPageCopy;
readonly services: Record<ServicePageId, ServicePageCopy>;
readonly cases: Record<CaseStudyId, CaseStudyCopy>;
readonly contact: ContactPageCopy;