TenantAtlas/specs/216-homepage-structure/contracts/homepage-surface.openapi.yaml
ahmido 40039337d8
Some checks failed
Main Confidence / confidence (push) Failing after 45s
feat: implement homepage structure spec 216 (#254)
## Summary

Implements Spec 216 for the public website homepage in `apps/website`.

This reworks the homepage into the required narrative flow:
- hero with one dominant CTA, one secondary CTA, product-near visual, and bounded trust subclaims
- outcome framing section
- grouped capability model section
- explicit trust block before the final CTA
- dated progress teaser backed by changelog entries
- final CTA transition to contact

It also adds the full spec-kit artifact set for `specs/216-homepage-structure` and updates the smoke suite to prove section order, CTA hierarchy, onward route reachability, and mobile readability.

## Validation

- `corepack pnpm build:website`
- `cd apps/website && corepack pnpm exec playwright test`

## Notes

- Branch: `216-homepage-structure`
- Commit: `097f8e70`
- Remote branch has been pushed and is ready for review.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #254
2026-04-19 12:56:05 +00:00

128 lines
3.8 KiB
YAML

openapi: 3.1.0
info:
title: TenantAtlas Homepage Surface Contract
version: 0.1.0
summary: Structural contract for the `apps/website` homepage in Spec 216.
description: >-
This contract defines the public HTML routes that participate in the
homepage journey for Spec 216. The homepage remains a static Astro surface
and must route visitors into Product, Trust, Changelog, and Contact while
satisfying the required homepage section model.
servers:
- url: http://localhost:{port}
description: Local Astro development or preview server
variables:
port:
default: '4321'
tags:
- name: Homepage Journey
description: Public HTML routes used by the homepage structure contract
paths:
/:
get:
tags: [Homepage Journey]
operationId: getHomepage
summary: Homepage
description: >-
Product-near homepage that positions the product, explains outcomes,
groups the product model, shows bounded trust and dated progress
signals, and ends in one clear next-step CTA.
x-tenantatlas-homepage-structure:
requiredBlocks:
- header
- hero
- outcome
- capability
- trust
- progress
- cta
- footer
orderedNarrative:
- hero
- outcome
- capability
- trust
- progress
- cta
primaryCtaTargets:
- /contact
- /demo
secondaryCtaTargets:
- /product
- /trust
- /changelog
onwardRoutes:
- /product
- /trust
- /changelog
- /contact
forbiddenPatterns:
- template-first-saas
- abstract-only-homepage
- feature-wall
- fake-trust
- multi-primary-cta
responses:
'200':
description: Homepage HTML
content:
text/html:
schema:
$ref: '#/components/schemas/HtmlDocument'
/product:
get:
tags: [Homepage Journey]
operationId: getHomepageProductTarget
summary: Product target route
description: Deeper product-model route linked from homepage hero or capability sections.
responses:
'200':
description: Product page HTML
content:
text/html:
schema:
$ref: '#/components/schemas/HtmlDocument'
/trust:
get:
tags: [Homepage Journey]
operationId: getHomepageTrustTarget
summary: Trust target route
description: Bounded trust and credibility route linked from homepage trust cues and CTA paths.
responses:
'200':
description: Trust page HTML
content:
text/html:
schema:
$ref: '#/components/schemas/HtmlDocument'
/changelog:
get:
tags: [Homepage Journey]
operationId: getHomepageChangelogTarget
summary: Changelog target route
description: Dated progress route linked from the homepage progress section.
responses:
'200':
description: Changelog page HTML
content:
text/html:
schema:
$ref: '#/components/schemas/HtmlDocument'
/contact:
get:
tags: [Homepage Journey]
operationId: getHomepageContactTarget
summary: Contact target route
description: Primary conversion route used by the homepage until a distinct public `/demo` route exists.
responses:
'200':
description: Contact page HTML
content:
text/html:
schema:
$ref: '#/components/schemas/HtmlDocument'
components:
schemas:
HtmlDocument:
type: string
description: Server-rendered static HTML document