Skip to content

[GF-21] [FRONTEND] Legal & SEO (Terms of Service, Privacy Policy, sitemap, robots.txt) #53

@wumibals

Description

@wumibals

Overview

This issue is independent — it can be worked in parallel with any other issue.

Add the legal pages and SEO infrastructure required before real users interact with the protocol. Terms of Service and Privacy Policy are baseline requirements whenever users deposit funds. The SEO files (sitemap.xml, robots.txt) are missing entirely.

Problem

  • No Terms of Service page exists
  • No Privacy Policy page exists
  • No sitemap.xml — search engines cannot efficiently crawl and index the app
  • No robots.txt — search engine crawler behaviour is undefined
  • app/src/app/layout.tsx sets title and description metadata but has no openGraph or twitter card metadata, meaning link previews on Twitter/X and in messaging apps show no image and minimal info

Proposed Solution

1. /terms page (app/src/app/terms/page.tsx)
A Terms of Service page covering:

  • Nature of the protocol (non-custodial, smart contract interaction)
  • User responsibilities (wallet security, understanding of risk)
  • No warranty and no guarantee of yield
  • Risk acknowledgement (smart contract risk, impermanent loss, stablecoin depeg)
  • Jurisdiction and governing law section (to be filled by legal counsel)
  • Reference to the risk model in the README

2. /privacy page (app/src/app/privacy/page.tsx)
A Privacy Policy covering:

  • What data is collected (wallet address when connected; no emails, no KYC)
  • What is not collected (the protocol is non-custodial and has no backend user accounts)
  • Use of analytics (if any)
  • Cookie policy

3. sitemap.xml (app/public/sitemap.xml)
Static sitemap listing all routes:

  • /, /dashboard, /deposit, /portfolio
  • /analytics, /allocations, /harvest, /governance
  • /learn, /faq, /audit, /contracts, /roadmap
  • /terms, /privacy

4. robots.txt (app/public/robots.txt)

User-agent: *
Allow: /
Sitemap: https://yieldladder.dev/sitemap.xml

5. Complete OpenGraph and Twitter Card meta in layout.tsx

openGraph: {
  title: 'YieldLadder — Time-Locked USDC Vaults on Stellar',
  description: '...',
  url: 'https://yieldladder.dev',
  images: [{ url: '/og-image.png', width: 1200, height: 630 }],
  type: 'website',
},
twitter: {
  card: 'summary_large_image',
  title: '...',
  description: '...',
  images: ['/og-image.png'],
}

6. Footer links
Add Terms and Privacy links to the footer in app/src/app/page.tsx.

Acceptance Criteria

  • /terms page exists, is linked from the footer, and covers all points listed above
  • /privacy page exists, is linked from the footer, and explains the no-account, wallet-only model
  • app/public/sitemap.xml lists all app routes with correct URLs
  • app/public/robots.txt is present and allows all crawlers
  • layout.tsx includes complete openGraph and twitter metadata
  • Sharing the URL on Twitter/X shows the correct title, description, and og-image.png
  • Footer includes links to both /terms and /privacy

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions