Skip to content

Repository files navigation

Tracker screen

History screen

IP Address Tracker

A cross-platform app to geolocate any IP address or domain — with an interactive map, detailed network info, and persistent search history.

🌐 Live Demo

Table of Contents


Features

  • IP & domain lookup — geolocate any IPv4, IPv6, or domain name
  • Interactive map — Leaflet (web) / Apple Maps (iOS) with animated marker
  • Geo details — city, region, country, timezone, ISP, ZIP code
  • Auto-detect — looks up your own IP on launch
  • Search history — persisted locally, tap any entry to re-lookup
  • Dark / light mode — follows system theme
  • Responsive — works on web, iOS, and Android

Tech Stack

Layer Technology
Framework Expo 54 + Expo Router (file-based routing)
Language TypeScript
UI React Native + react-native-web
Map (web) Leaflet via iframe
Map (iOS) react-native-maps (Apple Maps)
Animations react-native-reanimated v4
Blur / Glass expo-blur
Gradient expo-linear-gradient
Storage @react-native-async-storage/async-storage
Geo API ip-api.com (via Netlify serverless proxy on web)
Own-IP API api.ipify.org
Hosting Netlify (static export + serverless function)

Getting Started

# Install dependencies
npm install

# Start the dev server
npx expo start

Running on Web

# Local development (Metro only)
npx expo start --web

# Local development with Netlify functions proxy (fixes CORS)
npx netlify-cli dev --target-port 8081 --framework '#custom'
# Then open http://localhost:8888

Running on iOS

# Run in iOS Simulator (requires Xcode)
npx expo run:ios

# Or open the workspace directly
open ios/*.xcworkspace

Project Structure

app/
  _layout.tsx          # Root layout, wraps IpTrackerProvider
  (tabs)/
    _layout.tsx        # Tab navigator (Tracker + History)
    index.tsx          # Tracker screen
    history.tsx        # History screen
components/
  MapContainer.tsx     # Native map (iOS/Android)
  MapContainer.web.tsx # Leaflet iframe map (web)
  IpInfoCard.tsx       # Geo info card with glassmorphism
  SearchBar.tsx        # IP/domain search input
context/
  IpTrackerContext.tsx # Global state (useReducer)
services/
  ipService.ts         # getOwnIp(), lookupIp()
  historyService.ts    # AsyncStorage history CRUD
constants/
  theme.ts             # Colors, spacing, typography
netlify/
  functions/geo.js     # Serverless proxy for ip-api.com

Deployment

The app is deployed to Netlify as a static web export with a serverless function that proxies geo API requests to avoid CORS restrictions.

# Build and deploy
npx expo export -p web
npx netlify-cli deploy --dir=dist --prod

Live URL: https://ip-address-tracker-devartslab.netlify.app

Acknowledgments

Special thanks and a shout out to the following individuals and organizations:

  • Per Scholas for their exceptional coding school, providing valuable learning resources and support.
  • Our instructor Darnell Champen for his guidance, mentorship, and countless hours of dedication for the success of our team.
  • Hat tip to anyone whose libraries were used.

👨‍💻 Author

DevArts Lab

Boston, MA, USA
2026

About

A cross-platform app to geolocate any IP address or domain — with an interactive map, detailed network info, and persistent search history.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages