← Back to Docs
FEATURE SPEC

Recipe Voting System

Community-driven recipe ranking with weighted votes, cooldown timers, and fraud detection.

⬆️

Upvote / Downvote

One vote per user per recipe. Toggle to change or retract.

⏱️

Cooldown Window

5-minute cooldown between vote changes prevents rapid manipulation.

🛡️

Fraud Detection

Fingerprint-based deduplication catches sock-puppet accounts.

Vote Weight Formula

weight = base_weight
  × (1 + 0.1 × account_age_months)
  × (1 + 0.05 × verified_recipes)
  × reputation_multiplier

New accounts start at 1.0×. Power users with verified recipes and long account history earn up to 3.5× vote weight.

API Endpoints

POST/api/v1/recipes/:id/vote

Body: { "direction": "up" | "down" }. Returns new score and user vote status.

GET/api/v1/recipes/:id/votes

Returns aggregate score, total votes, and current user's vote.

Leaderboard Integration

Top-voted recipes surface on the trending leaderboard with a 24-hour rolling window. Stale votes decay at 2% per hour to keep content fresh.

View leaderboard spec →
Meridian Docs · Last updated 2026-01-14