Frontend Engineer

I care about the details most people skip.

Isânio Moraes

Senior Frontend Engineer working with React, TypeScript, and the web platform. I use AI tools daily and think a lot about where they fit in a real workflow.

Chat with Isânio

Ask about my skills, approach, or experience.

web fundamentals · react · design systems · performance · leadership

local inference · no api calls · client-side only

showcase

Showcase

Interfaces I've built.

Real patterns from real projects. Each card is a working UI.

Crypto Portfolio

Asset tracker with sparklines, buy/sell/swap actions

Portfolio

$50,006.62

Support Chat

Live agent chat with typing, read receipts, resolve

SK

Sarah K.

Billing Support

Conversation started. Avg. response time: ~2 min
Hey there! I'm Sarah from the billing team. I can see your account. What's going on?
10:02 AM
I was charged twice for the Pro plan this month. Order #8842.
10:03 AM✓✓
I found it. Looks like a duplicate charge from the retry logic on our end. I've already initiated a refund of $29.00 to your card ending in 4242.
10:04 AM
How long until it shows up?
10:04 AM✓✓
Project Setup

Multi-step wizard with animated transitions

Stack
Features
Deploy
Done
Issue Tracker

Linear-style issue list with status cycling

My Issues7
FilterSort
Social Timeline

Thread-style posts with likes and replies

IM
Isanio Moraes@isaniomoraes·2h

Just shipped a new portfolio site. The site itself is the portfolio piece.

IM
Isanio Moraes@isaniomoraes·2h

Built with Next.js 16, Tailwind v4, shadcn/ui, Framer Motion, and Recharts. Every card is a working interactive demo.

AK
Alice K.@alicek_dev·1h

The Zod + React Hook Form card is exactly how I explain validation to juniors. Bookmarked.

Order Book

Live bid/ask depth with volume bars

BTC/USDT
PriceSizeTotal
67,892.400.34223.2k
67,880.150.51835.2k
67,865.001.20481.7k
67,852.300.75651.3k
67,845.800.43129.2k
67,838.200.011%
67,838.200.89260.5k
67,825.500.64543.7k
67,810.001.10374.8k
67,798.750.38726.2k
67,785.600.92462.6k
Token Swap

DEX-style token exchange with rate preview

From

Bal: 3.215

≈ $3,521.18

To

Bal: 0.482
0.0519

≈ $3,521.18

Rate1 ETH = 0.0519 BTC
Fee0.3%
Invite Form

Zod schema validation + React Hook Form

Invite teammate

Zod schema + React Hook Form

Analytics

Recharts composited bar + line chart

3,135

Visitors this week

$9.6k

Revenue

Visitors
Revenue
Command Palette

Searchable command launcher

Magnetic Field

Cursor-reactive floating nodes

Move your cursor

React
Next.js
TS
Zod
CSS
Motion
shadcn
Radix
Contract Timeline

Step-through workflow with animated progress

Contract #1042

SaaS Agreement, Atlas Corp

Draft created

Contract generated from template

Mar 12, 10:24am

Internal review

Approved by legal team

Mar 13, 2:15pm

Sent to client

Delivered to jane@acme.co

Mar 14, 9:00am

Client signed

e-Signature verified

Completed

Countersigned and archived

Team Directory

Sortable data table with status

Alice ChenEngineerActive
Bob ParkDesignerAway
Carol LiuPMActive
Dan KimEngineerOffline
Eva MossDesignerActive
Fay WuPMAway
Shape Morph

Auto-morphing CSS blob shapes

Auto-morphing with CSS border-radius

JSON Viewer

Interactive collapsible tree

{
"name": "Isânio Moraes",
"role": "frontend",
"active": true
},
... },
... }
}
Settings

Preferences panel with toggles and selects

Preferences

Configure your experience

Dark mode

Use dark color scheme

Notifications

Email and push alerts

Analytics

Anonymous usage data

Language

Display language

API Explorer

REST endpoints with expandable details

REST APIAll healthy
Select Dropdowns

Issue properties with custom selects

Issue properties

Custom select dropdowns

{ status: "active",
  priority: "high",
  assignee: "im" }
Text Reveal

Staggered word-by-word animation

Buildinterfacesthatfeelinevitable.
3D Parallax

Layered depth on mouse movement

$3,521.18▼ 1.07%

Ethereum

3.215 ETH · $11,325

Craft

How I build things.

Interactive components, real code. Click the demos, hover for source.

Zero-Shift State Machines

AnimatePresence mode="wait" with fixed-width containers. States cycle without a single pixel of layout shift.

Spring Physics Engine

Springs over easing curves. They handle interruption naturally and feel physical, not tweened.

ARIA-First Components

Radix primitives with full keyboard nav, focus traps, and screen reader announcements. Styled, not reimplemented.

Try Tab key

Real-Time Notification System

Animated list with filter transitions, layout animations, and unread state management.

Notifications3

Production deploy succeeded

2m

main → v2.4.1

i

Review requested on PR #42

18m

feat: add dark mode support

!

CI pipeline warning

1h

Bundle size increased by 12%

Build failed on staging

2h

TypeError in auth module

Dependency update available

5h

react 19.2.4 → 19.3.0

Perceived Performance

Skeleton screens that match real content dimensions. Pulse → crossfade → layout-stable reveal.

Perceptual Color System

One hue value drives the entire palette. OKLCH gives perceptually uniform results across the spectrum.

oklch(0.65 0.13 155)

Micro-Interaction Design

Icon morphing, glow diffusion, spring physics. Every pixel of feedback is intentional.

Dark mode
Notifications

Pipeline Visualization

Spring-animated progress with step tracking and auto-restart. Real deploy UX, not a spinner.

Installing dependencies0%

Semantic Token System

Status colors derived from design tokens. OKLCH ensures AA contrast in both light and dark themes.

AI-Augmented Workflow

Tools I actually use, not just list on a resume.

Claude CodeAnthropic

My main tool — coding, automations, and architecture

CodexOpenAI

Second go-to for autonomous coding tasks

CursorAnysphere

Quick edits and refactoring when I need it

GitHub CopilotGitHub

Good for the repetitive stuff

v0Vercel

Quick mockups when I need to see an idea fast

They handle the boilerplate. I handle type safety, accessibility, and the stuff that actually matters to users.

Dossier

Skills & experience.

15+ years building for the web. Toggle categories to explore the stack.

Technical

Soft Skills

System Readout

ACTIVE MODULES11/11
SKILLS LOADED43
AVG PROFICIENCY80%
MAX EXPERIENCE15y

Activity Log

09:41matrix loaded
09:41all modules online
09:42scan complete
SYSTEM NOMINAL

Code

Patterns I reach for.

Markup, components, and everything between.

result.ts
// Discriminated unions for exhaustive type checking
type Result<T, E = Error> =
  | { ok: true; data: T }
  | { ok: false; error: E }

function unwrap<T>(result: Result<T>): T {
  if (result.ok) return result.data
  throw result.error
}

// Branded types prevent mixing values
type UserId = string & { readonly __brand: "UserId" }
type OrderId = string & { readonly __brand: "OrderId" }

function getUser(id: UserId) { /* ... */ }

const userId = "abc" as UserId
const orderId = "xyz" as OrderId
getUser(userId)   // ✓
getUser(orderId)  // Type error: can't mix branded types

Stack

What I work with.

Frameworks change. The web platform doesn't. I stay close to the fundamentals and pick the right tool for the job.

Web Platform

HTML
CSS
JavaScript

The foundation everything else is built on.

Languages
TypeScript·Python·Ruby·PHP·Lua
Frontend
React·Next.js·Tailwind CSS·Framer Motion·shadcn/ui·Radix UI·Zod
Mobile
React Native·Expo
Backend & APIs
Node.js·Express·Ruby on Rails·GraphQL·gRPC·REST
Data
PostgreSQL·MongoDB·MySQL·SQLite·Supabase·Firebase
Testing
Playwright·Jest·Cypress·Puppeteer·Selenium
DevOps & Infra
Vercel·AWS·Cloudflare·Netlify·Docker·GitHub Actions·Jenkins
Browser Extensions
Chrome Extensions·Firefox Add-ons·Web APIs·Content Scripts
Design & CMS
Figma·Storybook·Design Systems·Contentful
Observability
Sentry·Datadog·Grafana·LogRocket·New Relic
CLI & Tools
Git·Bash·Zsh·GitLab
Project Management
Linear·Jira·Notion
AI-Augmented
Claude·Codex·Cursor·GitHub Copilot·Gemini·Replit·v0

I use these every day. They're good at the boring parts.

Contact

Let's talk.

One small step for you, one verification for mankind.

Human Verification Protocolv1.0.0

Want my email? Prove you're human first.

Bots hate this one simple trick.