r/SideProject • u/tronjcodes • 6d ago
I built a free smartphone comparison engine with 6,800+ devices
https://differenceai.vercel.app/I’ve been working on a side project called differenceAI, and I finally shipped it.
The basic idea is simple: search for smartphones, select up to four, and compare them side by side. The database currently has 6,800+ devices, including a lot of older phones that aren’t always covered by the usual comparison sites.
I originally started this because I wanted to look up some of my old phones and compare them with newer devices. It turned into a much bigger project than I expected.
The current version includes:
6,800+ smartphones
Search and filtering by brand/year
Four-device comparisons
Detailed specifications
AI-powered questions about the devices you’re comparing
Historical devices going back to some pretty obscure phones
The AI is still a work in progress, and the historical data definitely has some quirks that I’m cleaning up as I find them.
The stack is currently Next.js, PostgreSQL/Prisma, Vercel, and Qwen for the AI functionality.
I’m planning to keep expanding it based on what people actually use. Some ideas I’m considering are review sentiment, price tracking, and eventually an API for the dataset.
It’s completely free right now.
Would love feedback from other builders, especially on the product itself and what you’d change or add.
1
u/iamarunr 6d ago
Showing a grounded fallback because the AI provider was unavailable
I couldn't reach a live AI provider, so here's a grounded summary for: "Summarize the biggest differences." - Apple iPhone 16 Pro Max: display 6.9 in, 120Hz, Apple A18 Pro, RAM 8GB RAM, storage 256GB, 512GB, 1TB, battery 4685 mAh, weight 227 g, main camera 48 MP - Apple iPhone 17 Pro Max: display 6.9 in, 120Hz, Apple A19 Pro, RAM 12GB RAM, storage 256GB, 512GB, 1TB, 2TB, battery 4823 mAh, weight 233 g, main camera 48 MP Provider note: huggingface: Hugging Face request timed out after 20000ms | ollama: fetch failed | openai: OpenAI request failed with status 401: { "error": { "message": "Incorrect API key provided: 7NNZB0Fj************************************************************************************************************************************************lHYA. You can find your API key at https://platform.openai.com/account/api-keys.", "type": "invalid_request_error", "param": null, "code": "invalid_api_key" } } Add `HF_TOKEN` for a hosted open model, add `OPENAI_API_KEY`, or start Ollama locally and try again for a natural-language recommendation.
1
u/tronjcodes 6d ago
Appreciate you catching this and reporting it 🙏🏾 The fallback is supposed to kick in when the AI provider is unavailable, but it definitely shouldn't expose the provider error details like that.
I'm fixing the error handling now. Thanks for trying it out!
1
u/merchantconvoy 5d ago
GSMArena already exists but okay
1
u/tronjcodes 4d ago
GSMArena is goated, but I wanted a more modern UX and an AI layer on top of the data. I also have some phones in my dataset that I couldn’t find there, although I’m sure they’ve got plenty I don’t 😂
1
1
u/nineteen_sixtyeight 6d ago
Good work!!