PRoast|Documentation

┌─ Getting Started ─┐

PRoast is a brutally honest AI code reviewer. Paste your code or connect a GitHub PR, select your pain tolerance, and receive feedback that actually helps you improve.

How It Works

[1] Paste code or enter a GitHub PR URL
[2] Choose your roast level (Gentle to Savage)
[3] Get detailed feedback with actual fixes
[4] Share your roast card on social media

Quick Example

input: awful_code.js
function getData(x) {
  var data = null;
  for (var i = 0; i < x.length; i++) {
    if (x[i] != null && x[i] != undefined) {
      data = x[i];
    }
  }
  return data;
}
output: brutal roast
┌─────────────────────────────────────────────────────────┐
│  ROAST LEVEL: BRUTAL                           >:(      │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  "Did you write this with your elbows?"                 │
│                                                         │
│  ISSUES DETECTED: 6                                     │
│                                                         │
│  [!] Using 'var' in 2024? Bold choice.                  │
│  [!] 'getData' tells me nothing. What data? From where? │
│  [!] This loop does ONE thing: return the last non-null │
│      value. Ever heard of Array.findLast()?             │
│  [!] Checking != null AND != undefined? Just use x[i]   │
│  [!] No types. No safety. Just vibes.                   │
│  [!] Single letter param 'x'? Very mysterious.          │
│                                                         │
└─────────────────────────────────────────────────────────┘

ACTUAL FIX:
const getLastValidItem = (items: unknown[]): unknown =>
  items.findLast(item => item != null);

Supported Languages

[+] JavaScript
[+] TypeScript
[+] Python
[+] Go
[+] Rust
[+] Java
[+] C#
[+] Ruby
[+] PHP