Rank

Interactive feature prioritization tool for rank.friborg.uk.

Product definition

Rank is a fast intake and prioritization board for product ideas from Jimmi and agents.

Core loop:

Capture idea → score impact/effort/confidence/urgency → drag into milestone → revisit top-ranked work

Chosen subdomain: rank.friborg.uk — short, memorable, and honest about the job.

UX principles

  • One-screen capture, no modal ceremony.
  • Keyboard-first: / focuses capture, Enter saves.
  • Plain sharp visual system: zero rounded corners, dark space/glass, high contrast.
  • Milestones are customizable lanes, not a rigid roadmap prison.
  • Agents can post ideas through the same API endpoint as the UI.

Architecture

  • Node/Express app on port 3045
  • Static SPA in public/
  • Appwrite TablesDB persistence
  • Docker deploy on Unraid
  • Gitea remote repo
  • Nginx Proxy Manager routes rank.friborg.uk192.168.30.100:3045

Appwrite schema

Database: priority_rank

Tables:

  • ideas — title, description, source, sourceName, milestoneId, impact, effort, confidence, urgency, score, rank, labels, notes, archived
  • milestones — name, description, horizon, color, position, active
  • activity — small append-only UX feed

Commands

npm run setup:appwrite
npm run check
PORT=3045 node server.js
npm run smoke

Agent idea post:

curl -X POST https://rank.friborg.uk/api/ideas \
  -H 'Content-Type: application/json' \
  -H "Authorization: Bearer $RANK_AGENT_TOKEN" \
  -d '{"title":"Add public roadmap export","source":"agent","sourceName":"Rook","impact":8,"effort":3,"confidence":7,"urgency":5}'
S
Description
Rank feature prioritization tool for humans and agents
Readme 830 KiB
Languages
JavaScript 98.1%
HTML 1.9%