Spritz is a web application built to help users find affordable alternatives—or "dupes"—for high-end perfumes and colognes. Aimed at students, budget-conscious shoppers, and everyday consumers who love great scents without the luxury markup, the app uses AI and web scraping to deliver personalized recommendations. Users simply paste the URL of a luxury fragrance product into the app, and it returns a similar-smelling, budget-friendly option along with images, information, and database generated comparisons. The app works by scraping the provided webpage using Puppeteer, then sending the page HTML to the Gemini API, which identifies the fragrance name and categorizes it based on a predefined list (such as floral, woody, or citrus). Once categorized, the backend checks a PostgreSQL database of known dupes, run through a Docker container, for exact matches. If exact dupes are found, they are returned along with data and purchase links. If no match is found, the app searches for category-based alternatives, ensuring users still receive helpful recommendations that resemble the original fragrance. The front end is built with React.js, and React Router, providing a clean, minimalist, and mobile-friendly experience. The app is divided into two main screens: a landing/chat interface where the user enters the URL, and a results screen showing the matched dupes. The design emphasizes light mode and approachability while maintaining a modern aesthetic. The backend is powered by Gemini API, Puppeteer, Node.js, Express.js, OpenAPI 3.0, PostgreSQL. PostgreSQL serves as the data layer, storing known dupe entries with scent categories, and other useful data. Spritz combines AI, data scraping, and a curated dupe database to make luxury scents more accessible. Whether you're shopping for a signature scent or just curious about cheaper alternatives, Spritzempowers users to smell great without breaking the bank.

Share this project:

Updates