Side B

Tagline: A cultural merchandising agent for the records already on your shelves.

Creator: Shivam Gupta
Application: https://sideb-records.web.app
Public source: https://github.com/shi1720/side-b

Inspiration

A record can sit on a shop's shelf for months while its next listener walks straight past it.

That listener might arrive talking about a favorite film, a book, or the artist they have on repeat. A good shopkeeper hears an opening: here is another way into the music. Making that connection is part of what makes an independent record shop worth visiting.

Side B starts with that moment and gives it a practical business purpose. The shop has already paid for its stock. Which of those records could it introduce to a different cultural audience, at prices and margins that work for the business?

What it does

Side B helps an independent record shop prepare a cultural edit from the records it actually has available.

The owner chooses one to three audience anchors, such as the film Past Lives, and sets the collection size, maximum price per record, minimum gross margin, and minimum cultural rank fit. An optional preference gives older stock another opportunity.

The agentic workflow verifies the cultural identities in Qloo, resolves the stocked artists, retrieves inventory-restricted affinity evidence, and makes a constrained selection. Each artist appears at most once. Every selected record must satisfy the hard limits. If the brief cannot be filled, the app explains the shortfall rather than quietly changing the rules.

The owner can inspect each record's evidence and fetch time, review excluded stock, compare simple age and gross-contribution baselines, and examine the gross profit scenario if one copy of each record sells. The title and collection story remain editable.

An approved edit becomes a public customer page. A customer can hold one available copy for pickup, and the shopkeeper can mark it collected or cancel it. Holds last 48 hours, with expiry reconciled on the next relevant request. Stock changes and repeated requests are handled atomically. Owners can pause the public link, export the decision receipt, and print shelf cards.

The full sample workflow works in a private guest workspace. Account sign-in supports a separate personal workspace. CSV import and editing support a focused stock selection of up to 50 titles. Publishing real inventory requires pickup instructions. Sample collections retain a visible label explaining that their stock and prices are illustrative and no physical record is supplied.

Why Qloo is essential

Qloo supplies the connection between an audience's cultural interests and musical artists. A film or book can become the starting point for a record-shop edit.

The important implementation detail is the candidate set: filter.results.entities restricts Qloo's artist results to artists represented in the shop's inventory. The cultural graph therefore changes a decision the shop can act on immediately.

A saved controlled check used the same 20 stocked artists and business constraints with two audiences. Changing the anchor from Past Lives to Khruangbin changed two of the four selected records. This demonstrates that the cultural signal changes the decision. It does not establish that either edit will sell better.

Without Qloo evidence, Side B produces no qualifying cultural selections. The stock-age and gross-contribution comparisons remain useful operational baselines, but neither supplies the cross-domain relationship behind the discovery edit.

How we built it

Side B combines a React and TypeScript interface with server-side Qloo access, private workspaces persisted in Firestore, immutable decision receipts, and transactional inventory operations.

The bounded agentic tool performs identity resolution, stock inspection, cultural evidence retrieval, rank fusion, constraint enforcement, and collection preparation. It uses deterministic orchestration and no LLM. A documented tool interface describes how an external agent can call the workflow.

Cultural evidence is kept separate from commercial arithmetic. Raw Qloo affinities remain available in the receipt. Relative artist ranks within the fixed inventory pool are combined across audience anchors; missing evidence contributes zero. The resulting rank fit is a merchandising heuristic, not a purchase probability.

Qloo credentials remain on the server. Public collection responses omit cost prices, margins, private decision details, and customer names. Bounded retries, timeouts, persistent caching, and quotas control upstream calls. Cached evidence retains its original timestamp.

Challenges we ran into

A searchable entity is not always a usable affinity signal. An upstream HTTP success can still contain an unknown-signal warning or an unscored fallback list. Side B rejects that material as cultural evidence.

Artist identity also needs care. Inventory text is resolved against Qloo rather than assigned invented IDs, and releases linked to the same artist cannot fill multiple places in an edit. An unresolved artist stays in the owner's inventory without receiving fabricated affinity.

The last available copy creates a different kind of challenge. Two customers, a repeated request, or a cancellation arriving during expiry must not corrupt stock. Stock changes and reservation transitions execute together in database transactions. Verification must cover competing buyers, repeated requests, cancellation, and expiry against the deployed storage backend.

Accomplishments that we are proud of

Side B follows the recommendation through to a useful counter workflow. A shopkeeper can inspect a cultural connection, check its economics, publish it, and manage a customer's hold in the same product.

The implementation also makes its limits visible. Artist-level affinity cannot establish preference for a specific album, pressing, or condition. A financial scenario is not a sales forecast. A collected hold is an operator-recorded outcome, not independently verified payment.

What we learned

The useful unit of cultural intelligence is an actionable decision. For this buyer, a persuasive recommendation also needs a verified stocked artist, available quantity, an acceptable price, a margin that survives, and a clear next step.

The clearest lesson was to put the evidence and its limits beside the decision the shopkeeper needs to make.

What's next for Side B

The first validation step is a small retailer pilot. I would measure preparation time, inventory accuracy, collected holds, and gross contribution against the shop's existing merchandising process. No retailer interviews, paying customers, or sales uplift are claimed today.

The proposed subscription range is $29 to $49 per shop per month. That is a pricing hypothesis, subject to paid-pilot feedback, Qloo production terms, and measured operating costs. Direct stock synchronization and better handling of ambiguous artist names follow after validating the weekly workflow.

Built with

Qloo Taste AI API, React, TypeScript, server-side APIs, Firebase Authentication, Firestore, transactional inventory operations, and an auditable constrained planner. See the public repository for the final deployment stack and setup instructions.

Testing instructions

Open https://sideb-records.web.app and choose the sample shop. No account or payment is required to test the core flow. In The studio, search for Past Lives, select the exact film, and build a four-record edit with the default limits. Open a record's evidence, review the decision trail, then edit and publish the collection. Open its customer link, place a hold using a test name, and return to Pickup holds to cancel it or mark it collected. Cancellation restores availability. The sample has illustrative stock and supplies no physical records. Google sign-in opens a separate saved account workspace; signing out returns to the original guest workspace.

Credits

Created by Shivam Gupta, with AI-assisted research, design, implementation, and documentation. Qloo provides the cultural affinity data. The sample uses real release names with illustrative inventory and prices. The source is MIT-licensed; Qloo data remains subject to its own terms.

Built With

Share this project:

Updates

Submission history