--- epic: 9 story: 9.4 title: "Shareable URL Links" status: draft --- ## Epic 9 — Web App (React + WASM) **Goal:** Zero-install web experience with real-time collaboration. ### Story 9.4: Shareable URL Links As a web user, I want to share my CalcPad sheet via a unique URL, So that others can view my calculations without needing an account. **Acceptance Criteria:** **Given** a user has an open CalcPad sheet **When** they click the "Share" button **Then** a unique URL is generated in the format `calcpad.app/s/{shortcode}` **And** the URL is copied to the clipboard with confirmation feedback **Given** a recipient opens a shared URL **When** the page loads **Then** the sheet is rendered in read-only mode with full formatting and answer display **And** the recipient cannot edit the original sheet **Given** a user is generating a share link **When** they enable the "Password Protection" option and set a password **Then** recipients are prompted to enter the password before viewing **And** incorrect passwords display an error and deny access **Given** a user is generating a share link **When** they set an expiration (e.g., 1 hour, 1 day, 7 days, 30 days) **Then** the link becomes inaccessible after the expiration period **And** visiting an expired link shows a friendly "This link has expired" message