Completed Workshop

Specrival Is Live

Role
Design and Development
Stack
React, PocketBase, Hostinger Horizons

This one gets to sit in the Completed column, which doesn’t happen often enough in this category.

specrival.com is finished and live; free to use, no catch. It’s been a background project for a while, one of those things that lived in half-finished commits and “I’ll get back to this” folders for longer than I’d like to admit. Shipping something all the way to done, instead of leaving it at 90%, is its own small milestone completely separate from whatever the tool actually does.

specrival-comparison

What it does

SpecRival puts two phones side by side and lines their specs up row by row: display, camera, battery, performance, design and price. Pick a phone on each side, and the comparison builds itself. No accounts, no paywall, and nothing to install.

How it was built

I built it solo, with Claude as my technical collaborator. The stack is React on the front end, PocketBase for the phone data, and Hostinger Horizons for hosting.

The biggest surprise came partway through. Horizons keeps two separate data layers: the PocketBase database, and data hardcoded into the front end. Changing a phone in one place didn’t change it everywhere, so every component had to be migrated deliberately before the database became the single source of truth. It wasn’t glamorous work, but it’s the reason the numbers on the site agree with each other now.

The unglamorous part

Before launch, I did a full verification pass on every phone in the database, 45 of them, checking each spec rather than trusting the first source I’d pulled it from. A comparison tool with wrong numbers is worse than no tool at all.

Mobile took its own round of fixes: columns that didn’t line up, the keyboard popping open on its own, touch and scroll fighting each other, and side-by-side summary cards so the result reads at a glance on a small screen.

What got cut

I built a Share Comparison feature, so you could send someone a link to a specific matchup. It didn’t survive. Hostinger’s static hosting couldn’t support it the way it needed to work, so I removed it rather than ship something half-broken. Cutting it was the right call, even if it stung a little.

Launch

It launched with Google AdSense, Search Console and a submitted sitemap, plus a SpecRival Facebook Page. I also wrote everything I learned into a build journal, with the lessons and the prompt templates, so the next project starts from a better place than this one did.

If you’re curious, go poke around: specrival.com. Try it on your own phone against whatever you’re eyeing next.

On to whatever’s next in this category.

CHOOSE YOUR NEXT QUEST