candle-annotator/openspec/changes/archive/2026-02-20-user-accounts/specs/landing-page/spec.md
Marko Djordjevic 5fb9733bd6 Archive user-accounts change to openspec/changes/archive/
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-20 18:50:36 +01:00

2.9 KiB

ADDED Requirements

Requirement: Landing page at root route

The system SHALL serve a public landing page at / (route src/app/(public)/page.tsx). The page SHALL match the Lovable design mockup from lovable_design_html/candles_lovable_design_landing_page.html.

Scenario: Landing page renders

  • WHEN an unauthenticated user navigates to /
  • THEN the landing page renders with the CandleAnnotator branding, hero section, features grid, stats bar, and CTA section

Scenario: Authenticated user visits landing

  • WHEN an authenticated user navigates to /
  • THEN the landing page renders normally (no redirect — user can still view marketing page)

Requirement: Landing page navigation

The landing page navbar SHALL display the CandleAnnotator logo/name on the left and "Log in" + "Get Started" buttons on the right. "Log in" SHALL link to /login. "Get Started" SHALL link to /register.

  • WHEN an unauthenticated user views the landing page
  • THEN the navbar shows "Log in" (text button) linking to /login and "Get Started" (primary button) linking to /register
  • WHEN an authenticated user views the landing page
  • THEN the navbar shows "Go to App" (primary button) linking to /app instead of login/register buttons

Requirement: Hero section

The hero section SHALL display: a badge "Built for quants & ML engineers", the heading "Annotate OHLC Charts. Train Smarter Models.", a description paragraph, and two CTAs: "Start Annotating" (primary, links to /register) and "Try Demo" (secondary, links to /app).

Scenario: Hero renders correctly

  • WHEN the landing page loads
  • THEN the hero section displays the heading, description, badge, and both CTA buttons

Requirement: Features grid

The features section SHALL display 6 feature cards in a 3-column grid: Precision Annotation, ML Training Pipeline, Real-Time Predictions, Multi-Chart Workspace, Keyboard-First Workflow, Export & Persist. Each card SHALL have an icon, title, and description.

Scenario: Features grid renders

  • WHEN the landing page loads
  • THEN 6 feature cards are displayed in a responsive grid (3 columns on desktop, 1 on mobile)

Requirement: Stats bar

The stats section SHALL display 3 metrics: "50ms" (Render latency), "6" (Shortcut keys), "JSON" (Export format) in a horizontal bar.

Scenario: Stats bar renders

  • WHEN the landing page loads
  • THEN the stats bar displays the 3 metrics with labels

The page SHALL include a bottom CTA section with heading "Ready to label?", description "No credit card required", and a "Create Free Account" button linking to /register. Below that, a footer with the CandleAnnotator name and copyright year.

  • WHEN the landing page loads
  • THEN the CTA section and footer render with correct links