Consolidating Philo's Experience
System Architecture & Strategic Framework

The mess was invisible until it wasn't.

Philo started simple. One subscription. One path. You signed up, you paid, you watched. Then the business grew. Free tiers, bundles, trial offers, different entry points. Good moves individually. Together, they created a system that was quietly breaking.
I was brought in to help fix it. What I found was familiar. Multiple teams running experiments that stepped on each other. Users seeing different upgrade messages depending on which screen they landed on. Free users, trial users, and paid users existing in parallel worlds that didn't connect.
The real problem wasn't any single screen. It was that no one had mapped how these experiences actually fit together.
Zoom out and everything looked fine. Metrics were moving. But zoom in and you saw the fractures.
A user could enter through the website, the app, a partner bundle, or a FAST channel. Each path had its own upgrade flow. The messaging changed based on entry point, not user need. Someone might see three different explanations of what "Core" meant in a single session.
Worse, experiments meant to drive growth were cannibalizing the core subscription funnel. A new trial offer would spike signups but tank conversion. A simplified landing page would boost discovery but hurt retention. Teams were optimizing local metrics while the overall system degraded.
I sat down with Growth and Billing to trace exactly where this was happening. We needed to see the whole state map before we could fix anything.

We sketched three strategic paths.
Force authentication upfront. Remove the uncredentialed experience entirely. Clean system, perfect tracking, but massive friction at the top of the funnel. Risky for a product that relies on discovery.
Let people explore first. Keep FAST open, progressively credential users as they engage. Preserves the low-friction entry, aligns with growth goals, but requires managing complex state transitions and careful upgrade triggers.
Reverse trial. Give everyone full Core access immediately, downgrade non-converters after a period. Best value demonstration, simplest mental model for users. But billing systems, content contracts, and revenue recognition made it operationally impossible.
We went with option two. It was the only path that didn't require breaking something else to fix this.
Before touching any UI, I built three system models showing every possible user state. Free. Trial. Paid. Lapsed. Delinquent. Every transition between them. Every edge case.
This became our shared language. Growth could propose an experiment and we'd trace it through the state map first. Billing could flag revenue risks before they became fires. We started catching conflicts in meetings instead of in production.
The map revealed something important: most of our "UX problems" were actually state logic problems. A user saw confusing messaging not because the copy was bad, but because the system didn't know which state they were in or what they needed to hear next.

Once the logic was clear, we turned it into reusable systems. Two main pieces came out of this work.

Upgrade Value Interstitial. A context-aware surface that appears at key moments, explaining the value of upgrading without breaking the user's current flow. Tied to state, placement, and timing. Not a static popup.

Promotional Upgrade Row. A content-driven element inside discovery that surfaces premium content naturally. Feels like part of the browsing experience, not an ad.
Both were designed as infrastructure. When Philo later introduced new bundles or changed packaging, we didn't rebuild these components. We adjusted parameters.
The biggest shift was cultural. We stopped redesigning surfaces every time the business changed. Instead, we asked whether the existing system could handle it.
Experiment velocity went up because teams weren't constantly fixing what they broke. Upgrade triggers became consistent across entry points. Internal confusion dropped because we had a reference point for discussions.
The state map I built became foundation for the Unified Experience work, the FAST upsell system, and several other initiatives that followed.
This project changed how I think about design work.
Growth systems need architecture. You can't iterate your way out of a fragmented foundation. At some point you have to step back and design the system itself.
State logic before UI. If you don't understand what a user is eligible for, what they've seen, and what they need next, your interface is just guessing.
Monetization design is business design. You're not just designing flows. You're designing how the company makes money and how teams can experiment without breaking each other.
Simplification requires confronting edge cases. The cleanest user experience often lives on top of the most sophisticated backend logic. You can't simplify the front by ignoring complexity in the back.
Most design problems at scale aren't really design problems. They're coordination problems between product, business, and engineering. My job was to build the thing that helped them talk to each other.
Built in Figma Sites (Beta)
© Selected Works / Tay Williams
2018—2026
Consolidating Philo's Experience
System Architecture & Strategic Framework

The mess was invisible until it wasn't.

Philo started simple. One subscription. One path. You signed up, you paid, you watched. Then the business grew. Free tiers, bundles, trial offers, different entry points. Good moves individually. Together, they created a system that was quietly breaking.
I was brought in to help fix it. What I found was familiar. Multiple teams running experiments that stepped on each other. Users seeing different upgrade messages depending on which screen they landed on. Free users, trial users, and paid users existing in parallel worlds that didn't connect.
The real problem wasn't any single screen. It was that no one had mapped how these experiences actually fit together.
Zoom out and everything looked fine. Metrics were moving. But zoom in and you saw the fractures.
A user could enter through the website, the app, a partner bundle, or a FAST channel. Each path had its own upgrade flow. The messaging changed based on entry point, not user need. Someone might see three different explanations of what "Core" meant in a single session.
Worse, experiments meant to drive growth were cannibalizing the core subscription funnel. A new trial offer would spike signups but tank conversion. A simplified landing page would boost discovery but hurt retention. Teams were optimizing local metrics while the overall system degraded.
I sat down with Growth and Billing to trace exactly where this was happening. We needed to see the whole state map before we could fix anything.

We sketched three strategic paths.
Force authentication upfront. Remove the uncredentialed experience entirely. Clean system, perfect tracking, but massive friction at the top of the funnel. Risky for a product that relies on discovery.
Let people explore first. Keep FAST open, progressively credential users as they engage. Preserves the low-friction entry, aligns with growth goals, but requires managing complex state transitions and careful upgrade triggers.
Reverse trial. Give everyone full Core access immediately, downgrade non-converters after a period. Best value demonstration, simplest mental model for users. But billing systems, content contracts, and revenue recognition made it operationally impossible.
We went with option two. It was the only path that didn't require breaking something else to fix this.
Before touching any UI, I built three system models showing every possible user state. Free. Trial. Paid. Lapsed. Delinquent. Every transition between them. Every edge case.
This became our shared language. Growth could propose an experiment and we'd trace it through the state map first. Billing could flag revenue risks before they became fires. We started catching conflicts in meetings instead of in production.
The map revealed something important: most of our "UX problems" were actually state logic problems. A user saw confusing messaging not because the copy was bad, but because the system didn't know which state they were in or what they needed to hear next.

Once the logic was clear, we turned it into reusable systems. Two main pieces came out of this work.

Upgrade Value Interstitial. A context-aware surface that appears at key moments, explaining the value of upgrading without breaking the user's current flow. Tied to state, placement, and timing. Not a static popup.

Promotional Upgrade Row. A content-driven element inside discovery that surfaces premium content naturally. Feels like part of the browsing experience, not an ad.
Both were designed as infrastructure. When Philo later introduced new bundles or changed packaging, we didn't rebuild these components. We adjusted parameters.
The biggest shift was cultural. We stopped redesigning surfaces every time the business changed. Instead, we asked whether the existing system could handle it.
Experiment velocity went up because teams weren't constantly fixing what they broke. Upgrade triggers became consistent across entry points. Internal confusion dropped because we had a reference point for discussions.
The state map I built became foundation for the Unified Experience work, the FAST upsell system, and several other initiatives that followed.
This project changed how I think about design work.
Growth systems need architecture. You can't iterate your way out of a fragmented foundation. At some point you have to step back and design the system itself.
State logic before UI. If you don't understand what a user is eligible for, what they've seen, and what they need next, your interface is just guessing.
Monetization design is business design. You're not just designing flows. You're designing how the company makes money and how teams can experiment without breaking each other.
Simplification requires confronting edge cases. The cleanest user experience often lives on top of the most sophisticated backend logic. You can't simplify the front by ignoring complexity in the back.
Most design problems at scale aren't really design problems. They're coordination problems between product, business, and engineering. My job was to build the thing that helped them talk to each other.
Built in Figma Sites (Beta)
© Selected Works / Tay Williams
2018—2026
Consolidating Philo's Experience
System Architecture & Strategic Framework

The mess was invisible until it wasn't.

Philo started simple. One subscription. One path. You signed up, you paid, you watched. Then the business grew. Free tiers, bundles, trial offers, different entry points. Good moves individually. Together, they created a system that was quietly breaking.
I was brought in to help fix it. What I found was familiar. Multiple teams running experiments that stepped on each other. Users seeing different upgrade messages depending on which screen they landed on. Free users, trial users, and paid users existing in parallel worlds that didn't connect.
The real problem wasn't any single screen. It was that no one had mapped how these experiences actually fit together.
Zoom out and everything looked fine. Metrics were moving. But zoom in and you saw the fractures.
A user could enter through the website, the app, a partner bundle, or a FAST channel. Each path had its own upgrade flow. The messaging changed based on entry point, not user need. Someone might see three different explanations of what "Core" meant in a single session.
Worse, experiments meant to drive growth were cannibalizing the core subscription funnel. A new trial offer would spike signups but tank conversion. A simplified landing page would boost discovery but hurt retention. Teams were optimizing local metrics while the overall system degraded.
I sat down with Growth and Billing to trace exactly where this was happening. We needed to see the whole state map before we could fix anything.

We sketched three strategic paths.
Force authentication upfront. Remove the uncredentialed experience entirely. Clean system, perfect tracking, but massive friction at the top of the funnel. Risky for a product that relies on discovery.
Let people explore first. Keep FAST open, progressively credential users as they engage. Preserves the low-friction entry, aligns with growth goals, but requires managing complex state transitions and careful upgrade triggers.
Reverse trial. Give everyone full Core access immediately, downgrade non-converters after a period. Best value demonstration, simplest mental model for users. But billing systems, content contracts, and revenue recognition made it operationally impossible.
We went with option two. It was the only path that didn't require breaking something else to fix this.
Before touching any UI, I built three system models showing every possible user state. Free. Trial. Paid. Lapsed. Delinquent. Every transition between them. Every edge case.
This became our shared language. Growth could propose an experiment and we'd trace it through the state map first. Billing could flag revenue risks before they became fires. We started catching conflicts in meetings instead of in production.
The map revealed something important: most of our "UX problems" were actually state logic problems. A user saw confusing messaging not because the copy was bad, but because the system didn't know which state they were in or what they needed to hear next.

Once the logic was clear, we turned it into reusable systems. Two main pieces came out of this work.

Upgrade Value Interstitial. A context-aware surface that appears at key moments, explaining the value of upgrading without breaking the user's current flow. Tied to state, placement, and timing. Not a static popup.

Promotional Upgrade Row. A content-driven element inside discovery that surfaces premium content naturally. Feels like part of the browsing experience, not an ad.
Both were designed as infrastructure. When Philo later introduced new bundles or changed packaging, we didn't rebuild these components. We adjusted parameters.
The biggest shift was cultural. We stopped redesigning surfaces every time the business changed. Instead, we asked whether the existing system could handle it.
Experiment velocity went up because teams weren't constantly fixing what they broke. Upgrade triggers became consistent across entry points. Internal confusion dropped because we had a reference point for discussions.
The state map I built became foundation for the Unified Experience work, the FAST upsell system, and several other initiatives that followed.
This project changed how I think about design work.
Growth systems need architecture. You can't iterate your way out of a fragmented foundation. At some point you have to step back and design the system itself.
State logic before UI. If you don't understand what a user is eligible for, what they've seen, and what they need next, your interface is just guessing.
Monetization design is business design. You're not just designing flows. You're designing how the company makes money and how teams can experiment without breaking each other.
Simplification requires confronting edge cases. The cleanest user experience often lives on top of the most sophisticated backend logic. You can't simplify the front by ignoring complexity in the back.
Most design problems at scale aren't really design problems. They're coordination problems between product, business, and engineering. My job was to build the thing that helped them talk to each other.
Built in Figma Sites (Beta)
© Selected Works / Tay Williams
2018—2026