Too loud?

Keyboard shortcuts

Anywhere on the site, while you are not typing.

M
Sounds on or off
E
Copy my email
T
Day or night
S
Change the season
D
Developer mode
?
These shortcuts
Esc
Close what is open

  • hackathon
  • 2026
  • Team of four
  • Bedrock
  • Event SDK
  • Top 0.1%

We built HyperPersona in a week as a team of four at Cognizant's Technoverse 2.0, and it placed in the top 0.1% of 22,000+.

It learns why a shopper buys, not just what. The browser streams consented events, agents on Bedrock turn them into facts, and a recommender ranks those facts, drafts an offer and checks every claim against its sources before showing it. I built the storefront and everything the browser sends, and shaped the architecture with the team.

The HyperPersona storefront: a folded throw on a product hero, with colour swatches and an add to bag button.
the storefront
A new collection section: an editorial portrait beside four products with prices.
editorial product rails
The profile lab: pick a shopper profile and see what the engine infers from their signals.
what it infers, live
The integration page: drop HyperPersona into any storefront with one thin client layer.
one thin client layer
Type
hackathon
Role
The storefront and everything the browser sends
When
One week, May 2026
Team
Four of us
Stack
React 19, TypeScript, FastAPI, DynamoDB, OpenSearch Serverless, Bedrock, Redis
Links
hyperpersona-web.vercel.app

My part

  • The storefront

    The React 19 shop the engine personalises, from the catalogue to the product pages.

  • An event SDK

    Nothing lost to a crash or a closed tab: events stored first, sent in batches, flushed on the way out.

    How it works
  • Consent on every event

    Each event carries what the shopper agreed to share, checked in the browser and again on the server. Only what both allow is kept.

  • Search that knows when to stop

    A relevance cutoff, so a search for “towel” stopped returning 48 shirts, on OpenSearch Serverless, which I moved us to.

  • A noise gate

    Six low-signal event types never reach the model, so it learns from intent, not page views.

  • The architecture, with the team

    How events travel from the browser to Bedrock and back, decided together.

The agents, the fact ranking and the chain-of-verification are Divyansh Sharma's; the shop backend and CI are Anamika Aggarwal's.

How it fits together

StorefrontReact 19Event SDKIndexedDB firstIngest APIFastAPI · consent · budgetWorkersnoise gate · 6 types outAgents on Bedrockfacts about why they buyOpenSearchServerless · SigV4Recommenderrank · draft · verifyembeddingsoffersin colour: what I built
Everything the browser sends is mine: queued before it is sent, scoped by consent before it is stored, and filtered before a model sees it.

Events that survive the tab closing

Recommendations are only as good as the signals that reach them, and a browser loses signals all the time: tabs close, pages reload, phones drop off the network. So every view and click is saved in the browser first and sent in small batches, and whatever is left leaves as the page closes. Nothing is lost to a reload, and nothing arrives twice.

Underneath: events wait in IndexedDB with an idempotency key, go every 3 s or at 50, and the last batch rides out with keepalive, trimmed under the browser’s ~64 KB budget.

Eventview · cart · buyIndexedDB queueidempotency keyBatch3 s or 50IngestOn page hidekeepalive · < 64 KBNew customerqueue deletedretry, jitterednothing is lost on a crash or a reload, and nothing leaks across customers
Events queued under a different customer are deleted, not sent: sending them would be a privacy leak.