Back to Articles

Designing Decentralized Storage

Without Better UX, Decentralization Remains an Underutilized Alternative

12 Jun 2025 Berlin View Talk ↗
Protocol Berg UX Decentralized Storage

Context

Today I want to talk about design and how it can help us find our way through complex protocols. In an ideal world, things just work. Disciplines are perfectly siloed and problems are easy to solve. You don't need all the context on how things around you work. They just... work.

Take your toilet, for example. You don't exactly know where the pipes go in your house. Water comes out of the tap and, in the event of an emergency, you just call a guy. Decentralized storage feels a bit like plumbing. Except not only do you not know where the pipes go, but you'll need to break layers of concrete and soil before even getting answers—and in the end, you don't know who to call to get it sorted.

Bad UX example

Presenting at Protocol Berg

I mean, you can poop and wash your hands. Sort of. It's functional, but you probably won't return for a second time. We want to create products that solve user needs while adhering to the principles of decentralization that we believe in. But in a world where user attention is the greatest commodity, we can't afford to release products that look like that.

The Two Layers of Design

How can we live up to the ethical imperative of decentralization—giving users censorship-resistance, permanence, ownership, and privacy on their data—while also mitigating technology's known shortcomings, like performance, and providing great UX?

Developer and User UX Layers

If the pipes are confusing, brittle, or unreliable, the user experience suffers no matter how polished the surface is. Design can help us find our way through this.

Improving Developer UX: The Web2 Playbook

It's no mystery why devs turn to centralized alternatives when it comes to storage. Improving Dev UX is crucial for making decentralized storage the default. For protocols and infrastructure players, the question is: How can we hide protocol complexity while preserving benefits?

With simple patterns, there can be a big gain in how we onboard devs.

1. Frictionless Onboarding

We must onboard users quickly, clearly guiding them to early wins without requiring them to read dozens of docs, watch tutorials, ask on Discord, or thoroughly understand protocol-level tech to host a file. Minimize setup. Delay decisions. Let devs feel value before asking for tokens.

Example: Cloudflare

Cloudflare UX

Cloudflare's UI clearly communicates:

Players in the industry applying similar patterns and success: web3.storage & skiracha, but often failing to add visibility to the advantages for the end user.

2. Make Incentives Intuitive and Fair

Incentives ≠ tokenomics. Pricing transparency and tooling are part of the incentive.

Example: Dropbox vs ArDrive & Arweave

Bad ArDrive UI

ArDrive's pricing page

Prefer common UX patterns to complex calculators, but do offer calculators as an expanded benefit. Avoid/abstract wallet/token verbiage that may make it difficult to compare to traditional options (e.g., how do I know ArDrive compares with Dropbox?). The current pricing page is not surfacing enough context on features like permanence. Because there's no context on the pricing model (you pay once and store it forever) it's hard to compare it directly with other centralized alternatives, making it necessary to create a similar mental model (here I assumed a 100y timeline to be able to compare both services).

Improved ArDrive UI Improved Calculator

Two ideas for Redesigning ArDrive's pricing UX to match user expectations and build trust

3. Design for Belief

Provide visibility to decentralized storage's strong arguments (e.g., permanence, redundancy, censorship resistance):

Better Dev UX = Better End User UX

If devs struggle to work with a protocol, they either give up—or ship brittle interfaces. Improving Dev UX is the only way to consistently improve end-user experience.

Improving User UX: Adapting to Infra Constraints

Improving Dev UX is most of the time outside of our direct control. While we can advocate, suggest, request changes and contribute to open source projects at the end of the day, we often have to work with what we've been given. So, without waiting for protocol-level changes, how do we improve what our users see when the infrastructure often constrains what we can offer?

Can Devs Do Something?

Yes. Adopting a set of UX primitives can help mitigate current constraints and match user expectations around four key pillars:

Speed: Design for Perceived Performance

Design for perceived performance, even if protocol reality lags. One of the most common shortcomings of current UIs built on decentralized infrastructure is performance. By using progressive rendering patterns and UX, we can address this.

Access: Make Storage Visible

UI: Error messaging & retry UI, gateway fallback logic, status indicators, CID health visualization.

Security: Design for Perceived Safety

Design for perceived safety, informing users on how their data is protected.

Trust: Build Trust Through Transparency

Promote user control and proof of infrastructure, benefiting user trust.

Conclusion

Improving the dev UX will make decentralized storage the default building block of the internet of the future. Focusing on the user will create decentralized experiences where the infrastructure is transparent.

If we hide protocol complexity while preserving the benefits of decentralization, we don't just onboard the next billion users—we make decentralization invisible, usable, and inevitable.

By improving developer onboarding and adapting to infrastructure constraints through design principles like visibility, control, and the F.O.N.D. framework—Fast, Observable, No-surprises, Durable—we create interfaces that feel familiar, work seamlessly, and uphold the values that matter most.

Let's build an internet people don't have to understand—just one they can trust.