Skip to content

Latest commit

Β 

History

50 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Axiom Logo Axiom Trade Pulse Clone

Pixel-Perfect Token Discovery & Trading Interface

An exact replica of the Axiom Trade Pulse interface, engineered for high-performance DeFi trading simulation.

Vercel Deployment: View Live Website Β»
Demo Video: View Demo Video


Built with ❀️ using Mobula β€” The most powerful DeFi data API

Next.js TypeScript TailwindCSS Redux React Query Mobula


⚑ About The Project

Axiom Trade Pulse Clone is a high-fidelity frontend recreation of the professional token discovery dashboard used by Axiom Trade. This project serves as a benchmark for modern React performance patterns, demonstrating how to handle high-frequency data updates (mocked) while maintaining 60fps animations and sub-100ms interaction latency.

Unlike typical clones, this project adheres to a strict "Pixel-Perfect" standard, matching the original site's dimensions, colors, and typography within a 2px tolerance. It is fully responsive, adapting complex tabular data from 4K desktops down to mobile screens without sacrificing usability. Live token data and market metrics are powered by Mobula, a high-performance DeFi data API.

🎯 Key Objectives

  • Zero Layout Shift: Meticulous usage of skeletons and pre-allocated dimensions to prevent CLS.
  • State Scalability: Leveraging Redux Toolkit for complex UI state (filters, layout modes) and React Query for asynchronous data management.
  • Design System Integrity: Implementation of a rigid Atomic Design system to ensure component reusability and maintainability.

πŸ“Έ Screenshots

Overview

Full Page Desktop View Β  Mobile Responsive Layout

Features

Interactive Header

Interactive Header Navigation

Tooltips

Interactive Tooltips

Table Hover Effects

Table Row Hover Effects

Status Bar

Bottom Status Bar

Skeleton Loading

Skeleton Loading State

Dynamic Page Switching

SOL to BNB Page Transition

Filter Modal

Filter Modal Functionality

Mobile View & Responsive Design

Mobile Layout Functionality Β  Auto Layout Adjustment

✨ Core Features

πŸ–₯️ High-Performance Interface

  • Real-Time Simulation: Mock WebSocket architecture (useWebSocket) simulates live token events with realistic distinct timing for "New Pairs" vs. "Migrated" tokens, powered by Mobula for live token event data.
  • Micro-Interactions: Custom "Flash" animations (green/red) on price updates, mimicking live order book movements.
  • Virtualized Rendering: Optimized for rendering long lists of tokens without DOM bloat.

🎨 Advanced UX/UI

  • Responsive Data Tables: A complex grid system that transforms into a card-based layout on mobile devices.
  • Dynamic Filtering: Real-time filtering by Chain (SOL/BASE/ETH) and Timebox (1m/5m/1h/24h). Chain and token data sourced via Mobula.
  • Interactive Skeletons: Custom-built shimmer effects that match the exact geometry of the loading content.
  • Global Search: Debounced search functionality with instant feedback.

Project Structure & Component Architecture

The codebase follows strictly Atomic Design principles.

πŸ“‚ Fully Expanded Project Layout

src/
β”œβ”€β”€ app/                              # Next.js App Router
β”‚   β”œβ”€β”€ pulse/                        # Main Dashboard Route
β”‚   β”‚   └── page.tsx                  # Dashboard Page Component
β”‚   β”œβ”€β”€ globals.css                   # Global Tailwind Directives
β”‚   β”œβ”€β”€ layout.tsx                    # Root Layout (Providers Wrapper)
β”‚   └── page.tsx                      # Root Redirect Logic
β”‚
β”œβ”€β”€ components/                       # Atomic Design System
β”‚   β”œβ”€β”€ atoms/                        # Base Primitives
β”‚   β”‚   β”œβ”€β”€ AxiomLogo.tsx             
β”‚   β”‚   β”œβ”€β”€ Badge.tsx                 
β”‚   β”‚   β”œβ”€β”€ Button.tsx                
β”‚   β”‚   β”œβ”€β”€ ChainLogo.tsx             
β”‚   β”‚   β”œβ”€β”€ ChainText.tsx            
β”‚   β”‚   β”œβ”€β”€ MetricBlock.tsx          
β”‚   β”‚   β”œβ”€β”€ NavButton.tsx             
β”‚   β”‚   β”œβ”€β”€ NotificationDot.tsx      
β”‚   β”‚   β”œβ”€β”€ OptimizedImage.tsx       
β”‚   β”‚   β”œβ”€β”€ Skeleton.tsx             
β”‚   β”‚   β”œβ”€β”€ SolanaLogo.tsx           
β”‚   β”‚   └── Tooltip.tsx              
β”‚   β”‚
β”‚   β”œβ”€β”€ molecules/                    # Compound Components
β”‚   β”‚   β”œβ”€β”€ AccountSettingsDropdown.tsx
β”‚   β”‚   β”œβ”€β”€ AvatarDropdown.tsx      
β”‚   β”‚   β”œβ”€β”€ ChainDropdown.tsx        
β”‚   β”‚   β”œβ”€β”€ ChainSelector.tsx         
β”‚   β”‚   β”œβ”€β”€ FilterModal.tsx           
β”‚   β”‚   β”œβ”€β”€ MetricPill.tsx           
β”‚   β”‚   β”œβ”€β”€ MultiChainBadge.tsx      
β”‚   β”‚   β”œβ”€β”€ PresetPill.tsx           
β”‚   β”‚   β”œβ”€β”€ TokenAvatarCard.tsx      
β”‚   β”‚   β”œβ”€β”€ WalletDropdown.tsx       
β”‚   β”‚   └── WalletSolPill.tsx        
β”‚   β”‚
β”‚   β”œβ”€β”€ organisms/                    # Complex Page Sections
β”‚   β”‚   β”œβ”€β”€ BottomStatusBar.tsx      
β”‚   β”‚   β”œβ”€β”€ Header.tsx              
β”‚   β”‚   β”œβ”€β”€ MobileMenu.tsx           
β”‚   β”‚   β”œβ”€β”€ MobileNavBar.tsx       
β”‚   β”‚   β”œβ”€β”€ PulseToolbar.tsx         
β”‚   β”‚   β”œβ”€β”€ TokenCard.tsx            
β”‚   β”‚   └── TokenColumn.tsx          
β”‚   β”‚
β”‚   └── skeletons/                    # Loading States
β”‚       β”œβ”€β”€ HeaderSkeleton.tsx
β”‚       β”œβ”€β”€ PulseToolbarSkeleton.tsx
β”‚       └── TokenColumnSkeleton.tsx
β”‚
β”œβ”€β”€ hooks/                            # Custom Logic Hooks
β”‚   β”œβ”€β”€ useChain.ts                   # Chain Context Helper
β”‚   β”œβ”€β”€ useIsMobile.ts                # Viewport Logic
β”‚   β”œβ”€β”€ usePerformance.ts             # Web Vitals Tracking
β”‚   β”œβ”€β”€ useRedux.ts                   # Typed Redux Hooks
β”‚   β”œβ”€β”€ useTokenCardState.ts          # Card Interaction Logic
β”‚   β”œβ”€β”€ useTokens.ts                  # Query Data Fetching
β”‚   └── useWebSocket.ts               # Mock Socket Simulation
β”‚
β”œβ”€β”€ store/                            # Redux State
β”‚   β”œβ”€β”€ filterSlice.ts                # Filter State Logic
β”‚   β”œβ”€β”€ store.ts                      # Store Configuration
β”‚   β”œβ”€β”€ tokenSlice.ts                 # Token Data Slice
β”‚   └── uiSlice.ts                    # UI Interaction State
β”‚
β”œβ”€β”€ types/                            # TypeScript Definitions
β”‚   └── index.ts                      # Shared Interfaces
β”‚
└── utils/                            # Utilities
    └── index.ts                      # Helper Functions

Below is a detailed breakdown of every component in the system.

βš›οΈ Atoms

Base UI primitives that cannot be broken down further.

File Description
AxiomLogo.tsx SVG rendering of the official Axiom Trade logo.
Badge.tsx Reusable status indicator with varied color schemes (e.g., "Trending").
Button.tsx Core accessible button component with variants (primary, ghost, outline).
ChainLogo.tsx Dynamically renders blockchain logos (Solana, Base, Ethereum) based on props.
ChainText.tsx Standardized text typography for displaying chain names.
MetricBlock.tsx Small reusable layout for displaying numeric data pairs (Label + Value).
NavButton.tsx Navigation item component with active/inactive states for the sidebar.
NotificationDot.tsx Red indicator pulse for alerts or unread statuses.
OptimizedImage.tsx Performance-wrapped next/image component with blur placeholder logic.
Skeleton.tsx Base shimmer animation primitive used to build complex loading states.
SolanaLogo.tsx Optimized vector graphic for the Solana chain icon.
Tooltip.tsx Portal-aware tooltip component that positions itself intelligently around elements.

πŸ§ͺ Molecules

Groups of atoms working together as a functional unit.

File Description
AccountSettingsDropdown.tsx Popover menu for managing user preferences and language settings.
AvatarDropdown.tsx User profile menu containing session actions and profile links.
ChainDropdown.tsx Dropdown selector for switching the active blockchain context.
ChainSelector.tsx Network switch controller used in the main header.
FilterModal.tsx Complex modal form for advanced token filtering (Liquidity, Vol, MCap).
MetricPill.tsx Capsule-shaped display for key metrics like Liquidity or Volume.
MultiChainBadge.tsx Visual indicator for tokens available across multiple networks.
PresetPill.tsx Clickable filter preset toggle (e.g., "M5", "H1", "H6").
TokenAvatarCard.tsx Composition of token image, name, and symbol with fallback handling.
WalletDropdown.tsx Interactive menu for wallet actions (Copy Address, Disconnect, View Explorer).
WalletSolPill.tsx Header widget showing current wallet balance and SOL price status.

🧬 Organisms

Complex distinct sections of the interface.

File Description
BottomStatusBar.tsx Global sticky footer displaying system status, gas fees, and market ticks.
Header.tsx Main application navigation bar containing search, wallet, and settings.
MobileMenu.tsx Full-screen overlays navigation menu for mobile viewports.
MobileNavBar.tsx Simplified bottom navigation bar for mobile UX.
PulseToolbar.tsx The central control bar for the Pulse page; handles all sorting and filtering inputs.
TokenCard.tsx High-complexity row component displaying all live data for a single token.
TokenColumn.tsx Virtualized list container managing a specific category of tokens (e.g., "New Pairs").

πŸ’€ Skeletons

Loading states mirroring the exact dimensions of Organisms.

File Description
HeaderSkeleton.tsx Loading placeholder for the top navigation bar.
PulseToolbarSkeleton.tsx Loading placeholder for the filter and sort toolbar.
TokenColumnSkeleton.tsx Loading placeholder for the main token lists.

πŸ› οΈ Tech Stack

Built on the Bleeding Edge of the React ecosystem (2025 Standards).

Layer Technology Version Purpose
Framework Next.js 16.1.1 App Router, Server Components, SSR
Language TypeScript 5.x Static Typing & Interface Definitions
Styling Tailwind CSS 4.0 Zero-runtime styling, Design Tokens
Global State Redux Toolkit 2.x Client-side UI State (Filters, Modals)
Server State TanStack Query 5.x Data Fetching, Caching, Synchronization
Icons Remix Icon 4.7 Consistent, pixel-perfect vector icons
Data API Mobula Latest Token Discovery, Live Market Data, DeFi Metrics

πŸ“Š Performance

Metric Target Current Status
Lighthouse Score 90+ 99 βœ… Passing
FCP (First Contentful Paint) < 1.0s 0.3s βœ… Passing
Interaction Latency < 100ms 20ms βœ… Passing
Layout Shift 1 0.003 βœ… Passing

⚑ Getting Started

Prerequisites

  • Node.js: v18 or higher
  • Package Manager: npm, pnpm, or yarn

Installation

  1. Clone the repository

    git clone https://github.com/darshan-gowdaa/axiom-trade-pulse-clone.git
    cd axiom-trade-pulse-clone
  2. Install dependencies

    npm install
    # or
    pnpm install
  3. Start the development server

    npm run dev
  4. Open your browser Navigate to http://localhost:3000 to view the application.

About

A pixel-perfect, high-performance clone of the Axiom Trade Pulse token discovery interface. Built with Next.js 16, TypeScript, Redux Toolkit, and Tailwind CSS, featuring real-time price simulations, atomic architecture, and a fully responsive design.

Topics

Resources

Stars

4 stars

Watchers

0 watching

Forks

Contributors

Languages