data/case-studies/_case-study.example.yaml (30 lines of code) (raw):

# CaseItem (data contract for a single case study entry) # # Required fields: # - id: string — unique identifier of the case # - description: string — markdown-enabled text (supports **bold** and [links](https://example.com)) # - type: string — one of: multiplatform | server-side # # Optional fields: # - logo: list (0–2) of image paths (strings) # Use up to two logos, path relative to /public/ directory # - alternateLogo: list (0–2) of image paths (strings) # Alternative logs for dark backgrounds, path relative to /public/ directory # If a carousel logo is not specified, UI may pick the best option between # logo and alternateLogo automatically. # # - signature: object — author or source of the quote # line1: string — supports markdown (e.g., **Name Surname**, Role) # line2: string — plain text # # - isExternal: boolean — shows if the case story is from an external source (default: false) # # - link: string — URL of the full case story # # - linkText: string — text for the link (default: "Read the full story") # # - linkStyle: string — 'text' or 'button' — style of the link (default: text) # # - platforms: list of strings — platform tags shown on the card # Examples: android, ios, desktop, frontend, backend, compose-multiplatform # # - media: object — media block for the card # type: youtube | image # When type: youtube # videoId: string — YouTube video ID # When type: image # path: string — image path relative to /public/ directory # # - featuredOnMainPage: boolean — mark this case to be highlighted on the main page # # - carousel: controls appearance in the homepage carousel # Omit the field to skip showing in carousel # # Option A — enable with defaults: # carousel: true # # Option B — custom visuals and/or link: # carousel: # logo: /images/case-studies/carousel/company.svg # image path relative to /public/ directory # link: https://example.com/watch # custom click-through link # # Note: If no custom carousel logo is provided, the UI will try to choose between # 'alternateLogo' (dark) and 'logo' automatically depending on the background. # items: - id: CompanyName # required: unique identifier type: server-side # required: multiplatform | server-side description: > # required: markdown-supported text **Case description** supporting [links](https://example.com) and emphasis. logo: # optional: list of 0–2 image paths (strings) - /images/case-studies/google.svg - /images/case-studies/google.svg alternateLogo: # optional: list of 0–2 image paths (strings) - /images/case-studies/google-dark.svg - /images/case-studies/google-dark.svg carousel: true signature: # optional name: Name Surname position: Position at Company or note isExternal: false # optional, default: true link: https://example.com/full-story # optional linkText: Read the full story # optional linkStyle: text # optional: button | text (default: button) platforms: # optional - android - ios - desktop - frontend - backend - compose-multiplatform media: # optional type: youtube # required: youtube | image videoId: o14wGByBRAQ # required when type: youtube # when type: image # type: image # path: ./images/case-studies/google.svg featuredOnMainPage: false # optional: mark the case as selected for the main page