A modern, responsive cryptocurrency price tracking application built with Next.js 15, featuring real-time data, portfolio management, and price conversion tools.
- Real-time Price Tracking: Live cryptocurrency prices with 24h changes and market data
- Portfolio Management: Track your crypto holdings with automatic value calculations
- Price Converter: Convert between cryptocurrencies and fiat currencies
- Watchlist: Star your favorite coins for quick access
- Multi-currency Support: USD, PHP, EUR support with live conversion rates
- Responsive Design: Optimized for desktop, tablet, and mobile devices
- Fear & Greed Index: Market sentiment indicator
- Global Market Stats: Total market cap, volume, and BTC dominance
crypto-price-tracker/
├── app/ # Next.js App Router
│ ├── api/ # API routes
│ │ ├── fear-greed/ # Fear & Greed Index endpoint
│ │ ├── global/ # Global market data endpoint
│ │ └── markets/ # Cryptocurrency data endpoint
│ ├── globals.css # Global styles and animations
│ ├── layout.tsx # Root layout
│ └── page.tsx # Homepage
├── components/ # React components
│ ├── BootSequence.tsx # Startup animation
│ ├── CoinTable.tsx # Main crypto table with sorting
│ ├── CurrencyToggle.tsx # Currency selector
│ ├── CustomSelect.tsx # Custom dropdown component
│ ├── DashboardHeader.tsx # Navigation header
│ ├── FearGreedGauge.tsx # Market sentiment gauge
│ ├── GlobalStats.tsx # Market statistics
│ ├── NumberInput.tsx # Number input with steppers
│ ├── PortfolioTracker.tsx # Portfolio management
│ ├── PriceCalculator.tsx # Currency converter
│ ├── SparklineChart.tsx # 7-day price charts
│ ├── StatusBar.tsx # Connection status
│ └── WatchlistPanel.tsx # Favorite coins panel
├── hooks/ # Custom React hooks
│ ├── useCryptoData.ts # Crypto data fetching
│ ├── useFearGreed.ts # Fear & Greed data
│ ├── useGlobalData.ts # Global market data
│ └── useLocalStorage.ts # Local storage management
├── lib/ # Utility libraries
│ ├── api.ts # API configuration
│ ├── constants.ts # App constants
│ ├── formatters.ts # Data formatting utilities
│ └── utils.ts # General utilities
├── types/ # TypeScript type definitions
│ └── index.ts # Shared interfaces and types
├── public/ # Static assets
│ └── atlas_logo.png # App logo
└── package.json # Dependencies and scripts
- Node.js 18+
- npm or yarn package manager
-
Clone the repository
git clone https://github.com/yourusername/crypto-price-tracker.git cd crypto-price-tracker -
Install dependencies
npm install
-
Run the development server
npm run dev
-
Open your browser Navigate to http://localhost:3000
npm run build
npm start- Framework: Next.js 15 with App Router
- Language: TypeScript
- Styling: Tailwind CSS
- Icons: Lucide React
- Charts: Recharts
- Data Source: CoinGecko API
- State Management: React hooks + Local Storage
- Deployment: Vercel Ready
ATLAS is designed with a mobile-first approach:
- Mobile: Optimized card layouts, touch-friendly controls
- Tablet: Adaptive grid systems, collapsible sidebars
- Desktop: Full-width tables, multi-column layouts
- Live price updates every minute
- 24h price change indicators with color coding
- Market cap and volume tracking
- 7-day price sparkline charts
- Add/edit/remove crypto holdings
- Automatic value calculations in multiple currencies
- 24h portfolio change tracking
- Smooth deletion animations
- Crypto-to-crypto conversion
- Crypto-to-fiat conversion (bidirectional)
- Real-time rate calculations
- Smooth swap animations
- Boot sequence for returning users
- Persistent data with localStorage
- Smooth micro-interactions
- Hardware-accelerated animations
- Cryptocurrency Data: CoinGecko API
- Fear & Greed Index: Alternative.me API
- Exchange Rates: Static rates (can be extended to live APIs)
- Memoization: React.memo and useMemo for expensive calculations
- Code Splitting: Dynamic imports for route-based splitting
- Image Optimization: Next.js Image component
- CSS Optimization: Tailwind CSS purging
- Animation Performance: GPU-accelerated transforms
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- CoinGecko for cryptocurrency data
- Alternative.me for Fear & Greed Index
- Lucide for beautiful icons
- Tailwind CSS for utility-first styling
Built using Next.js 15 and TypeScript