Mardobe

AI-powered fashion creator app where users upload outfit photos, extract individual clothing items via computer vision, compose lookboards on a canvas, and publish as compressed NFTs on Solana with full remix provenance.

Mardobe
Next.jsReactTypeScriptTailwind CSSSupabaseReact QuerySolanaFramer Motionshadcn/uiLucide React

I built Mardobe for a Solana hackathon because I wanted to explore how onchain primitives could actually add value to a consumer creative tool — not as a gimmick, but as a genuine enabler of remix culture. The core idea is simple: upload a photo of an outfit, have AI extract each clothing item into your digital closet, then drag those items onto a canvas to compose a look. Publish it as a compressed NFT, and anyone can remix your look into their own — with full provenance linking back to the original. The tipping mechanism lets the community reward creators directly, making the whole thing economically self-contained.

The biggest technical challenge was the economics of onchain publishing. Traditional NFT minting costs would make the "publish every look" model impractical — no one wants to pay $0.50 every time they save a mood board. Compressed NFTs via Metaplex Bubblegum solved this, bringing the cost down by roughly four orders of magnitude. I also built a sponsored minting architecture where a server-side system wallet covers all minting fees, so users never need to hold SOL to participate. The Phantom deeplink flow for mobile was another deep rabbit hole — implementing Curve25519 key exchange and encrypted payload forwarding just to get wallet signing working inside Phantom's in-app browser.

The canvas editor was the most interesting implementation decision. Instead of pulling in a drag-and-drop library, I built a custom state machine with useReducer — actions, reducers, selectors, and side effects all separated into their own modules. This gave me precise control over z-ordering, resize handles, and rotation without fighting a third-party API. For AI extraction, I wired up Grounding DINO + SAM 2.1 running on a Hugging Face Space, with a triple-mode provider (remote, fallback, auto) so development never blocks on the AI service being available. What I learned most was that Web3 consumer apps live or die on UX choices that have nothing to do with the blockchain — sponsored transactions, responsive state machines, and clever engineering around wallet limitations matter far more than the smart contract logic itself.