← Projects
Echo Look Style Feed icon

Echo Look Style Feed

Echo Look's social feed — daily looks with auto-tagged products, published into Amazon's social shopping network. The last major feature Echo Look shipped, and the most visited part of the app.

amazonecho lookreact nativeredux-sagaioscomputer visionsocial

Style Feed — internally, Echo Look Community — was the social layer of the Echo Look app: a feed where people shared their daily looks, with the products in each photo automatically tagged, and where that content was also published to the men's and women's fashion feeds of Amazon Spark, Amazon's social shopping network, both in the Shopping app and on desktop.

It took years of planning, months of prototyping, and close collaboration with the Spark team and with Echo Look's native iOS architects. It became the most visited section of the Echo Look app, and the last major feature Echo Look shipped.

The architecture nobody believed in

The feed had to run on a partner team's React Native WebSocket communications library — the only supported way to consume their content graph. Echo Look's native iOS architects were skeptical that a stable, high-performance feed could be built that way, and they had reason to be.

So I prototyped a hybrid: React Native owned the WebSocket lifecycle, fault-tolerantly, while the entire feed rendered natively through IGListKit. React Native handled what it was good at — a messy, stateful, reconnecting network protocol modeled as a redux-saga state machine — and stayed out of the render path, where native scrolling performance was non-negotiable.

Partner WebSocket servicecontent graph, live updatesReact NativeWebSocket lifecycleredux-saga state machinereconnect, retry, authstateful, messy, off the render pathNativeIGListKit feed renderingVIPER-conformant bindingswhere scroll performance is non-negotiablebridge
Each side does only what it is good at. The prototype of this split is what earned the native architects' trust.

The prototype was how I earned the architects' trust. We also developed a pattern for React Native component bindings that conformed to the VIPER architecture the rest of the native app used, so the feature didn't sit as a foreign body inside the codebase.

Shipping it in three passes

Influencer content first. The initial feed was read-only, consisting entirely of content posted by influencers through the partner team's web posting flow. Minimum surface, real customers, real data.

Then reactions. Once the feed became the top feature in the app, we added the ability to "smile" on content. That sounds small; it wasn't. It meant significantly more complex flows against the WebSocket library and building an onboarding flow with the Amazon Profile team, because reacting to content requires an identity.

Then posting. The final and largest piece. Posting from the app required calling visual search on every user image and auto-tagging products in the correct regions of the photo, converting our story schema into one the social platform could accept, and building a posting flow robust enough to handle over a hundred user images inside a single story. It also required a second feed where people could see and interact with only their own posts, and complete workflows for reporting content as inappropriate and for deleting your own.

Where the content went

Style Feed submissions quickly became some of the most popular content on the entire social platform — in the Shopping app and on the web. That content outlived the feature: it remained available under #founditonamazon and was indexed into the media search service that powered visual recommendations for Alexa's "what should I wear" responses, which became the basis for Style Hub.

The Android launch that didn't happen

On the strength of the iOS result, I started working with the Android architects on a project plan to bring Style Feed to Android, and participated in the hiring loop for two open positions — helping hire and onboard two internal transfers to build it.

The Android launch, and all further enhancements, were cancelled when the team moved from Alexa Devices to Softlines. The iterative approach paid off anyway: the features we did ship needed almost no maintenance through the rest of Echo Look's life.

Style Feed was built on the package structure and standards described in React Native Multi-Root Architecture — it was the feature that architecture existed to make possible.