HostelHawk
Full-stack hostel price tracking platform that scrapes Hostelworld inventory into a time-series database — calendar-grid search with price trends, ML-based price drop predictions with email alerts, and an interactive MapLibre globe. Runs on a single Oracle free-tier VM behind Cloudflare Tunnel.
HostelHawk is a price-history tracker for Hostelworld inventory that turns live availability data into actionable insights for budget travelers. It combines a Rust scraper daemon, a SvelteKit frontend, and TimescaleDB on a single Oracle free-tier VM — zero cloud cost.
The system has three layers. A Rust scraper runs continuously, polling cities on a schedule and writing availability snapshots to a TimescaleDB hypertable. The SvelteKit frontend serves a calendar-grid search interface where users browse per-city price trends, view property-level price history charts, and see price drop predictions highlighted on the calendar. A paid subscription tier adds email alerts for both threshold-based price drops and ML-predicted drops, with magic-link authentication tied to Ko-fi payments.
The ML pipeline runs daily as a systemd-timed job. A LightGBM binary classifier scores each property-date cell for drop probability, a multiclass model forecasts the direction (down/flat/up), and a quantile regressor estimates the typical magnitude. Results are surfaced as confidence-tiered markers on the calendar — high-confidence drops get a distinct visual indicator, subscribers see the estimated magnitude alongside.
Infrastructure runs on a single Oracle Ampere A1 VM behind Cloudflare Tunnel (no public inbound IP). PgBouncer pools Postgres connections between the scraper and web app, Docker containers are managed by Coolify, and Traefik handles reverse proxy. The map view uses MapLibre with globe projection for browsing cities, with custom zoom-interpolated label transitions between continent and country levels.