I led the design process end-to-end, owning the product experience from early concepts to final delivery. I worked closely with engineers to find ways to onboard users into the ecosystem without exposing underlying technical complexity.
I created and iterated on wireframes in tight collaboration with the PM and engineering team and delivered both desktop and mobile experiences, accounting for less obvious edge cases users encounter when setting up DCA.
The Superfluid ecosystem had powerful real-time money streaming tech, but no flagship utility app that put it in users' hands. After kicking around a few ideas with the team, we committed to a DCA platform: an app that turns Superfluid's continuous streams into a tool anyone can use to invest.
SuperBoring is the most powerful streaming DEX. It lets users DCA between any two tokens, settles more frequently than any other service, doesn't charge for gas, and rewards every swap with $BORING, a token users can stake to earn a slice of protocol fees on each market.

Who we were building for
Three audiences with the same underlying need: an automated way to trade without playing market-timer.
Active traders
People who want to invest in the same assets over time without staring at charts.
Crypto-salary earners
People paid in crypto who want to diversify their portfolio on autopilot.
Institutions
Funds and treasuries looking for predictable, MEV-resistant execution at scale.
Timing the market is impossible.
Dollar-cost-averaging is a proven strategy against the questionable results of trying to buy low / sell high. Don't worry whether it's the right time. Just DCA.
The existing multi-chain DCA products in DeFi let users trade every few hours at minimum, or as infrequently as once a month. That isn't actually an average price. It's a few snapshots. We wanted to settle trades as frequently as humanly possible, and the only stack that could do that was Superfluid's.
DCA at the mathematical average price, settled every second.
Tokens are constantly swapped on the user's behalf as they stream them to the market. Trades settle frequently, and users receive the output token directly into their balance. At the time, SuperBoring was the only DCA strategy on the market with such a short swap window.
How could we turn a continuous-stream primitive into a product that actually feels easier to use than a normal swap?
It was clear and simple for the user but quite complex under the hood:
- 01
Open a stream
The user picks the pair (e.g. USDCx → ETHx) and a flow-rate. From that moment on, the input token is continuously put on sale on their behalf.
- 02
TOREX settles continuously
Swaps execute against a time-weighted average price (TWAP) oracle from Uniswap, eliminating MEV.
- 03
Receive the output token
The output token lands in the user's balance as it's swapped, not at the end of a window or a fixed schedule.
- 04
Earn $BORING for participating
Every active DCA opens $BORING stream into the user's balance as a reward token.
- 05
Stake $BORING to earn fees
Users stake on any market to take a share of the fees that market generates, in real time.
Available on 8 networks
Arbitrum One
Avalanche
Base
BNB Smart Chain
Gnosis
Ethereum
OP Mainnet
PolygonThe biggest friction point: SuperTokens.
Superfluid streams only run on SuperTokens: wrapped versions of regular ERC-20s (USDC → USDCx, MATIC → MATICx, and so on). For anyone already inside the Superfluid ecosystem this was friction-free. For everyone else, it was a wall. New users had to wrap their tokens before they could DCA, and wrapping is a separate transaction with its own gas cost.
We had to onboard users who'd never heard of SuperTokens without making them learn what they are.
The fix: Auto-wrap
Auto-wrap asks the user for permission once per token. From then on, whenever the user's SuperToken balance runs low, we auto-wrap on their behalf and cover the cost. The user never has to think about wrapping again. To them, it just feels like the app is using their USDC directly.
It was the single highest-leverage change we made for new-user conversion: it removed the one explanation step that was killing first-time funnels.
Beyond the broad mechanism, a few specific product design calls shaped how the app actually feels to use.
Match inflow
Many users already receive a token stream from elsewhere, so the DCA configurator treats their inflow as a dynamic balance. If their monthly inflow is 1,000 USDC, they can start a DCA matching that amount even if they only hold 5 USDC in their wallet right now. I capped the DCA at the inflow itself, so users can't stream out more than what's actually streaming in. Otherwise they'd get liquidated.
The time frame is always monthly
Because streams move funds every second, the UI needed a human-readable time frame to anchor it. The first version let users pick their own unit, but I committed to monthly only. Asking someone to set 10 USDC per minute or per hour is hard to grasp and easy to mess up. Monthly matches what people already know from subscriptions, salaries and budgets, so the mental model came free.
Markets as a single source of truth
Markets is a dedicated discovery tab where users can see how each market is performing and what the potential rewards for an investment are. I made it a separate destination rather than scatter the same information across DCA, staking and the other surfaces. Investors get one source of truth in one place and can make an informed decision at a glance, instead of clicking through the app to compare.
$BORING tokens reward users for using SuperBoring or referring others. Users stake them to earn protocol fees in real time.
When a user stakes on a market, they earn a proportion of that market's fees relative to other stakers, and they also increase the amount of $BORING emitted on that market, which pulls in more usage and more stakers. It's a positive feedback loop: the markets they back actively grow as a consequence of their support.
Boring is the point. Black holes are exciting.
The name SuperBoring is a knowing wink: DCA is boring (once the user sets it up, there's nothing left to do), and that's exactly why it's superpower-tier. The brand had to convey both the calm of automated investing and the awe of the protocol underneath.
The visual metaphor: a black hole
I leaned into the black hole as the central image: black-on-black, minimalist, the emptiness of space, but with the vastness and scale that makes it actually exciting to look at. A green twist nods to the supernova: the moment of energy release that makes the dark worth staring into. Black is the state. Green is the action.





SuperBoring became the flagship app for streaming finance: proof that Superfluid's primitives could power a consumer product without ever forcing the user to learn what a stream is.
Impact
Since launchThe protocol now settles trades against a real TWAP every second for thousands of active streamers, MEV-resistant by construction, with gas costs absorbed by the app. The boring part works exactly the way it should: nobody's thinking about it.

















