diff --git a/.superpowers/brainstorm/44094-1777186296/content/badge-naming.html b/.superpowers/brainstorm/44094-1777186296/content/badge-naming.html
new file mode 100644
index 0000000..a25f64a
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/content/badge-naming.html
@@ -0,0 +1,33 @@
+
Badge Naming — "Native Champion" Alternatives
+This badge marks games/presets that hit 60+ FPS with zero FSR and zero frame generation. Which name fits the brand best?
+
+
+
+
A
+
+
Raw Performer
+
Emphasizes unassisted performance. Technical, no-nonsense. "Raw" signals no upscaling tricks.
+
+
+
+
B
+
+
Pure Performance
+
Clean and clear. "Pure" = untouched settings. Easy to understand at a glance.
+
+
+
+
C
+
+
Native Champion
+
Your original idea. "Champion" has a competitive/gaming feel. Slightly longer.
+
+
+
+
D
+
+
Untouched
+
Short, punchy. Implies the game runs great without any modifications. Memorable.
+
+
+
diff --git a/.superpowers/brainstorm/44094-1777186296/content/game-page-layout.html b/.superpowers/brainstorm/44094-1777186296/content/game-page-layout.html
new file mode 100644
index 0000000..9fc9326
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/content/game-page-layout.html
@@ -0,0 +1,149 @@
+Game Page Layout — Overall Structure
+Here's the proposed page structure top-to-bottom. Each section is labeled.
+
+
+
+
+
+
+
+ 2:3 Cover
+
+
+
+
Game Title Here
+
Developer · Publisher · Genre, Genre
+
+
+ 🎮 42 Benchmarks
+ ⚙️ 8 Presets
+ 💬 15 Comments
+ Metascore: 87
+ $29.99
+
+
+
+ Steam ↗
+ ProtonDB ↗
+ SteamDB ↗
+
+
+
+ 📊 42 benchmarks
+ 📋 3 game versions
+ ✅ 12 verified entries
+ 🕐 Last updated 2 days ago
+
+
+
+
+
+
+
+
+
+
+
+
About
+
Game description text goes here. This is the Steam short description that gets synced from the store page. It provides context about what the game is about...
+
+
+
Details
+
+
Source: Steam
+
AppID: 1234567
+
Added: Jan 15, 2026
+
Last Sync: 2 days ago
+
+
+
+
+
+
+
+
+
+
+
Select Devices
+
+
✓ Steam Deck OLED
+
Steam Deck LCD
+
Steam Machine
+
+
+
Filters
+
+
+ All Proton Versions
+
+
+ All SteamOS Versions
+
+
+ FSR: Any
+
+
+ Frame Gen: Any
+
+
+
+
+
+
+
+
+
+
+
+
AVG FPS Distribution (Boxplot)
+
+ [Boxplot: Min / Q1 / Median / Q3 / Max per device]
+
+
+
+
+
Historical AVG FPS (Stacked Area)
+
+ [Area chart: FPS over time by proton/OS version]
+
+
+
+
+
FPS by Upscaler & Frame Gen
+
+ [Grouped bar: FPS by FSR version × frame gen method]
+
+
+
+
+
Entries per Device
+
+ [Pie/donut or bar: count per device]
+
+
+
+
+
+
+
+
+
+
Community Presets
+
+
+
+
"Best Quality" by @user1
+
Steam Deck OLED · ↑ 24 · 8 settings
+
+
Avg 45 FPS
+
+
+
+
"Battery Saver" by @user2
+
Steam Deck OLED · ↑ 18 · 6 settings
+
+
Avg 60 FPS
+
+
+
+
diff --git a/.superpowers/brainstorm/44094-1777186296/content/game-page-v2.html b/.superpowers/brainstorm/44094-1777186296/content/game-page-v2.html
new file mode 100644
index 0000000..5eee674
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/content/game-page-v2.html
@@ -0,0 +1,223 @@
+Game Page v2 — Updated Layout
+Changes: "Raw Performer" badge, no duplicate stats, full-width priority charts, enhanced preset cards.
+
+
+
+
+
+
+
+
+
+
+ 2:3 Cover
+
+
+
+
+ Game Title Here
+
+ ⚡ RAW PERFORMER
+
+
Developer · Publisher · Genre, Genre
+
+
+ 🎮 42 Benchmarks
+ ⚙️ 8 Presets
+ 💬 15 Comments
+ Metascore: 87
+ $29.99
+
+
+
+ Steam ↗
+ ProtonDB ↗
+ SteamDB ↗
+
+
+
+ 📋 3 versions
+ ✅ 12 verified
+ 🕐 Synced 2 days ago
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
About
+
Game description text goes here. This is the Steam short description that gets synced from the store page...
+
+
+
Details
+
+
Source: Steam
+
AppID: 1234567
+
Added: Jan 15, 2026
+
Last Sync: 2 days ago
+
+
+
+
+
+
+
+
+
+
+
+
+
Select Devices
+
+
✓ Steam Deck OLED
+
Steam Deck LCD
+
+
+
Filters
+
+ All Proton Versions
+ All SteamOS Versions
+ FSR: Any
+ Frame Gen: Any
+
+
+
+
+
+
+
+
+
+
+
+
+
+
📈 Historical AVG FPS — Full Width
+
+ [Stacked Area: AVG FPS trend over time, grouped by Proton/SteamOS version]
+
+
+
+
+
+
🎮 FPS by Upscaler & Frame Gen — Full Width
+
+ [Grouped Bar: FPS by FSR version (none/1/2/3) × Frame Gen (none/fsr_fg/dlss_fg), with label rotation]
+
+
+
+
+
+
+
📊 AVG FPS Boxplot
+
+ [Boxplot per device: Min/Q1/Median/Q3/Max]
+
+
+
+
🖥️ Entries per Device
+
+ [Donut: benchmark count per device]
+
+
+
+
+
+
+
+
📉 FPS Range (Low vs High)
+
+ [Range bar: fpsLow → fpsHigh per entry]
+
+
+
+
⏱️ Load Times (SSD vs SD)
+
+ [Bar: SSD vs SD load times — only shows if data exists]
+
+
+
+
+
+
+
✅ Community Trust — Full Width
+
+ [Horizontal bar: verified badge count + upvote/downvote ratio per benchmark entry]
+
+
+
+
+
+
+
+
+
+
+
+
Community Presets
+
+
+
+
+
+
+ "Vanilla 60fps"
+ ⚡ RAW PERFORMER
+
+
by @user1 · Steam Deck OLED · ↑ 24 votes · 8 settings
+
No FSR · No Frame Gen · Proton 9.0-4 · SteamOS 3.6.20
+
+
+
62 FPS
+
avg · 48 low · 71 high
+
+
+
+
+
+
+
+
+
+ "Max Quality + FSR"
+
+
by @user2 · Steam Deck OLED · ↑ 18 votes · 10 settings
+
+ FSR 3 · FSR Frame Gen · Proton 9.0-4 · SteamOS 3.6.20
+
+
+
+
85 FPS
+
avg · 72 low · 94 high
+
+
+
+
+
+
+
+
+
+ "Balanced + DLSS FG"
+
+
by @user3 · Steam Deck LCD · ↑ 9 votes · 7 settings
+
+ FSR 2 · DLSS Frame Gen · Proton 8.0-5 · SteamOS 3.5.19
+
+
+
+
72 FPS
+
avg · 58 low · 81 high
+
+
+
+
+
diff --git a/.superpowers/brainstorm/44094-1777186296/content/search-badge.html b/.superpowers/brainstorm/44094-1777186296/content/search-badge.html
new file mode 100644
index 0000000..9762868
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/content/search-badge.html
@@ -0,0 +1,60 @@
+Search Card — Raw Performer Badge
+How the badge appears on search result cards. Same green pill style as the game page hero.
+
+
+
+
+
+
+
+
+ 2:3
+
+
+
+
+
+ Baldur's Gate 3
+ ⚡ RAW PERFORMER
+
+
Larian Studios · Publisher
+
Gather your party and return to the Forgotten Realms in a tale of fellowship and betrayal...
+
+
+ RPG
+ Strategy
+
+
+
+ 🎮 28 Benchmarks
+ ⚙️ 5 Presets
+ 💬 12 Comments
+
+
+
+
+
+
+
+ 2:3
+
+
+
+ Cyberpunk 2077
+
+
+
CD Projekt Red · Publisher
+
An open-world action-adventure story set in Night City...
+
+ RPG
+ Action
+
+
+ 🎮 45 Benchmarks
+ ⚙️ 12 Presets
+ 💬 34 Comments
+
+
+
+
+
diff --git a/.superpowers/brainstorm/44094-1777186296/content/search-card-final.html b/.superpowers/brainstorm/44094-1777186296/content/search-card-final.html
new file mode 100644
index 0000000..7bf2b75
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/content/search-card-final.html
@@ -0,0 +1,130 @@
+Search Card — Final Design
+Existing layout preserved. Added: Raw Performer badge, real Avg FPS, real Version. No other layout changes.
+
+
+
+
+
+
+
+ 2:3
+
+
+
+
+
+ Baldur's Gate 3
+ ⚡ RAW PERFORMER
+
+
Larian Studios · Publisher
+
Gather your party and return to the Forgotten Realms...
+
+
+ RPG
+ Strategy
+
+
+
+ 🎮 28 Benchmarks
+ ⚙️ 5 Presets
+ 💬 12 Comments
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2:3
+
+
+
+
Cyberpunk 2077
+
CD Projekt Red · Publisher
+
An open-world action-adventure story set in Night City...
+
+ RPG
+
+
+ 🎮 45 Benchmarks
+ ⚙️ 12 Presets
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2:3
+
+
+
Elden Ring
+
FromSoftware · Bandai Namco
+
THE NEW FANTASY ACTION RPG...
+
+ RPG
+ Action
+
+
+
+ Steam ↗
+ ProtonDB ↗
+ SteamDB ↗
+
+
+
+
+
+
+
diff --git a/.superpowers/brainstorm/44094-1777186296/content/stats-layouts.html b/.superpowers/brainstorm/44094-1777186296/content/stats-layouts.html
new file mode 100644
index 0000000..b3928f9
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/content/stats-layouts.html
@@ -0,0 +1,191 @@
+Stats Dashboard — Layout Alternatives
+Three layout options for the statistics section. Click the one that feels best.
+
+
+
+
+
+
+
+
A
+
Featured Row + Asymmetric Grid
+
Top chart gets a larger container with summary stats beside it. Remaining charts in a flowing grid.
+
+
+
+
+
+
📈 Historical AVG FPS FEATURED
+
[Stacked Area Chart — full width of container]
+
+
+
+
+
+
+
🎮 FPS by Upscaler & Frame Gen FULL
+
[Grouped Bar — FSR version × Frame Gen method]
+
+
+
+
+
+
📊 Boxplot
+
[FPS distribution per device]
+
+
+
📉 FPS Range
+
[Low → High per entry]
+
+
+
🖥️ Devices
+
[Donut: entries per device]
+
+
+
+
+
+
✅ Community Trust FULL
+
[Horizontal bar: verified + vote ratio per entry]
+
+
+
+
+
+
+
+
+
B
+
Dashboard Cards with KPI Strip
+
Quick-glance KPI numbers at top, then a clean 2×2 grid of charts, with full-width charts breaking the rhythm where needed.
+
+
+
+
+
+
+
+
📈 Historical AVG FPS FULL
+
[Stacked Area]
+
+
+
+
+
+
🎮 FPS by Upscaler & Frame Gen
+
[Grouped Bar]
+
+
+
📊 FPS Distribution (Boxplot)
+
[Boxplot per device]
+
+
+
📉 FPS Range
+
[Low → High]
+
+
+
🖥️ Entries per Device
+
[Donut]
+
+
+
+
+
+
✅ Community Trust FULL
+
[Horizontal bar]
+
+
+
+
+
+
+
+
+
C
+
Sectioned with Visual Separator
+
Divides stats into logical groups with subtle dividers. Each group has a label. Full-width charts anchor each section.
+
+
+
+
+
Performance Overview
+
+
📈 Historical AVG FPS FULL
+
[Stacked Area]
+
+
+
+
📊 FPS Distribution
+
[Boxplot]
+
+
+
📉 FPS Range
+
[Low → High]
+
+
+
+
+
+
+
Technology Impact
+
+
🎮 FPS by Upscaler & Frame Gen FULL
+
[Grouped Bar]
+
+
+
+
+
+
Data Coverage & Trust
+
+
+
+
✅ Community Trust FULL
+
[Horizontal bar]
+
+
+
+
+
diff --git a/.superpowers/brainstorm/44094-1777186296/content/stats-priority.html b/.superpowers/brainstorm/44094-1777186296/content/stats-priority.html
new file mode 100644
index 0000000..24d8f04
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/content/stats-priority.html
@@ -0,0 +1,63 @@
+Stats Dashboard — Chart Priority
+Which charts should be full-width (high importance) vs half-width? Select all that you want full-width.
+
+
+
+
📊
+
+
AVG FPS Boxplot
+
Min / Q1 / Median / Q3 / Max per device. Shows spread and outliers. Core metric.
+
+
+
+
📈
+
+
Historical AVG FPS (Stacked Area)
+
FPS trend over time by Proton/SteamOS version. Shows if updates help or hurt performance.
+
+
+
+
🎮
+
+
FPS by Upscaler & Frame Gen (Grouped Bar)
+
Compare FPS across FSR versions × frame gen methods. Shows the real cost/benefit of each combo.
+
+
+
+
🖥️
+
+
Entries per Device (Donut)
+
Simple count of benchmarks per hardware. Shows data coverage.
+
+
+
+
📉
+
+
FPS Range: Low vs High (Range Bar)
+
Visualizes fpsLow to fpsHigh spread per entry. Shows consistency — tight range = stable performance.
+
+
+
+
⏱️
+
+
Load Times: SSD vs SD (Bar)
+
Compare storage load times. Only shows when data exists. Useful for games with long loads.
+
+
+
+
🐧
+
+
Proton Version Breakdown (Stacked Bar)
+
Distribution of entries by Proton version. Shows which Proton builds are most tested.
+
+
+
+
✅
+
+
Community Trust: Verified & Votes (Horizontal Bar)
+
Shows verified count + upvote/downvote ratio per entry. Helps identify the most trusted benchmarks.
+
+
+
+
+Charts you select will be full-width (one per row). Unselected charts will be half-width (2 per row).
diff --git a/.superpowers/brainstorm/44094-1777186296/state/server-info b/.superpowers/brainstorm/44094-1777186296/state/server-info
new file mode 100644
index 0000000..2731161
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/state/server-info
@@ -0,0 +1 @@
+{"type":"server-started","port":49813,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:49813","screen_dir":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content","state_dir":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/state"}
diff --git a/.superpowers/brainstorm/44094-1777186296/state/server.log b/.superpowers/brainstorm/44094-1777186296/state/server.log
new file mode 100644
index 0000000..f307d72
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/state/server.log
@@ -0,0 +1,15 @@
+{"type":"server-started","port":49813,"host":"127.0.0.1","url_host":"localhost","url":"http://localhost:49813","screen_dir":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content","state_dir":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/state"}
+{"type":"screen-added","file":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content/game-page-layout.html"}
+{"type":"screen-added","file":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content/badge-naming.html"}
+{"source":"user-event","type":"click","text":"A\n \n Raw Performer\n Emphasizes unassisted performance. Technical, no-nonsense. \"Raw\" signals no upscaling tricks.","choice":"raw-performer","id":null,"timestamp":1777186841487}
+{"type":"screen-added","file":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content/stats-priority.html"}
+{"source":"user-event","type":"click","text":"📈\n \n Historical AVG FPS (Stacked Area)\n FPS trend over time by Proton/SteamOS version. Shows if updates help or hurt performance.","choice":"historical","id":null,"timestamp":1777186897413}
+{"source":"user-event","type":"click","text":"✅\n \n Community Trust: Verified & Votes (Horizontal Bar)\n Shows verified count + upvote/downvote ratio per entry. Helps identify the most trusted benchmarks.","choice":"verified-sentiment","id":null,"timestamp":1777186960801}
+{"source":"user-event","type":"click","text":"🖥️\n \n Entries per Device (Donut)\n Simple count of benchmarks per hardware. Shows data coverage.","choice":"device-pie","id":null,"timestamp":1777186972946}
+{"source":"user-event","type":"click","text":"🖥️\n \n Entries per Device (Donut)\n Simple count of benchmarks per hardware. Shows data coverage.","choice":"device-pie","id":null,"timestamp":1777186978613}
+{"source":"user-event","type":"click","text":"🎮\n \n FPS by Upscaler & Frame Gen (Grouped Bar)\n Compare FPS across FSR versions × frame gen methods. Shows the real cost/benefit of each combo.","choice":"upscaler-bar","id":null,"timestamp":1777186980875}
+{"type":"screen-added","file":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content/game-page-v2.html"}
+{"type":"screen-added","file":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content/stats-layouts.html"}
+{"source":"user-event","type":"click","text":"A\n Featured Row + Asymmetric Grid\n Top chart gets a larger container with summary stats beside it. Remaining charts in a flowing grid.\n\n \n \n \n \n 📈 Historical AVG FPS FEATURED\n [Stacked Area Chart — full width of container]\n \n \n \n Overall Avg\n 54 FPS\n \n \n Best Device\n OLED\n \n \n Entries\n 42\n \n \n \n\n \n \n 🎮 FPS by Upscaler & Frame Gen FULL\n [Grouped Bar — FSR version × Frame Gen method]\n \n\n \n \n \n 📊 Boxplot\n [FPS distribution per device]\n \n \n 📉 FPS Range\n [Low → High per entry]\n \n \n 🖥️ Devices\n [Donut: entries per device]\n \n \n\n \n \n ✅ Community Trust FULL\n [Horizontal bar: verified + vote ratio per entry]","choice":"a","id":null,"timestamp":1777187409898}
+{"type":"screen-added","file":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content/search-badge.html"}
+{"type":"screen-added","file":"/Users/adrianbonpin/Documents/Code/personal/deckyvault/.superpowers/brainstorm/44094-1777186296/content/search-card-final.html"}
diff --git a/.superpowers/brainstorm/44094-1777186296/state/server.pid b/.superpowers/brainstorm/44094-1777186296/state/server.pid
new file mode 100644
index 0000000..9442c77
--- /dev/null
+++ b/.superpowers/brainstorm/44094-1777186296/state/server.pid
@@ -0,0 +1 @@
+44103
diff --git a/app/page.tsx b/app/page.tsx
index aeed0d5..831a1ce 100644
--- a/app/page.tsx
+++ b/app/page.tsx
@@ -39,9 +39,10 @@ export default function Landing() {
DeckyVault
+ beta
searchParams.get("q") || "")
+ const [searchQuery, setSearchQuery] = useState(
+ () => searchParams.get("q") || "",
+ )
const debouncedQuery = useDebounce(searchQuery, 300)
const [mobileMenuOpen, setMobileMenuOpen] = useState(false)
const [isFocused, setIsFocused] = useState(false)
@@ -31,8 +33,7 @@ export default function Navbar() {
// doesn't overwrite the URL params before it catches up.
const skipNextUrlWrite = useRef(false)
- const { data: session, isPending: isSessionLoading } =
- useSession()
+ const { data: session, isPending: isSessionLoading } = useSession()
const [userMenuOpen, setUserMenuOpen] = useState(false)
// Sync search query with URL ?q= param
@@ -207,74 +208,87 @@ export default function Navbar() {
{route.title}
))}
-
-
- {/* Desktop Auth Controls */}
-
- {isSessionLoading ? (
-
- ) : session ? (
-
-
setUserMenuOpen(!userMenuOpen)}
- className='flex items-center gap-2 px-2 py-1.5 rounded-lg hover:bg-white/[0.05] transition-colors'
+
+ {isSessionLoading ? (
+
+ ) : session ? (
+
- {session.user.image ? (
-
- ) : (
-
-
-
- )}
-
- {session.user.name}
-
-
- {userMenuOpen && (
- <>
-
setUserMenuOpen(false)}
- />
-
-
{
+
+ setUserMenuOpen(!userMenuOpen)
+ }
+ className='flex items-center gap-2 px-2 py-1.5 rounded-lg hover:bg-white/5 transition-colors'
+ >
+ {session.user.image ? (
+
+ ) : (
+
+
+
+ )}
+
+ {session.user.name}
+
+
+ {userMenuOpen && (
+ <>
+
setUserMenuOpen(false)
- await authClient.signOut()
- }}
- className='w-full flex items-center gap-2 px-3 py-2 text-sm text-[#ebe4f1]/70 hover:text-[#ebe4f1] hover:bg-white/[0.05] transition-colors'
- >
-
- Sign out
-
-
- >
- )}
-
- ) : (
- <>
-
+
+ {
+ setUserMenuOpen(false)
+ await authClient.signOut()
+ }}
+ className='w-full flex items-center gap-2 px-3 py-2 text-sm text-text/70 hover:text-text hover:bg-text/5 transition-colors'
+ >
+
+ Sign out
+
+
+ >
+ )}
+
+ ) : (
+
- Sign in
-
-
- Sign up
-
- >
- )}
-
+
+ login
+
+
+ )}
+
+
{/* Mobile Hamburger Button */}
{/* Mobile Auth Controls */}
-
+
{isSessionLoading ? (
-
+
) : session ? (
@@ -352,15 +366,15 @@ export default function Navbar() {
className='h-8 w-8 rounded-full'
/>
) : (
-
-
+
+
)}
-
+
{session.user.name}
-
+
{session.user.email}
@@ -370,7 +384,7 @@ export default function Navbar() {
setMobileMenuOpen(false)
await authClient.signOut()
}}
- className='w-full flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-white/10 text-sm text-[#ebe4f1]/70 hover:text-[#ebe4f1] hover:bg-white/[0.05] transition-colors'
+ className='w-full flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-white/10 text-sm text-text/70 hover:text-text hover:bg-text/5 transition-colors'
>
Sign out
@@ -380,17 +394,12 @@ export default function Navbar() {
setMobileMenuOpen(false)}
- className='block w-full text-center px-3 py-2 rounded-lg border border-white/10 text-sm text-[#ebe4f1] hover:bg-white/[0.05] transition-colors'
+ onClick={() =>
+ setMobileMenuOpen(false)
+ }
+ className='block w-full text-center px-3 py-2 rounded-lg border border-white/10 text-sm text-text hover:bg-text/5 transition-colors'
>
- Sign in
-
- setMobileMenuOpen(false)}
- className='block w-full text-center px-3 py-2 rounded-lg bg-[#eb3779] text-white text-sm font-medium hover:bg-[#eb3779]/90 transition-colors'
- >
- Sign up
+ Login
)}