<portfolio />

Period

Oct 2024 — Oct 2025

Technologies

React TypeScript Vite TailwindCSS wagmi viem ConnectKit TanStack Query NestJS Fastify MongoDB ethers.js Moralis Ronin Docker Fly.io Vercel Jest Swagger

How to access

To access the holders' platform you need to own an NFT from the The Horde collection. Get yours on Mavis Market.

The Horde NFT

Private repository

Complete Web3 hub for the pixel-art NFT collection The Horde (Ronin blockchain), built solo from frontend to backend — including the ERC-721 contract deployment. It brings together an in-house marketplace, points-based gamification, raffles, leaderboards, and a holders dashboard, with wallet authentication and Discord API integration. It was my first project working with blockchain.

Overview

About the project

The Horde is a pixel art NFT collection on the Ronin blockchain (Axie Infinity ecosystem) that blends art, music, and strategy around a community. To bring it to life, I built a complete Web3 platform solo — from contract to deployment — that works as the central hub for holders. It was also my first project working with blockchain: I even handled the deployment of the collection's own ERC-721 contract on Ronin.

What I built (fullstack, solo)

Frontend — React + TypeScript

  • SPA in React 18 + Vite + TailwindCSS, with a pixel-art visual identity (Pixelify Sans)
  • Wallet connection and signing via wagmi + viem + ConnectKit (Ronin / Saigon)
  • Server state with TanStack Query and routes protected by token-gating (holders-only area)
  • Collection, holder Dashboard, Marketplace, Raffles, Leaderboards, and Whitepaper screens

Backend — NestJS + Fastify

  • Modular NestJS API on top of Fastify, documented with Swagger/OpenAPI
  • Persistence in MongoDB (Mongoose) and a caching layer with cache-manager
  • Web3 session/cookie authentication (wallet login)
  • Marketplace, Points/gamification (covered by Jest tests), and Raffles modules
  • Discord API integration (holder verification and community roles)
  • On-chain reading of NFTs, traits, and metadata via ethers.js + Moralis, with holder snapshot and metadata refresh scripts

Web3 / Blockchain

  • Deployment of the collection's ERC-721 contract on Ronin — the first contract I shipped to production
  • Synchronization of ownership, attributes, and wallet activity

Infra / DevOps

  • Dockerized backend deployed on Fly.io (GRU / São Paulo region)
  • Frontend on Vercel, with a multi-environment setup (Ronin mainnet and Saigon testnet)

Engineering highlights

  • Strong end-to-end typing — TypeScript on the front and the back
  • Data validation with class-validator and Zod
  • Test coverage on the gamification/points flows
  • Autonomous delivery covering contract, product, frontend, backend, blockchain integration, and deployment
← All projects