ycon.cc
Client: Hobby project
Semantic search engine for 300,000+ icons for developers and designers. Search understands context and synonyms in 7 languages — AI enriched every icon via massive parallel processing through Symfony Messenger. One click gets you ready-to-use code for 13 frameworks: React, Vue, Symfony, Svelte, Angular, Laravel, Next.js, and more.
About the Project
A high-performance semantic search platform for graphic designers and developers. The "ycon" project was born out of personal frustration: while working with Symfony UX Icons, I realized I had installed the exact same icon from three different packages. Traditional full-text search is not enough — it fails on missing contexts and language variants. ycon.cc solves this problem once and for all: semantic search that understands context and intent.
The system uses Generative AI for automated metadata enrichment — each of the 300,000+ icons underwent semantic synonym generation and translation into 7 world languages (SK, CS, EN, DE, FR, ES, PL). The entire enrichment pipeline runs asynchronously via Symfony Messenger in massively parallel threads, enabling the processing of the entire dataset in record time.
For instant search results, Meilisearch is integrated, which, combined with AI-generated synonyms, provides relevant results even for imprecise or incomplete queries. Once an icon is found, a single click is all it takes — the platform automatically generates ready code for 13 frameworks: Symfony UX, React, Vue, Nuxt, Next.js, Astro, Svelte, Angular, Laravel, Tailwind, HTML, SVG, and PNG. Users can save icons into custom collections and share them with their team.
Technical Highlights
The architecture is built for maximum throughput and scalability. PostgreSQL stores raw SVG data for 300,000+ icons, while Meilisearch handles all search queries with millisecond response times. Connecting these two systems is crucial: the search engine returns only IDs, the SQL database provides the SVG body — zero wasted data over the wire.
Every URL in the system carries two dynamic segments: /{locale}/{framework}/. This enables the generation of SEO-optimized pages for every language and framework combination — for example, Tabler Icons for React has a different meta title, description, and JSON-LD data than Tabler Icons for Symfony. The entire sitemap is generated dynamically and updated on every deploy.
Authentication runs via Magic Link (passwordless). For premium features (shared collections, team access), Stripe payment processing is integrated.
During development, I created and open-sourced three Symfony bundles: Progressive Image Bundle (smooth image loading), Persistent State Bundle (elegant state management), and UX SDC Bundle — a custom implementation of Single Directory Components powering the entire ycon.cc frontend.
Semantic Search
AI-generated synonyms in 7 languages (SK, CS, EN, DE, FR, ES, PL). Search understands context — find an icon even if you don't know its exact name.
Code for 13 Frameworks
One click = ready code for Symfony UX, React, Vue, Nuxt, Next.js, Astro, Svelte, Angular, Laravel, Tailwind, HTML, SVG, or PNG.
Parallel AI Pipeline
Symfony Messenger processed 300,000 icons massively in parallel — AI enrichment and translation via LibreTranslate in a fraction of expected time.
Collections & Sharing
Save icons to your own projects and share with your team. Premium plans via Stripe, passwordless authentication (magic link).
SEO for Every Combination
Every language × every framework = unique SEO page. Dynamic sitemap, JSON-LD structured data, canonical and hreflang links.
Open Source Spin-offs
Development of ycon.cc yielded three public Symfony bundles: Progressive Image, Persistent State, and UX SDC Bundle.
Technical Features
- Meilisearch with AI-synonym mapping
- Massive parallel metadata enrichment via Symfony Messenger
- 300,000+ icons × 7 languages × 13 frameworks
- Magic link login + Stripe for premium features
- Per-locale + per-framework SEO pages with JSON-LD