finds.dev

affromero/flight-finder

Self-hosted flight, hotel, and car rental price tracking with alerts, price history, and web and CLI interfaces.

View on GitHubHomepage ↗

★ 175TypeScriptMITupdated Oct 2026

// the take

A self-hosted tracker for flight, hotel, and car rental prices that scrapes Google Flights/Hotels, Booking.com, airline sites, DiscoverCars, and AutoEurope on a cron, charts price history, and fires alerts. It's aimed at developers willing to run their own Docker stack (Next.js, Postgres, Playwright) rather than trust Google Flights' or Hopper's black-box price history.

The scraping chain is honest about itself: Google Flights and airline-direct are marked high reliability, Skyscanner and Kayak are explicitly flagged experimental (40-70% success under load) with the README stating plainly that production-grade scraping of those two would need residential proxies or paid CAPTCHA solving it doesn't ship. The VPN price-comparison feature goes well beyond swapping an IP — it aligns timezone, locale, geolocation, WebRTC, canvas/WebGL/audio fingerprints per country, which is real anti-detection engineering, not a marketing checkbox. LLM backend choice is genuinely flexible: subscription CLIs (Claude Code/Codex), pay-per-token API keys, or fully local models via Ollama/llama.cpp/vLLM, so you're not locked into a vendor. Shareable chart URLs (/q/id) with no login required is a small but useful UX decision for a self-hosted tool.

The whole product rests on scraping sites (Google Flights/Hotels, Booking.com, DiscoverCars, AutoEurope) that actively fight scrapers — Cloudflare interstitials, PerimeterX, and a rate limit around 30 sustained requests per IP on Google Flights alone. Any of those sites changing their DOM or bot defenses breaks extraction, and that's an ongoing maintenance tax with no end state, not a one-time bug. Two of the four flight sources (Skyscanner, Kayak) are admittedly unreliable out of the box and the project tells you upfront it won't fix that without infrastructure (residential proxies, CAPTCHA solving) it doesn't provide. The self-hosted footprint is heavy for what's fundamentally a cron job and a chart: Next.js, Prisma, Postgres, Playwright/Chromium, Docker Compose, and an optional VPN sidecar container requiring NET_ADMIN and /dev/net/tun — a lot of surface for a solo operator to keep patched and running. Extraction quality also depends heavily on which LLM backend you pick; the README itself warns that small local models under 1B params or older generations ramble and produce bad structured output, so a cheap/local setup can quietly degrade price accuracy.

We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →

// at a glance

Stars
175
Forks
36
Language
TypeScript
License
MIT
Last commit
22 Oct 2026

// nearby

If flight-finder isn't quite it.

All repos →