The ring, the rules, the recovery flows, and what happens when you break the content policy. Can't find what you need? Email support.
Dish KO is a blind dish-duel ring for cooks. You post a dish, the app pits it against another user's dish in a 1v1 duel, and voters pick a winner without seeing either poster's handle. Elo-weighted leaderboard, weekly title, no ads, no follower counts.
Anyone who cooks. Moms, home cooks, food trucks, restaurant chefs, Michelin-starred sous — same bracket, same rules. If you make food, you can enter.
If you don't cook but like voting — that's half the site. /browse and /leaderboard are open. Voting in duels requires the iOS app.
Yes. iOS app is free. No ads. No subscriptions. No "premium" tier. We're sponsored by 1971 Hook — a boutique studio — not by you.
The App Store. Grab it at /download or directly from the top of any page. iOS only for v1; Android is on the roadmap — waitlist sign-up is on the download page.
Two dishes appear side-by-side. You tap the one you'd rather eat. Handles are hidden until after you pick. The winner's record goes up; the loser's goes down. Elo weighting means beating someone higher-ranked is worth more.
By Elo — the same system used in chess rankings. Every duel outcome updates both dishes' ratings. Ties break by KO rate (win %), then by total duels.
The weekly leaderboard (which determines the belt) resets every Sunday 11:59 PM UTC. Most KOs in the week wins.
No. Duels that include one of your own dishes are filtered out of your queue. Accounts that try to work around this across device-switching get detected in pre-moderation.
Every dish enters the duel queue automatically. The queue pairs dishes with similar ratings, so you'll get matched against opponents at your level. No dish sits unmatched longer than 48 hours — the matchmaker forces a pairing past that point.
You cooked it. It's a food. That's it. Stews, pastries, salads, sandwiches, tasting plates, bowls of noodles, street-food skewers — all valid. Plated or paper-basket, no difference. Photos of restaurant food you didn't cook? Not valid. See the content policy.
Yes. Up to 30 seconds, no audio required. Videos get a play icon on the duel card. Voters tap to preview; voting doesn't require watching the whole clip.
Yes. Three-dot menu → Delete. Takes effect immediately — the dish is removed from your profile, the duel queue, and all leaderboards. Duel history on other dishes stays intact (so your losses don't disappear from your opponents' records).
No hard cap. Soft rate-limit of 3 per hour to keep the feed honest — cooks typically need more than 20 minutes between dishes anyway.
Tap Forgot password on the sign-in screen, or go to /forgot-password. You'll get a reset link within one minute. Links expire after an hour.
If the email doesn't arrive, check spam. If still nothing, email support@dishko.app.
From the iOS app, yes — Profile → Edit. Not yet from the web /account page; it's coming. Note: changing your handle breaks any links anyone had to your old one (dishko.app/u/old-name becomes a 404).
Yes, from /account → Account. Enter the new email + your current password. We'll send a verification link to the new inbox. Session is preserved — you don't get signed out.
Apple-sign-in accounts can't change email this way — Apple owns that trust. Email support@dishko.app if you need help.
/account → Delete account. Type DELETE to confirm. Takes effect immediately. Cascades across your posts, votes, follows, and notifications. Irreversible — we don't keep a backup after deletion.
Every report is reviewed by a human moderator within 24 hours weekdays, 48 hours weekends. No ML auto-removal at launch — we'd rather over-review than over-remove.
Dishes with 3+ unique reports are auto-hidden pending review. The poster sees an "Under review" badge and can appeal.
Full policy: /content-policy.
Sexual content, hate speech, violence/gore, CSAM, harassment, promotion of illegal goods, deceptive AI content, off-topic posts (non-food). Full list in the content policy.
Your report goes to the moderation admin panel. A human sees it within the SLA (24h weekdays, 48h weekends). We don't tell the poster who reported them.
Email appeals@dishko.app with your @handle and a description of what happened. Appeals are reviewed by a different moderator than the one who made the original call.
We picked one platform to ship well instead of two to ship badly. Android is on the roadmap — the backend doesn't care what client calls it, so porting is mostly UI work. Sign up for the waitlist on /download.
Email, handle, display name, dish photos/captions/videos, duel votes, flames, follows, device push token, structured event logs. No IDFA. No precise location. No contacts. No browsing data. Full breakdown in the privacy policy.
No. We don't sell user data. We don't run ads. We don't share with data brokers. Infrastructure providers (Hetzner, AWS, Apple, Sentry) see what they need to provide their service — nobody else does.
Hetzner (Germany) for the API + Postgres. AWS S3 for dish photos. AWS SES for email. Apple Push for notifications. Sentry for crash reporting. No AWS/GCP lock-in; we picked hosts that match the values (cost-aware, not hyperscale-dependent).
No — proprietary for now. We may open-source parts of the backend in the future (Elo calculation, matchmaking) once the algorithms stabilize.
Email support@dishko.app — one inbox, one human reply, within 24 hours weekdays.