| Crates.io | this_or_that |
| lib.rs | this_or_that |
| version | 0.1.1 |
| created_at | 2026-01-24 15:18:08.720181+00 |
| updated_at | 2026-01-24 15:49:05.449402+00 |
| description | Ratings website that uses Chess style rankings. |
| homepage | https://crates.io/crates/this-or-that |
| repository | https://github.com/ali-raheem/this-or-that |
| max_upload_size | |
| id | 2066840 |
| size | 1,490,629 |
A generic ELO-based ranking webapp where users vote on head-to-head matchups. Items gain or lose rating points based on votes, creating a chess-style ranking system that's fairer than simple star ratings.
You can see it in action here This or That Rocks.
Clone the repository
Create configuration:
cp Rocket.toml.example Rocket.toml
# Edit Rocket.toml with your settings
Initialize the database:
mkdir -p data
sqlite3 data/movies.db < schema.sql
Populate with items (see example/TMDB.md for movie data)
Run the server:
cargo run
See Rocket.toml.example for all options. Key settings:
| Option | Description |
|---|---|
name |
Site name displayed in header |
items |
What you're ranking (e.g., "Movie", "Album") |
k |
ELO k-factor: 16 (slow), 32 (standard), 64 (fast) |
image_path_base_url |
Base URL prepended to image paths |
default_ranking_count |
Items shown in rankings |
| Key | Action |
|---|---|
1 or ← |
Vote for left item |
2 or → |
Vote for right item |
Space |
Skip matchup |
The example/ directory contains scripts for populating the database:
The Rust backend and code of this project is all artisanal hand coded, the front end is heavily edited by AI. Documentation like the README is also largely written based on notes by AI.
MIT License