I build the frontend that makes a protocol look like it has product- market fit — before anyone reads the docs.

For DeFi teams whose contracts are audited and whose landing page still looks like a testnet.

STACKFRAME

01/02
18+

DeFi and infra teams — from pre-launch protocols to exchanges doing nine figures in volume

Teamsshippingrealfinancialinfrastructuredeserveaninterfaceasseriousasthethingunderneathit.MostprotocolsIworkwithhavesolvedsomethinghard,andthesitestillreadslikeahackathonsubmission.

Thatgapcostsmorethansignups.Itcoststhebenefitofthedoubtthehalf-secondwhereafunddecideswhetheryouareworthacall.

Vlad

Vlad

Frontend, STACKFRAME

Protocols I've shipped for

ASHPOOLASHPOOL
GRADIENTGRADIENT
ARKIVEARKIVE
ALIGHNALIGHN
ALTOALTO
TIMETIME

Your landing page is where a fund analyst, a degen with size and a potential integrator all decide the same thing in four seconds: whether this is a real product. I take the one mechanic that makes you hard to replace and build the whole page around it.

Selected work

ap01/03

Ashpool

Perpetuals DEX. Landing page plus the shell of the trading terminal, built around a live order-book surface.

60fps

Held with ~800 price levels streaming over websocket

One BufferGeometry mutated in place instead of rebuilt per tick; feed batched into a single rAF; GPU picking for hover rather than raycasting 40k vertices.

Three.jsR3FNext.jswebsocket
Visit site
gt02/03

Gradient

DeFi trading platform. Rebuilt the connect → chain-switch → sign → pending → confirmed path as one continuous surface.

0 CLS

No layout shift across five wallet states, rejections included

A single wagmi state machine drives one AnimatePresence tree; the CTA morphs into the pending panel via a shared layoutId instead of unmounting. Errors are states, not toasts.

wagmi v2WalletConnectFramer Motionviem
Visit site
ak03/03

Arkive

On-chain data archive. The pitch is total historical coverage, so the scroll itself had to demonstrate it.

0 jank

On mid-range Android, from the same timeline as desktop

ScrollTrigger pins a section and scrubs a canvas timeline of block ranges — built once, only progress() driven, no per-scroll layout reads. Under 768px the pin drops and the timeline autoplays.

GSAPScrollTriggerCanvas 2DAstro
Visit site
01/03

(real client stories)

Deposits from the landing page roughly doubled in the first month. Nothing about the protocol changed — the page just finally explained it.
Protocol leadProtocol leadPerp DEX, undisclosed

What I can help with

  • One page that carries the whole pitch: the mechanic, the proof, the CTA. Built to be understood by a fund analyst in four seconds and by a degen in one.

    Landing pages

PROJECT JOURNEY

Step • 01

We scope the actual thing

One call. You show me the product and the audience; I come back with what the page has to prove, what motion earns its place, and what we cut. Fixed price, fixed date, no discovery invoice.

Step • 02

Design lands, or I bring it

You send a finished Figma file and I build it exactly. If there isn't one, I bring a designer I've shipped with before — same timeline, one invoice, still one person you talk to.

Step • 03

Build in the open

Staging URL by the end of week one, updated as I go. You watch it come together instead of waiting for a reveal. Feedback in the thread, not in a deck.

Step • 04

Motion and wallet layer

Week two is where it gets its behaviour: scroll systems, transitions, connect flow, every wallet state animated. This is the part that makes people believe the product.

Step • 05

Ship and hand over

Deployed to your Vercel, repo transferred, Lighthouse and reduced-motion checked. Two weeks of fixes included after launch, no retainer attached.

Pricing

From $3,000

Exact number depends on how much animation and how many integrations are in scope. Tell me what the page has to do and you get a fixed quote — not a range, not an hourly rate.

Timeline2–3 weeks per landing page. Dashboards scoped separately.
Payment50% up front, 50% on delivery. USDC or bank transfer.
IncludedResponsive build, motion, deploy, wallet layer if needed.
After launchTwo weeks of fixes. Repo is yours, no retainer.

Send the Figma link, or just the URL of what you have now. You get scope, price and a start date back — usually the same day.

START A PROJECT