Ajna Labs DeFi Protocol
Lead Frontend Engineer building the lending protocol frontend that served $20M+ in platform liquidity, with a proprietary SDK and comprehensive component library for ecosystem-wide integration.
Role: Lead Frontend Engineer
The Challenge
Making permissionless lending accessible to everyone
Designing an intuitive lending and borrowing interface for a fully permissionless, oracle-free DeFi protocol
Making complex financial mechanics accessible to both crypto-native users and newcomers to decentralized finance
Building a frontend architecture that could scale across multiple chains and support third-party integrations
Delivering real-time data visualization for pool metrics, interest rates, and liquidity positions without compromising performance
Ajna Finance is a permissionless, oracle-free lending protocol. Unlike traditional DeFi lending platforms that rely on price oracles and governance to manage risk, Ajna allows anyone to create lending pools for any pair of assets. This radical design unlocked new possibilities, but also created a frontend engineering challenge: how do you build an interface that makes this level of flexibility feel simple and safe for users?
The Approach
Component library first, SDK for scale, performance throughout
Component Library First
I started by building a comprehensive, reusable component library in Storybook before writing a single page of the application. Every UI element, from pool cards to transaction modals, was designed, documented, and tested in isolation. This investment paid off immediately: the team could compose entire pages from pre-built, battle-tested components, cutting feature development time by 25%.
Proprietary SDK for Ecosystem Partners
Ajna is a permissionless protocol, meaning anyone can build on top of it. I designed and developed a TypeScript SDK that abstracted away the complexity of interacting with the smart contracts. The SDK provided typed methods for all protocol operations, handled transaction building and gas estimation, and included comprehensive documentation. This reduced third-party integration time by 50%.
Performance-Driven Architecture
DeFi users expect real-time data. I implemented an event-driven architecture that subscribed to on-chain events and updated the UI reactively. Pool metrics, interest rates, and user positions refreshed without full page reloads. Strategic use of React Server Components in Next.js ensured fast initial loads, while client-side hydration kept the experience interactive.
Accessible DeFi Design
Working closely with the protocol designers, I translated complex lending mechanics into clear, step-by-step workflows. Tooltips explained each parameter in plain language. Transaction previews showed users exactly what would happen before they signed. Error states provided actionable guidance rather than cryptic blockchain messages.
Tech Stack
The tools and technologies powering the Ajna frontend
Results
Measurable outcomes from the Ajna Labs engagement
Platform liquidity achieved within the first year of launch
Reduced third-party integration time through the proprietary SDK
Faster feature development enabled by the component library and style guide
Organic traffic in the first 3 months after launch
Key Learnings
What made this project succeed
Investing in a component library and SDK before feature work pays exponential dividends in a protocol ecosystem where multiple teams build on the same foundation.
DeFi UX does not have to be intimidating. Clear language, progressive disclosure, and thoughtful error handling make complex financial products approachable.
An event-driven frontend architecture is essential for real-time blockchain data. Polling-based approaches introduce latency that frustrates users.
Documentation is a product feature, not an afterthought. The SDK adoption rate was directly correlated with the quality of its developer docs.
Need a DeFi Frontend Built Right?
I bring the same component-first, performance-driven approach to every DeFi project. Book a free discovery call to discuss your protocol frontend needs.