FindByColor

[MVP Live] Created: October 2026 [Live Demo ↗]
The Idea: Visual search engine querying Unsplash and The Met Museum collections by dominant color and hue

The Idea

Traditional search engines index content almost exclusively through text tokens. For visual creators—designers, art directors, illustrators, and moodboard curators—this creates constant friction. When you need visual inspiration, you don’t merely search for a “sofa” or an “ocean sunrise”; you search for a precise color atmosphere: deep sage green, burnt terracotta, or moody cerulean.

FindByColor bridges textual intent with chromatic filtering, allowing users to discover high-resolution photography and classical museum artworks filtered by dominant color palettes.

System Architecture & Technical Stack

FindByColor is engineered with a strict Vertical Slice Architecture (VSA), keeping frontend and backend decoupled through clean OpenAPI contracts.

1. Frontend: Svelte 5 & Apple iOS 27 Design System

The frontend is a lightweight, zero-node-runtime Single Page Application (SPA) compiled via Vite into static assets:

  • Svelte 5 Runes: Built entirely with Svelte 5 reactive primitives ($state, $derived, $effect) for sub-10ms state updates and clean component lifecycle management.
  • iOS 27 Liquid Glass & Materials: Conforms strictly to the Apple iOS 27 Design System. Features specular highlights, darkened glass borders (.liquid-glass-small, .liquid-glass-medium), and native Apple San Francisco typography.
  • Chromatic Controls: Custom segmented color pills with dynamic hue indicators, responsive iOS Photos-style photo galleries, and blurred backdrop sheet dialogs with attribution links.
  • Adaptive Theming: Seamless automatic switching between iOS light and dark system appearances.

2. Backend: FastAPI & Vertical Slices

  • FastAPI Core: Asynchronous Python 3.12+ backend leveraging Pydantic v2 schemas for strict request validation and automatic OpenAPI documentation.
  • Vertical Slice Architecture: Code is encapsulated by feature domains (search_images, coverage_analysis) rather than technical layers, containing feature-specific endpoints, schemas, queries, and orchestration services.
  • Fail-Fast Error Policy: Opaque, instant-failure error propagation without silent fallbacks or masked connection issues.

3. Distributed Pipeline & Data Layer

  • PostgreSQL 16 & SQLAlchemy 2.0: Relational database persistence using async engine (asyncpg) and version-controlled database migrations via Alembic.
  • Redis & Celery Workers: Distributed task queue for asynchronous ingestion pipelines, color quantization, and indexing tasks without blocking HTTP request lifecycles.
  • Celery Flower: Integrated real-time web monitoring and metrics dashboard for Celery worker queues.

4. Multi-Provider Ingestion Protocol

FindByColor normalizes heterogeneous upstream catalog APIs through a unified provider interface:

  • Unsplash API: High-resolution editorial photography with photographer attribution compliance and referral links.
  • The Metropolitan Museum of Art (The Met): Open Access CC0 public collection spanning more than 5,000 years of global art history.

Current Status

MVP Live & Operational. The application is deployed in production, providing responsive color search across both photography and museum collections.