AI that thinks
before it searches
Describe what you want naturally — RedThread interprets your intent,
adapts to context, and finds results that actually match.
{!hasSearched && history.length > 0 && (
Your Recent Searches:
{history.slice(0, 3).map((entry) => (
))}
)}
{clarification && !loading && (
)}
{scopeMessage && !loading && (
💡
Platform Guidance
{scopeMessage}
)}
{error && (
{error}
{error.toLowerCase().includes('location') && !userLocation && (
)}
)}
{intent && !error && (
Parsed Intent
AI Reasoning: {intent.reasoning}
Category: {intent.category}
{intent.location && (
Location: {intent.location}
)}
{intent.budget?.max && (
Budget: up to {intent.budget.currency}{intent.budget.max}
)}
{intent.occasion && (
Occasion: {intent.occasion}
)}
)}
{loading && (
{loadingMsg}
{[1, 2, 3, 4].map(i => )}
)}
{easterEgg && !loading && (
✨
"{easterEgg}"
— Kimi no Na wa (Your Name)
)}
{!loading && hasSearched && results.length > 0 && (
Results
{meta && (
{filteredResults.length} of {meta.total} · {meta.source}
)}
{filteredResults.map((r, i) => (
setSelectedResult(r)}
/>
))}
{filteredResults.length === 0 && (
No results match your filters. Try adjusting them.
)}
)}
{hasSearched && !loading && results.length === 0 && !error && (
No results found. Try a different query or location.
)}
{selectedResult && (
setSelectedResult(null)} />
)}
);
}
export default function Home() {
return (