A modern, high-performance flight search engine built with Next.js 16, React 19, and Tailwind CSS.
SkySearch provides real-time flight data, interactive price visualization, and a premium, responsive user experience optimized for speed and accessibility.
- Real-Time Search: Seamless integration with the Amadeus API for live flight availability and pricing.
- Smart Sorting: "Best", "Cheapest", and "Fastest" algorithms to help users find the perfect flight.
- Interactive Price Graph: Progressive data visualization offering price insights for surrounding dates.
- Rich Flight Details: Estimated amenities (Wi-Fi, Power, Entertainment) and aircraft information.
- URL Synchronization: Shareable search URLs that persist state across sessions.
- Recent Searches: Local history of previous searches for quick access.
- Dark Mode: Fully responsive theme with automatic system preference detection.
- Performance Optimized:
- Vercel Analytics & Speed Insights integration.
- Server-side rendering (SSR) for fast initial loads.
- Optimized font loading (Geist) and image handling.
- Framework: Next.js 16 (App Router, Turbopack)
- Language: TypeScript
- Styling: Tailwind CSS 4 & Shadcn UI
- Icons: Lucide React
- Data Visualization: Recharts
- State Management: React Hooks & URL Search Params
- API: Amadeus Self-Service API
- Node.js 18+
- npm or pnpm
-
Clone the repository
git clone https://github.com/Ekam-Bitt/skysearch.git cd skysearch -
Install dependencies
npm install
-
Configure Environment Variables Create a
.envfile in the root directory and add your Amadeus API credentials:AMADEUS_CLIENT_ID=your_client_id AMADEUS_CLIENT_SECRET=your_client_secret # Optional: For production API # AMADEUS_BASE_URL=api.amadeus.com
You can get free test keys from the Amadeus for Developers portal.
-
Run the development server
npm run dev
Open http://localhost:3000 with your browser to see the result.
The application is optimized for deployment on Vercel.
- Push your code to a Git repository.
- Import the project into Vercel.
- Add your environment variables (
AMADEUS_CLIENT_ID,AMADEUS_CLIENT_SECRET) in the Vercel dashboard. - Deploy!
To create a production build locally:
npm run build
npm start- Metadata: Comprehensive Open Graph and Twitter cards configurations.
- Robots & Sitemap: Automated generation for search engine indexing.
- Dynamic Imports: Lazy loading for heavy interactive components.
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by Ekam Bitt