CS2 Skins was created to solve the difficulty of choosing individual skins and assembling matching kits while finding the best available price. It brings discovery, combinations and marketplace comparisons into one place, helping players build a loadout around their style and budget. As a skin aggregator, price comparator and loadout builder, it lets visitors explore the catalog, search for skins, select exact variants and compare current lowest asks across marketplaces, alongside 30-day price history. Purchases happen on the linked marketplaces. The app also offers editorial kits with purchase plans, a slot-based loadout builder, visual recommendations, knife-and-glove matching and Smart Loadout: a budget optimizer that selects from a visually curated candidate pool. Loadouts can be shared through encoded links, while saved selections and wishlists remain in the visitor's browser. SvelteKit preserves server-side rendering and keeps the CS2Cap integration, API credentials, response validation and normalization on the server. Bounded in-process caches and request deduplication reduce upstream calls. The MVP works end to end and targets a long-lived Node process with Docker; public hosting is still pending.
Key features
- Catalog exploration with URL-based filters and interactive global search.
- Exact variant selection, marketplace price comparison and 30-day history.
- Editorial kits with lowest-price and fewer-marketplaces purchase plans.
- Slot-based loadout builder with on-demand pricing and shareable links.
- Smart Loadout generation from a budget and curated visual preferences.
- Visual skin recommendations and knife-and-glove pairing.
- Browser-local wishlist with exact variants and saved price baselines.
Architecture
Browser → SvelteKit routes → application services → bounded cache → CS2Cap. Provider payloads are validated with Zod and normalized before reaching presentational components. Pure domain algorithms handle visual ranking and budget optimization.
- Server-side rendering with private API credentials and normalized domain contracts.
- Bounded TTL caches, in-flight deduplication and no caching of failed requests.
- Visual ranking precedes bounded pricing; exact budget optimization is checked against exhaustive search.
- Versioned browser storage and encoded sharing persist identity, without storing loadout prices.
- Long-lived Node runtime through adapter-node, Docker and an upstream-independent health endpoint.
