Skip to content

mattschwen/launchwatch

LaunchWatch Logo

LaunchWatch

Track upcoming rocket launches, watch live streams, and discover space facts.

License: MIT Next.js TypeScript

Features

  • Live Launch Tracking - Automatically detects launches happening within ±2 hours
  • Embedded Livestreams - Watch SpaceX and NASA launches directly in the app
  • Push Notifications - Get notified before launches (PWA)
  • Countdown Timers - Real-time countdowns to upcoming launches
  • Calendar Integration - Add launches to your calendar with one click
  • Rocket Facts - Rotating banner with space trivia and NASA's Astronomy Picture of the Day
  • Filter by Agency - Filter launches by SpaceX, NASA, ESA, and more
  • 3-Month View - See all upcoming launches for the next 3 months
  • Offline Support - PWA with offline capabilities

Quick Start

# Clone the repository
git clone https://github.com/yourusername/launchwatch.git
cd launchwatch

# Install dependencies
npm install

# Run development server
npm run dev

Open http://localhost:3000 in your browser.

Tech Stack

Environment Variables

Create a .env.local file (optional):

# Optional: NASA API Key (get free key at https://api.nasa.gov)
NEXT_PUBLIC_NASA_API_KEY=your_key_here

# Optional: Launch Library 2 API Key for higher rate limits
NEXT_PUBLIC_LL2_API_KEY=your_key_here

Without API keys, the app uses free public endpoints with rate limits.

Project Structure

launchwatch/
├── app/                    # Next.js App Router
│   ├── api/launches/       # API route for launch data
│   ├── history/            # Past launches page
│   ├── page.tsx            # Home page
│   └── layout.tsx          # Root layout
├── components/             # React components
├── lib/                    # Utilities and API functions
│   ├── api.ts              # External API integrations
│   ├── hooks.ts            # React hooks
│   ├── types.ts            # TypeScript types
│   └── notifications.ts    # Push notification logic
├── public/                 # Static assets
│   ├── manifest.json       # PWA manifest
│   └── sw.js               # Service worker
└── docs/                   # Documentation

Scripts

npm run dev          # Start development server
npm run build        # Build for production
npm start            # Start production server
npm run lint         # Run ESLint

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

API Rate Limits

  • SpaceX API: No authentication required, no rate limits
  • Launch Library 2 (Free): 15 requests/hour
  • Launch Library 2 (With API Key): Higher limits
  • NASA API (DEMO_KEY): 30 requests/hour
  • NASA API (With Key): 1000 requests/hour

The app uses intelligent caching to stay within these limits.

License

This project is licensed under the MIT License - see LICENSE file for details.

Credits

Support


Made with ❤️ for space enthusiasts

About

A modern web app that tracks upcoming NASA and SpaceX rocket launches with live streams

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published