Back to Home

Frontend Web3

Web3 work

I'm a frontend and full-stack developer building Web3 applications with React, Next.js and TypeScript. My experience includes NFT minting, wallet integrations, staking interfaces and on-chain identity, connecting blockchain functionality with usable web and mobile experiences.

Below is a selection of paid work, hackathon prototypes and personal projects. Each project details what I built, the technical challenges I tackled, my role within the team and its current status.

Selected projects

SparkIt

Private for nowSolana

Spark, an on-chain identity platform. July to August 2025.

My contribution

197 of 242 commits on the web application, and the whole of the workers service, 33 commits out of 33. Two other developers contributed to the web application.

What I built

  • Minting flow for an identity NFT on Solana: the transaction is built server side, signed in the browser through the wallet adapter, then confirmed and recorded.
  • Wallet connection with Phantom, Solflare and Backpack, with a guard that keeps the connected wallet and the authenticated account in step.
  • Authentication with Privy and JWT verification on the protected routes, combined with GitHub and X account linking through OAuth.
  • Score interface: leaderboard, radar chart of the score attributes, referral section and public profile sharing.
  • Access control by invitation code, an admin area, CSRF tokens and security headers.

The hard part

The score is computed from several external sources and none of them answers quickly. I moved that work out of the request cycle into four asynchronous Python workers behind a Redis queue, one per source, writing to PostgreSQL. The interface had to stay usable while a score was still being computed, so each source carries its own pending, done and failed state instead of one global spinner. Halfway through, the data layer also moved from Supabase to PostgreSQL on Railway.

Stack

Next.js 13 App Router, TypeScript, Tailwind, shadcn/ui, Solana web3.js, wallet adapter, Anchor, Privy, PostgreSQL, Redis, Python

Mint flow

Landing, v1

Landing, v2

Promo

Click to open the player

The product is not open to the public for now. Both repositories are private.Private repository, no public link

PawesomeID

Hackathon prototypeXRP Ledger

A digital passport for pets on the XRP Ledger, started during the XRPL Commons Aquarium residency in Paris, April to June 2024.

My contribution

64 of 80 commits, as project lead and full stack developer, with two other contributors.

What I built

  • Pet identity built on Decentralised Identifiers, so the record follows the animal rather than one vet or one owner.
  • Wallet connection through the Crossmark SDK for the XRP Ledger, alongside Web3Auth so an owner with no crypto background can sign in socially and still end up with a wallet.
  • Google sign-in, and the owner and veterinarian views on top of the identity record.

The hard part

The difficulty was the audience, not the ledger. Pet owners and vets do not have wallets, so the interface had to hide key management behind a social login while keeping the record genuinely self-sovereign.

Stack

Next.js, TypeScript, Crossmark SDK, Web3Auth, Google OAuth

Click to open the player

Prototype, still worked on. First prize at HAKS 2024 and jury prize at the XRPL Commons Demo Day.Code

DonorChain

Experimental projectEthereum

Transparent charity donations on Ethereum. Personal project built during the Alyra certification, June to July 2024.

My contribution

126 commits, the entire project: contracts and interface.

What I built

  • Solidity contracts with Hardhat and OpenZeppelin: associations are registered, donations are traced, and funds reach the chosen association directly.
  • Next.js interface with RainbowKit for the wallet connection, ethers and wagmi for reads and writes, and transaction states surfaced in the UI.
  • A donor can follow what happened to a donation from the interface.

The hard part

This is where I learned to design the contract and the interface together: deciding what belongs on chain, what can be read back from events, and how to show someone a transaction that has been sent but not yet mined.

Stack

Solidity, Hardhat, OpenZeppelin, Next.js, RainbowKit, ethers, wagmi, Tailwind

Experimental project. The public demo is still up.CodeDemo

BeChill

Experimental projectSolana

A crypto portfolio assistant with an AI coach, on Solana. Built in April and May 2025 around the Colosseum hackathon.

My contribution

Both repositories are entirely mine: 29 commits on the web application, 12 on the mobile one.

What I built

  • Next.js web application with Privy authentication, Solana web3.js to read the portfolio, and charts of the holdings.
  • An assistant layer built on LangChain that comments on the portfolio, wired to a locally run model during development.
  • A separate React Native application using the Solana Mobile Wallet Adapter, so the connection goes through the wallet already installed on the phone.

The hard part

Two different wallet connection models for the same product, one in the browser and one on mobile, where the phone hands control to another application and gives it back. Getting the user back into a coherent state after that round trip was most of the work.

Stack

Next.js, TypeScript, Solana web3.js, Solana Mobile Wallet Adapter, Privy, React Native, LangChain, Convex

Mobile app

Promo

Click to open the player

Its own README states it is a development version, not production ready.CodeCode (mobile)

ZKAge Proof Mobile

Hackathon prototypeEthereum, Arbitrum

Zero-knowledge age verification, built at EthGlobal Cannes in July 2025 with a team.

My contribution

31 of 56 commits, on the Flutter application and the integration. The Circom circuit work was shared with teammates who specialise in zero-knowledge.

What I built

  • Flutter application that generates an age proof and scans it as a QR code.
  • A Groth16 proof verified by a contract on Arbitrum Sepolia.
  • The user proves they are above an age threshold without revealing their date of birth.

The hard part

Proof generation is slow and happens on the phone, so the application had to stay honest about what it was doing rather than appear frozen.

Stack

Flutter, Dart, Circom, Groth16, Mopro, Arbitrum Sepolia

Mobile app

Click to open the player

Hackathon prototype.Code

Everything else

Shorter entries, same rule: what it was, what I did, and where it really stands.

Nexus ID

Hackathon prototype

Self-sovereign identity on Algorand for people without official papers, with credentials issued by trusted third parties such as NGOs or school directors.

My contribution : 37 of 42 commits, on the Flutter application and the Python backend, in a team of three.

Flutter, Python, Algorand

WILD SOL

Hackathon prototype

Identity for endangered wild animals: AI-assisted recognition, then a decentralised identifier minted as an NFT, shared between NGOs, vets and sanctuaries.

My contribution : 20 of 53 commits in a team of six, on the Flutter application.

Flutter, TypeScript, Solana

Sample

Hackathon prototype

A music platform where artists register themselves and their work on chain, with wallet sign-in, an upload flow and a built-in player. Built at the Allfeat Music hackathon, second prize.

My contribution : 23 of 55 commits in a team of four. I wrote the artist registration end to end: the Solidity contracts behind it, the wallet connection, the form, and the transaction wiring from the front.

Solidity, Foundry, Next.js, ethers, Tailwind, Allfeat

No public repository

PolyStake

Hackathon prototype

A staking and trading interface combining Bitcoin and Ethereum economic security, built around Babylon and restaking.

My contribution : The whole front end, 23 commits. The backend was another team member's.

Next.js, TypeScript, ethers, Reown AppKit, wagmi

BTC Bridge

Hackathon prototype

A mobile interface for bridging Bitcoin, built at the Babylon hackathon in Bangkok.

My contribution : The whole Flutter application, 4 commits over a short sprint.

Flutter, Dart

PawesomeID mobile

Hackathon prototype

A mobile take on the decentralised identity work, aimed at primates rather than pets.

My contribution : The whole application, 6 commits.

Flutter, Dart

Voting DApp

Experimental project

An on-chain voting application, built as the final project of the Alyra certification.

My contribution : 34 of 38 commits: the Solidity contract and the React interface.

Solidity, React, ethers

Polkadot DID creator

Discontinued

A mobile application for creating decentralised identifiers on Polkadot.

My contribution : Mobile application, built solo.

Flutter, Dart, Polkadot

No public repository

SOKAI Web3 PWA

Hackathon prototype

A progressive web app for a football training product: wallet sign-in treated as an OAuth step, chain configuration, and a soulbound player card.

My contribution : Front end built for the client, inside their private repository.

Next.js, TypeScript, thirdweb, SIWE, Chiliz

No public repository

Residency and prizes

XRPL Commons Aquarium residency

Paris, April to June 2024. PawesomeID was built there, and presented at the Demo Day that closed the programme.

  • First prize, HAKS 2024, with XRPL Commons: PawesomeID, a pet passport on decentralised identifiers, built in two days by a team of four.
  • Jury prize, XRPL Commons residency Demo Day, June 2024: PawesomeID, where I was project lead and full stack developer.
  • Second prize, Algorand, November 2024: Nexus ID, verifiable identity for people without official papers.
  • Second prize, Allfeat Music, November 2024: an on-chain copyright register for artists.
  • Winner, Chiliz 2025: the SOKAI progressive web app, with wallet sign-in and a soulbound player card.

Hackathon prizes are team results. My role in each team is stated above or alongside.