┌─ 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