Files
rank/public/index.html
T
2026-05-23 22:24:08 +02:00

227 lines
12 KiB
HTML
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.
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#061B33" />
<title>Rank — Work your ideas before they work you</title>
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet" href="/styles.css?v=rank-sales-20260523-2" />
</head>
<body>
<div class="app-shell">
<aside class="sidebar" aria-label="Main navigation">
<div class="brand-mark" aria-label="Prioritix">P</div>
<nav>
<a class="active" href="#home"><span></span><b>Home</b></a>
<a href="#prioritize"><span></span><b>Sort</b></a>
<a href="#roadmap"><span></span><b>Roadmap</b></a>
<a href="#review"><span></span><b>Review</b></a>
</nav>
<button class="collapse" type="button" title="Collapse sidebar"></button>
</aside>
<main class="workspace">
<section class="sales-hero" aria-label="Rank product promise">
<div class="hero-copy">
<span class="eyebrow">For scattered founders, product teams, and backlog-heavy brains</span>
<h1>Your backlog is not a roadmap.</h1>
<p class="hero-lede">Rank is a nice-looking tool that understands your chaos. Paste messy ideas and work them into a clear build order before they start working you.</p>
<div class="hero-actions">
<a class="primary-cta" href="#feature-sets">Paste my messy backlog</a>
<button class="secondary-cta" type="button" id="sampleBacklog">Try sample backlog</button>
</div>
<div class="trust-row" aria-label="What Rank gives you">
<span>Build now</span>
<span>Validate next</span>
<span>Park safely</span>
<span>Explain why</span>
</div>
</div>
<div class="proof-card" aria-label="Before and after example">
<div class="proof-column messy">
<span>Before</span>
<h2>Messy idea pile</h2>
<ul>
<li>AI onboarding coach</li>
<li>Team voting</li>
<li>Dark mode</li>
<li>Stripe export</li>
<li>Better mobile sorting</li>
</ul>
</div>
<div class="proof-arrow" aria-hidden="true"></div>
<div class="proof-column clear">
<span>After</span>
<h2>Defendable build order</h2>
<ol>
<li><b>Build now</b><small>Mobile sorting removes the biggest usage friction.</small></li>
<li><b>Validate next</b><small>Team voting needs proof before it becomes process theatre.</small></li>
<li><b>Park</b><small>Dark mode is nice, not the reason anyone buys.</small></li>
</ol>
</div>
</div>
</section>
<section class="approach-strip" aria-label="How Rank approaches you">
<article><strong>No dashboard first.</strong><span>Proof before controls. You see the transformation before learning the system.</span></article>
<article><strong>No fake AI mysticism.</strong><span>Every decision needs a plain reason, risk, and next evidence.</span></article>
<article><strong>No surprise gate.</strong><span>Work the ideas first; export, save, and deeper workflows come after value is obvious.</span></article>
</section>
<header class="topbar" id="home">
<button class="menu-button" type="button" aria-label="Menu"></button>
<div class="project-title">
<h1>Rank idea workbench</h1>
<p><strong>Project goal:</strong> turn rough feature ideas into a clear, defendable build order.</p>
</div>
<div class="profile-card">
<span>Sorting profile</span>
<strong>MVP (2x2)</strong>
<button type="button" id="profileToggle" aria-label="Change sorting profile"></button>
<div class="profile-menu" id="profileMenu" hidden>
<button type="button" class="selected" data-profile="mvp">MVP (2x2) ✓</button>
<button type="button" data-profile="rice">RICE Score</button>
<button type="button" data-profile="value">Value vs Effort</button>
<button type="button" data-profile="kano">Kano Model</button>
<button type="button" data-profile="custom">Custom</button>
</div>
</div>
<div class="progress-card" id="progressCard"></div>
</header>
<section class="mobile-home" id="mobileHome" aria-label="Project overview">
<div class="mobile-statusbar"><span>9:41</span><span>Rank</span></div>
<div class="mobile-project-card">
<span class="eyebrow">Project overview</span>
<h2>Work your ideas</h2>
<p>Paste the chaos. Sort what to build now, validate next, and park without guilt.</p>
<div id="mobileHomeProgress" class="mobile-home-progress"></div>
</div>
<div class="mobile-flow-cards">
<a href="#prioritize"><span></span><strong>Active Feature Sorting</strong><small>Prioritize using the selected profile.</small></a>
<a href="#roadmap"><span></span><strong>Timeline Roadmap</strong><small>Review and reorder the product timeline.</small></a>
<a href="#feature-sets"><span></span><strong>Paste messy backlog</strong><small>Drop in rough ideas and turn them into order.</small></a>
<a href="#review"><span></span><strong>Completion Review</strong><small>Check sorted progress and export.</small></a>
</div>
</section>
<section class="capture-strip" aria-label="Quick capture">
<form id="ideaForm" autocomplete="off">
<label class="capture-title">One messy idea
<input id="title" name="title" maxlength="180" placeholder="Mobile sorting feels clumsy, team voting, Stripe export…" required />
</label>
<label>Brief
<input id="description" name="description" maxlength="500" placeholder="Why does this matter, and what would it change?" />
</label>
<label>Category
<input id="labels" name="labels" placeholder="UI / UX" />
</label>
<input type="hidden" name="milestoneId" value="inbox" />
<input type="hidden" name="impact" value="7" />
<input type="hidden" name="effort" value="4" />
<input type="hidden" name="confidence" value="6" />
<input type="hidden" name="urgency" value="5" />
<button type="submit">Capture ↵</button>
</form>
</section>
<section class="feature-set-panel" id="feature-sets" aria-label="Feature set import and export">
<div class="feature-set-copy">
<div class="section-label">Paste the chaos</div>
<h2>Drop in the rough list. Rank turns it into a build order.</h2>
<p>Start with a messy backlog, stakeholder requests, or five half-formed ideas. Rank helps you decide what to build now, what needs evidence, what can wait, and what is just noise wearing a nice hat. JSON import still works if you need it.</p>
</div>
<div class="feature-set-actions">
<textarea id="featureSetInput" spellcheck="false" placeholder='{
"format": "prioritix-feature-set-v1",
"name": "Launch plan",
"features": [
{ "title": "Smart requirement sorting", "description": "Cluster pasted requirements into delivery slices.", "labels": ["AI", "Planning"], "impact": 8, "effort": 5, "confidence": 7, "urgency": 6 }
]
}'></textarea>
<div class="feature-set-toolbar">
<label class="file-pick">Upload .json<input id="featureSetFile" type="file" accept="application/json,.json" /></label>
<button type="button" id="copyAiPrompt" class="ai-prompt-button">Copy AI-ready prompt</button>
<button type="button" id="importFeatureSet">Import features</button>
<button type="button" id="exportFeatureSet">Export sorted setup</button>
</div>
<p class="ai-prompt-status" id="aiPromptStatus" aria-live="polite">Copies a prompt that makes another AI return import-ready Rank JSON.</p>
</div>
</section>
<section class="sorting-layout" id="prioritize">
<section class="active-column" aria-label="Active feature">
<div class="section-label">Active feature</div>
<div class="feature-deck" id="featureDeck"></div>
<div class="deck-actions">
<button type="button" id="skipFeature">▷ Skip</button>
<button type="button" id="postponeFeature">↓ Postpone</button>
</div>
</section>
<section class="grid-column" aria-label="Sorting grid">
<div class="section-label" id="gridLabel">Sorting grid (MVP - 2x2)</div>
<div class="sorting-grid" id="sortingGrid"></div>
<p class="shortcut-hint">Shortcuts: <kbd>1</kbd>-<kbd>4</kbd> place active card · <kbd>P</kbd> park · <kbd>I</kbd> investigate · <kbd>U</kbd> undo · <kbd>/</kbd> capture</p>
</section>
</section>
<section class="utility-row" aria-label="Feature card actions">
<button type="button" data-utility="park"><span></span><strong>Park</strong><small>Valid idea, not relevant now. Revisit later.</small></button>
<button type="button" data-utility="investigate"><span></span><strong>Investigate</strong><small>Needs more research or validation.</small></button>
<button type="button" data-utility="remove"><span></span><strong>Remove</strong><small>Not a good fit. Remove from project.</small></button>
</section>
<section class="timeline-panel" id="roadmap" aria-label="Timeline view">
<div class="timeline-head">
<div>
<h2>Timeline view</h2>
<p>Sorted features become nodes. Drag nodes horizontally to reorder the roadmap; click a node to inspect details.</p>
</div>
<div class="zoom-controls"><button type="button"></button><button type="button"></button><button type="button"></button></div>
</div>
<div class="timeline" id="timeline"></div>
</section>
<section class="backlog-panel" id="backlog">
<div class="section-label">Backlog / utility states</div>
<div id="backlogList" class="backlog-list"></div>
</section>
<section class="review-panel" id="review" aria-label="Sorting completion review">
<div id="reviewPanel"></div>
</section>
</main>
</div>
<aside class="detail" id="detail" aria-hidden="true">
<form id="detailForm">
<div class="detail-head">
<div><span class="category-dot"></span><span id="detailCategory">UI / UX</span></div>
<span class="chip">MVP</span>
<button type="button" id="closeDetail" aria-label="Close">×</button>
</div>
<input name="title" class="detail-title" />
<label>Brief<textarea name="description" rows="4" placeholder="What this feature changes for the product"></textarea></label>
<label>Categories / chips<input name="labels" placeholder="UI / UX, Dependencies, Growth" /></label>
<div class="detail-grid">
<label>User value<input type="number" min="0" max="10" name="impact" /></label>
<label>Effort<input type="number" min="1" max="10" name="effort" /></label>
<label>Confidence<input type="number" min="0" max="10" name="confidence" /></label>
<label>Urgency<input type="number" min="0" max="10" name="urgency" /></label>
</div>
<label>Links, dependencies, notes<textarea name="notes" rows="5" placeholder="Decision notes, source links, dependency risks, acceptance details…"></textarea></label>
<div class="detail-actions">
<button type="button" id="parkDetail">Park</button>
<button type="submit">Save</button>
<button type="button" id="archiveIdea" class="danger">Delete</button>
</div>
</form>
</aside>
<div class="toast" id="toast" hidden></div>
<script src="/app.js?v=rank-sales-20260523-2" type="module"></script>
</body>
</html>