Files
CleanMM/Docs/Execution/Landing-Page-PRD-2026-03-14.md
zhukang 03fe98c163 feat(landing): add Atlas landing page with Astro static site
Implement the full landing page for atlas.atomstorm.ai per the PRD at
Docs/Execution/Landing-Page-PRD-2026-03-14.md. Includes design spec,
bilingual Astro site, CI pipeline, and all assets.

Key deliverables:
- DESIGN.md: 7-section Atom Web Design specification
- Astro 5.x static site with 15 components and 11 page sections
- Bilingual i18n (zh/en) with path-based routing
- Build-time GitHub release manifest integration
- Release channel state machine (Stable/Prerelease/Coming Soon)
- CSS design tokens mapped from AtlasBrand.swift
- Self-hosted fonts (Space Grotesk, Instrument Sans, IBM Plex Mono)
- OG social sharing images for both locales
- GitHub Actions workflow for GitHub Pages deployment
- Zero client JS, 227KB page weight, 17/17 quality checks passed

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-15 10:18:27 +08:00

510 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Landing Page PRD — 2026-03-14
## Summary
- Product: `Atlas for Mac` landing page
- Type: marketing site + release-distribution entry
- Primary goal: turn qualified visitors into `download`, `GitHub visit/star`, and `beta updates` conversions
- Deployment baseline: `GitHub Pages` with a custom domain and GitHub Actions deployment workflow
- Recommended source location at implementation time: `Apps/LandingSite/`
This PRD is intentionally separate from the core app MVP PRD. It does not change the frozen app-module scope. It defines a branded acquisition and trust surface for direct distribution.
## Background
Atlas for Mac now has a usable direct-distribution path, GitHub Releases, packaging automation, and prerelease support. What it does not yet have is a purpose-built landing page that:
- explains the product quickly to first-time visitors
- distinguishes signed releases from prereleases honestly
- reduces fear around cleanup, permissions, and Gatekeeper warnings
- converts open-source interest into actual downloads
- gives the project a canonical domain instead of relying on the repository README alone
The landing page must behave like a launch surface, not a generic OSS README mirror.
## Goals
- Present Atlas as a modern, trust-first Mac utility, not a vague “cleaner”
- Clarify the product promise in under 10 seconds
- Make direct download, GitHub proof, and safety signals visible above the fold
- Support both `English` and `简体中文`
- Explain prerelease installation honestly when Apple-signed distribution is unavailable
- Provide a stable deployment path on GitHub with a separately managed custom domain
- Stay lightweight, static-first, and easy to maintain by a small team
## Non-Goals
- No full documentation portal in v1
- No in-browser disk scan demo
- No account system
- No pricing or checkout flow in v1
- No blog/CMS dependency required for initial launch
- No analytics stack that requires invasive tracking cookies by default
## Target Users
### Primary
- Mac users with recurring disk pressure or system clutter
- Developers with Xcode, simulators, containers, caches, package-manager artifacts, and build leftovers
- Users evaluating alternatives to opaque commercial cleanup apps
### Secondary
- Open-source-oriented users who want to inspect the code before installing
- Tech creators and reviewers looking for screenshots, positioning, and trust signals
- Early beta testers willing to tolerate prerelease install friction
## User Jobs
- “Tell me what Atlas actually does in one screen.”
- “Help me decide whether this is safe enough to install.”
- “Show me how Atlas is different from aggressive one-click cleaners.”
- “Let me download the latest build without digging through GitHub.”
- “Explain whether this is a signed release or a prerelease before I install.”
## Positioning
### Core Positioning Statement
Atlas for Mac is an explainable, recovery-first Mac maintenance workspace that helps people understand why their Mac is slow, full, or disorganized, then take safer action.
### Core Differentiators To Surface
- `Explainable` instead of opaque
- `Recovery-first` instead of destructive-by-default
- `Developer-aware` instead of mainstream-only cleanup
- `Open source` instead of black-box utility
- `Least-privilege` instead of front-loaded permission pressure
### Messaging Constraints
- Do not use the `Mole` brand in user-facing naming
- Do not claim malware protection or antivirus behavior
- Do not overstate physical recovery coverage
- Do not imply that all releases are Apple-signed if they are not
## Success Metrics
### Primary Metrics
- Landing-page visitor to download CTA click-through rate
- Download CTA click to GitHub Release visit rate
- Stable-release vs prerelease download split
- GitHub repo visit/star rate from the landing page
- Beta updates signup conversion rate if email capture ships
### Secondary Metrics
- Time on page
- Scroll depth to trust/safety section
- Screenshot gallery interaction rate
- FAQ expansion rate
- Core Web Vitals pass rate
## Release and Distribution Strategy
The page must treat release channel status as product truth, not as hidden implementation detail.
### Required States
- `Signed Release Available`
- `Prerelease Only`
- `No Public Download Yet`
### CTA Behavior
- If a signed stable release exists: primary CTA is `Download for macOS`
- If only prerelease exists: primary CTA is `Download Prerelease`, with an explicit warning label
- If no downloadable release exists: primary CTA becomes `View on GitHub` or `Join Beta Updates`
### Required Disclosure
- Show exact version number and release date
- Show channel badge: `Stable`, `Prerelease`, or `Internal Beta`
- Show a short install note if the selected asset may trigger Gatekeeper friction
## Information Architecture
The landing page should be a single-scroll page with anchored sections and a sticky top nav.
### Top Navigation
- Logo / wordmark
- `Why Atlas`
- `How It Works`
- `Developers`
- `Safety`
- `FAQ`
- language toggle
- primary CTA
### Page Sections
#### 1. Hero
- Purpose: make the product understandable immediately
- Content:
- strong product headline
- short subheadline
- primary CTA
- secondary CTA to GitHub
- release-state badge
- macOS screenshot or stylized product frame
- Copy angle:
- “Understand whats taking space”
- “Review before cleaning”
- “Recover when supported”
#### 2. Trust Signal Strip
- Open source
- Recovery-first
- Developer-aware cleanup
- macOS native workspace
- Direct download / GitHub Releases
#### 3. Problem-to-Outcome Narrative
- “Mac is full” -> Atlas explains why
- “Caches and leftovers are unclear” -> Atlas turns findings into an action plan
- “Cleanup feels risky” -> Atlas emphasizes reversibility and history
#### 4. Feature Story Grid
- `Overview`
- `Smart Clean`
- `Apps`
- `History`
- `Recovery`
- `Permissions`
Each card must show:
- user-facing value
- one concrete example
- one trust cue
#### 5. How It Works
- Scan
- Review plan
- Execute safe actions
- Restore when supported
This section should visualize the workflow as a clear four-step progression.
#### 6. Developer Cleanup Section
- Xcode derived data
- simulators
- package manager caches
- build artifacts
- developer-oriented disk pressure scenarios
This section exists because developer cleanup coverage is one of Atlass most differentiated acquisition angles.
#### 7. Safety and Permissions Section
- explain least-privilege behavior
- explain why Atlas does not request everything up front
- explain release channel status honestly
- include the prerelease Gatekeeper warning visual when relevant
#### 8. Screenshots / Product Tour
- 4 to 6 macOS screenshots
- captions tied to user outcomes, not just feature names
- desktop-first layout with mobile fallback carousel
#### 9. Open Source and Credibility
- GitHub repo link
- MIT license
- attribution statement
- optional changelog/release notes links
#### 10. FAQ
- Is Atlas signed and notarized?
- What happens in prerelease installs?
- Does Atlas upload my files?
- What does recovery actually mean?
- Does Atlas require Full Disk Access?
- Is this a Mac App Store app?
#### 11. Footer
- download links
- GitHub
- documentation
- privacy statement
- security contact
## Functional Requirements
### FR-01 Release Metadata
The page must display:
- latest downloadable version
- release channel
- published date
- links to `.dmg`, `.zip`, `.pkg` or the GitHub release page
### FR-02 Channel-Aware UI
If the latest downloadable build is a prerelease, the UI must:
- display a `Prerelease` badge above the primary CTA
- show a short warning near the CTA
- expose a help path for Gatekeeper friction
### FR-03 Bilingual Support
The page must support `English` and `简体中文` with:
- manual language switch
- stable URL strategy or query/path handling
- localized metadata where feasible
### FR-04 Download Path Clarity
Users must be able to tell:
- where to download
- which file is recommended
- whether they are installing a prerelease
- what to do if macOS blocks the app
### FR-05 Trust Links
The page must link to:
- GitHub repository
- GitHub Releases
- changelog or release notes
- security disclosure path
- open-source attribution / license references
### FR-06 Optional Beta Updates Capture
The page should support an optional email capture block using a third-party form endpoint or mailing-list provider without introducing a custom backend in v1.
### FR-07 Responsive Behavior
The experience must work on:
- desktop
- iPad/tablet portrait
- mobile phones
No critical CTA or release information may fall below inaccessible accordion depth on mobile.
## Visual Direction
### Design Theme
`Precision Utility`
The page should feel like a modern macOS-native operations console translated into a polished marketing surface. It should avoid generic SaaS gradients, purple-heavy palettes, and interchangeable startup layouts.
### Visual Principles
- clean but not sterile
- high trust over hype
- native Mac feel over abstract Web3-style spectacle
- strong hierarchy over crowded feature dumping
- product screenshots as proof, not decoration
### Typography
- Display: `Space Grotesk`
- Body: `Instrument Sans`
- Utility / telemetry labels: `IBM Plex Mono`
### Color System
- Background base: graphite / near-black
- Surface: warm slate cards
- Primary accent: mint-teal
- Secondary accent: cold cyan
- Support accent: controlled amber for caution or prerelease states
### Layout Style
- strong hero with diagonal or staggered composition
- large product framing device
- generous spacing
- rounded but not bubbly surfaces
- visual rhythm built from alternating dark/light emphasis bands
### Motion
- staggered section reveal on first load
- subtle screenshot parallax only if performance budget permits
- badge/CTA hover states with restrained motion
- no endless floating particles or decorative loops
## Copy Direction
- tone: direct, calm, technically credible
- avoid hype words like “ultimate”, “magic”, or “AI cleaner”
- prefer concrete verbs: `Scan`, `Review`, `Restore`, `Download`
- always qualify prerelease or unsigned friction honestly
## SEO Requirements
- page title and meta description in both supported languages
- Open Graph and Twitter card metadata
- software-application structured data
- canonical URL
- `hreflang` support if separate localized URLs are used
- crawlable, text-based headings; no hero text rendered only inside images
## Analytics Requirements
Use privacy-respecting analytics by default.
### Required Events
- primary CTA click
- GitHub CTA click
- release file choice click
- FAQ expand
- screenshot gallery interaction
- beta signup submit
### Recommended Stack
- `Plausible` or `Umami`
- Google Search Console for indexing and query monitoring
## Technical and Deployment Requirements
### Hosting
- Use `GitHub Pages`
- Deploy via `GitHub Actions` custom workflow
- Keep the site static-first
### Recommended Workflow
Build job:
- install dependencies
- build static output
- upload Pages artifact
Deploy job:
- use `actions/deploy-pages`
- grant `pages: write` and `id-token: write`
- publish to the `github-pages` environment
This aligns with GitHubs current Pages guidance for custom workflows and deployment permissions.
### Custom Domain Strategy
- Use a dedicated brand domain
- Prefer `www` as canonical host
- Redirect apex to `www` or configure both correctly
- Verify the domain at the GitHub account or organization level before binding it to the repository
- Enforce HTTPS after DNS propagation
- Do not use wildcard DNS
- Do not rely on a manually committed `CNAME` file when using a custom GitHub Actions Pages workflow
### DNS Requirements
For `www`:
- configure `CNAME` -> `<account>.github.io`
For apex:
- use `A`/`AAAA` records or `ALIAS/ANAME` according to GitHub Pages documentation
### Repository Integration
- Source should live in this repository under `Apps/LandingSite/`
- Landing page deployment should not interfere with app release workflows
- Landing page builds should trigger on landing-page source changes and optionally on GitHub Release publication
### Release Integration
The landing page should not depend on client-side GitHub API fetches for critical first-paint release messaging if it can be avoided. Preferred order:
1. build-time generated release manifest
2. static embedded release metadata
3. client-side GitHub API fetch as fallback
## Recommended MVP Scope
### Included
- one bilingual single-page site
- responsive hero
- feature story sections
- screenshot gallery
- trust/safety section
- FAQ
- dynamic release state block
- GitHub Pages deployment
- custom domain binding
- privacy-respecting analytics
### Deferred
- blog
- changelog microsite
- testimonials from named users
- interactive benchmark calculator
- gated PDF lead magnet
- multi-page docs hub
## Acceptance Criteria
- A first-time visitor can understand Atlas in under 10 seconds from the hero
- The page clearly distinguishes `Stable` vs `Prerelease`
- A prerelease visitor can discover the `Open Anyway` recovery path without leaving the page confused
- The site is deployable from GitHub to a custom domain with HTTPS
- Desktop and mobile layouts preserve screenshot clarity and CTA visibility
- The page links cleanly to GitHub Releases and the repository
- Language switching works without broken layout or missing content
## Delivery Plan
### Phase 1
- finalize PRD
- confirm domain choice
- confirm release CTA policy for prerelease vs stable
### Phase 2
- design mock or coded prototype
- implement static site in `Apps/LandingSite/`
- add GitHub Pages workflow
### Phase 3
- bind custom domain
- enable HTTPS
- add analytics and search-console verification
- run launch QA on desktop and mobile
## Risks
- The site may overpromise signed-distribution status if release metadata is not surfaced dynamically
- GitHub Pages custom-domain misconfiguration can create HTTPS or takeover risk
- A generic SaaS aesthetic would dilute Atlass product differentiation
- Screenshots can become stale if app UI evolves faster than site updates
- Email capture can add privacy or maintenance overhead if introduced too early
## Open Questions
- Should the canonical domain be a product-only brand domain or a broader studio-owned domain path?
- Should prerelease downloads be direct asset links or always route through the GitHub Release page first?
- Is email capture required for v1, or is GitHub + download conversion sufficient?
- Should bilingual content use one URL with client-side switching or separate localized routes?