A catalog and comparison tool that uses a genetic algorithm to find similar items — books, music, movies, wine, beer, and anything else you can define. Items are encoded as attribute vectors called DNA, and similarity is computed by evolving the optimal weighting of those attributes.
§ Catalog at a Glance
5
Item Types
12
Catalog Items
4
Contributors
7
Ratings
5
Reviews
5
Recommendations
§ Abstract
DNAnything treats cultural artifacts — albums, books, films, wines — as specimens in a research catalog. Each specimen has a DNA profile: a vector of rated attributes that captures its measurable characteristics. A genetic algorithm evolves the optimal weighting of these attributes to find similar specimens, surfacing connections that simple distance metrics miss. The catalog is community-built: users create types, add items, rate attributes, write reviews, and recommend pairings. Every change is tracked in a wiki-style change log.
§ Methodology
How the Matching Works
The similarity engine encodes items as genomes, calculates weighted distances, and optionally evolves the optimal weighting using a genetic algorithm.
Attribute Encoding
Every item is encoded as a genome — a vector of attribute ratings on a 0–5 scale. These ratings form the item's DNA, a compact representation of its essential character that can be compared against any other item of the same type.
Distance Calculation
The Fast Match mode uses weighted Euclidean distance between attribute vectors. Each attribute contributes to the distance according to its weight, producing a similarity score in (0, 1]. Higher scores indicate greater similarity. This mode is deterministic and instant.
Genetic Algorithm
The Deep Match mode runs a genetic algorithm that evolves the optimal weighting of attributes for a given query. Starting from a random population of weight vectors, the GA selects, crosses over, and mutates candidates across hundreds of generations, converging on weightings that surface non-obvious connections.
Major & Minor Attributes
Each item's DNA is visualized as a bar chart with attributes in the type-defined order. The top seven attributes rated above 50 are "major" — the dominant characteristics. The next seven are "minor" — secondary traits. Attributes at or below 50 appear as muted bars, present but not defining.
Community Consensus
Average ratings are computed from all user ratings for an item. The number of ratings indicates certainty: more ratings mean stronger consensus. Items with the same average score but different rating counts are ranked by the count, so a 4.5 from 20 ratings ranks above a 4.5 from 2.
Wiki-Style Change Tracking
Every change to the catalog — creating a type, adding an item, updating a rating, writing a review — is logged in a wiki-style change history. Each entry records who made the change, what action was taken, and when. This creates a full provenance trail for every entity in the catalog. No data is ever hard-deleted; flagged content is hidden pending moderator review, preserving the full history.
§ Design Principles
How the App is Built
Auth-Required Public Contributions
All public contributions — creating types, adding items, rating attributes, writing reviews, making recommendations, using similarity search — require a free account. This ensures accountability and data quality. Anonymous users can browse everything.
Local Contributions (Coming Soon)
A future feature will let anonymous users make local contributions stored in their browser and merged with public data on the client. These are private to that browser and uploadable on login. Deferred until local Docker deployment support is ready.
Cloud Persistence
Signed-in users (Supabase Auth) get cloud persistence. All public contributions are stored in Postgres and immediately visible to the community.
Community-Owned
Types and items are created by users and remain in the catalog. If a user removes their account, their contributions stay but are anonymized — attributed to "Anonymous User".
Flag-Based Moderation
No data is hard-deleted. Content can be flagged by any logged-in user as inaccurate, offensive, or spam. Moderators review flags and can hide, revert, or dismiss them. This preserves the change log and keeps moderation reversible.
Local Deployment (Coming Soon)
The app is designed to be deployable to a local server using Docker, setting up a local cloud environment. This enables self-hosting and offline-capable local contributions.
Open Data
Seed data ships with the app as JSON files matching the database schema. When the backend is wired up, the same data loads into Postgres.
§ Technology
Built With
§ Get Started
Explore the Catalog
Browse item types, explore attribute DNA profiles, and find similar items using genetic algorithm matching.