Inspiration

When we shop online, we often get lost in a sea of choices - too many products, too many reviews, and no clear way to know what’s actually worth buying. That frustration inspired us to create Ghost’s Choice: a playful, helpful way to make finding good products easier, faster, and less stressful. We wanted to build something that feels like a friend guiding you through the mess.

What it does

Ghost’s Choice helps users quickly put together the best setup or find the right product within their budget.

  • You enter what you’re looking for (like “gaming setup” or “bedroom decor”).
  • The system plans categories and splits your budget intelligently.
  • Products are fetched and ranked based on price, reviews, and quality.

How we built it

We used Next.js with TypeScript for the web app and styled it with Tailwind CSS.
For product data, we connected with SerpAPI to fetch shopping results.
For planning, ranking, and generating tips, we integrated Gemini.
We also set up Redis caching for performance and smooth sharing, and built custom UI components like product cards, charts, and the ghost loader with animations.

Challenges we ran into

  • Getting consistent product results from SerpAPI, was tricky.
  • Structuring AI prompts so that the ghost gives useful, short tips instead of long paragraphs.
  • Balancing between budget planning and real product availability.
  • Setting up with Spec mode in Kiro was tricky in the beginning and working with such new tool different from copilot felt different but fun, Especially the kiro ghost.

Accomplishments that we're proud of

  • Building a full flow where you type a query and instantly see a curated setup with products.
  • Adding smart budget splitting and ranking so results actually make sense.
  • Designing the ghost to act as a loading animation.
  • Creating a polished UI that feels professional but still playful.

What we learned

  • How to combine multiple APIs (AI + shopping search) into one seamless experience.
  • The importance of caching and retries when dealing with rate limits.
  • That small UI touches, like tips and animations, can make a tool feel much more alive.
  • How to handle fallback logic when APIs fail, so the app still works.
  • Deploying with Vercel.
  • Learning Spec mode with kiro introduction and also we made a mini game with it like the dinosaur runner game in chrome but with colors and it was fun.. but animations was too hard so we gave up on it.

What's next for Ghost's Choice

  • Improving product coverage and making results more reliable.
  • Expanding beyond shopping setups into areas like lifestyle bundles (fitness, travel, work-from-home).
  • Improving the Chrome extension so users can get ghost suggestions directly while browsing.
  • Making the ghost more interactive, with personality and seasonal themes.

Built With

Share this project:

Updates