A modern web application for exploring confirmed exoplanets using real-time data from NASA's Exoplanet Archive. Built with Next.js and powered by a serverless AWS backend.
- Real-time Data: Automatically syncs with NASA's Exoplanet Archive every 6 hours
- Interactive Exploration: Browse and filter thousands of confirmed exoplanets
- Detailed Information: View comprehensive data including orbital parameters, stellar characteristics, and discovery details
- Serverless Architecture: Scalable AWS infrastructure with DynamoDB and Lambda
- Next.js 15 - React framework with App Router
- TypeScript - Type-safe development
- AWS SDK - Direct DynamoDB integration
- Vercel - Deployment platform
- AWS Lambda - Serverless compute (Python 3.13)
- DynamoDB - NoSQL database with GSIs for efficient querying
- EventBridge - Scheduled data synchronization
- SAM - Infrastructure as Code
- GitHub Actions - CI/CD pipeline
.
├── exoplanethub.com/ # Next.js frontend
│ ├── app/ # App router pages
│ ├── components/ # React components
│ └── lib/ # Types and utilities
└── aws-backend/ # Serverless backend
├── lambda/
│ ├── sync/ # NASA data sync function
│ └── cleanup/ # Database cleanup function
└── template.yaml # SAM template
- Node.js 18+
- Python 3.13+
- AWS Account
- AWS SAM CLI
cd exoplanethub.com
pnpm install
# Create .env.local with:
# AWS_REGION=us-east-1
# AWS_ACCESS_KEY_ID=your_key
# AWS_SECRET_ACCESS_KEY=your_secret
# EXOPLANETS_DATABASE_TABLE=exoplanets-dev
# EXOPLANETS_RECORDS_TABLE=exoplanet-records-dev
pnpm devcd aws-backend
# Create samconfig.toml with your AWS settings
sam build
sam deploy --guided- Frontend: Automatically deploys to Vercel on push to
main - Backend: Deploy by pushing tags:
dev-aws-backend-*→ dev environmentmain-aws-backend-*→ production environment
AWS_ROLE_ARN— the IAM role the backend deploy workflow assumes via OIDC. No long-lived access keys are stored; the workflow requests a short-lived token per run.
Exoplanet data is sourced from NASA Exoplanet Archive using their TAP API.
We welcome contributions! See CONTRIBUTING.md for guidelines.
MIT - see LICENSE for details.