space
We found purchasing furniture & home accesories tedious; which is why we built space with the help of Perplexity. The space product allows us to speak via natural language to an ElevenLabs agent which guides us through the tedious process of buying furniture & showcasing how it would look like in our room.
In our personal experience we found that:
- It takes a lot of mental effort & time to find what we actually want
- It's hard to envision what the furniture would look like in our personal room
Which is why we built space. Traditional image generation tools can generate images of a given space and modify the product, but the products it generates don't exist in the real world. We solved this problem.
🎯 Project Overview
space streamlines the furtniture purchasing experience, by:
- Gathering images from the users' room of choice
- Conduct intelligent consultations with users through natural language
- Extracting requirements from the user of their preferences
- Doing a wide scan of the net with the help of Perplexity to scan for URLs of our products
- Extracting data of the products via the use of Jina AI
🏗️ Architecture
💻 Tech Stack
- Perplexity – searching the web
- Cursor – for rapid prototyping
- Python – backend language
- FastAPI – backend framework
- TypeScript – frontend language
- React – frontend framework
- JinaAI – product extraction
- shadcn/ui – the standard for components
How the Perplexity API was Integrated?
We leverage Perplexity's Sonar Pro model with web search capabilities to discover furniture products across multiple UK retailers. The system uses targeted search queries with site-specific filters to find individual product pages, then employs Jina AI Reader to extract clean, structured content from retailer websites using custom CSS selectors. Perplexity's Sonar model then parses this content to extract structured product data (name, price, description, images). Advanced URL filtering ensures only valid product pages are processed, while intelligent parsing handles different retailer page structures. This creates a unified search experience that aggregates real-time product information from multiple sources with high accuracy and comprehensive coverage.
Reasoning and Retrieval Capabilities
Our system uses advanced URL filtering and retailer-specific CSS selectors to extract clean product information. The multi-stage reasoning pipeline includes intelligent product type matching, price validation, and concurrent processing for optimal performance. Users get comprehensive furniture recommendations with structured pricing, descriptions, and images from multiple sources in seconds, delivering higher accuracy than traditional search approaches.
🚀 Running the Project
Quick Start (Frontend Only)
The backend is deployed on Cloud Run, so you only need to run the frontend locally:
cd frontend
npm i
VITE_ELEVENLABS_AGENT_ID=your-agent-id
npm run dev
# Runs on http://localhost:5173
Visit http://localhost:5173 to use the app.
Full Local Development (Optional)
Only needed if you're developing backend features.
Environment Variables:
Create a .env file in the backend directory:
# Required
PERPLEXITY_API_KEY=your-perplexity-key
# Optional (for Google Cloud features)
GCS_BUCKET_NAME=your-bucket-name
GCP_PROJECT_ID=your-project-id
GCS_CREDENTIALS_PATH=path/to/service-account-key.json
Backend:
cd backend
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
python main.py
# Runs on http://localhost:8000
Team
Built With
- cursor
- docker
- elevenlabs
- fastapi
- gcp
- github
- githubactions
- jina
- perplexity
- react
- typescript
Log in or sign up for Devpost to join the conversation.