Show HN: Flight Penguin – Like Hipmunk, but a browser extension (flightpenguin.com)
Hipmunk was a travel metasearch site that sorted flights by "agony" and showed them in a Gantt chart view. I've missed using Hipmunk ever since SAP shut it down. So I decided to seed-fund a successor along with my Hipmunk co-founder (and Reddit CEO) Steve Huffman. More recently I brought on Max Morlocke (hn: maxmorlocke) as cofounder.
With Flight Penguin, you get a simple, time-based way to search for flights, and it pulls in results from multiple sites. By default Flight Penguin sorts by "pain," so you see the least painful options before the multiple-layover monstrosities Kayak loves to show first.
As some of you know, some airlines are now demanding anti-consumer provisions when they do deals with travel sites, such as insisting that sites hide cheaper flights, hide multi-airline itineraries, and hide certain booking options. We decided not to agree to any of those terms, because we want to make the best experience. Being a browser extension gives us the ability to show the lowest fares without going through airline servers or airline contracts, since we can search and compile all the data from your browser.
You can install it now at https://www.flightpenguin.com. We're also launching a crowdfunding round to keep our incentives aligned with our users: https://wefunder.com/flightpenguin. Happy to answer any questions and would love your thoughts!
77 comments
[ 3.5 ms ] story [ 136 ms ] threadhttps://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/Web...
There's a lot of small amounts of work to get everything working right using the webext module. We're slowly chipping away, we've eliminated all our dependencies on chrome specific modules in the last month while working on other functionality, but we're a really small team right now with competing priorities, so this will get more priority as we get more people on the team.
https://stackoverflow.com/questions/64063754/chrome-extensio...
Since you're using a browser extension and scraping OTA websites, one of the things on my wish list is the ability to scrape Amex Travel -- they offer discounted rates if you have a Platinum card.
Starting airport: There are 4 around London, can I select any?
Destination airport: There are 2 around Lisbon, can I select any?
Already I have 8 permutations of things I don't want to think about.
Got a search result but it didn't render correctly... I use noscript but this is a privileged tab and there's nothing to allow and I don't see what else it might need.
Tried sorting to see if unlocks the blurred results... it doesn't work, I try to go back, but there is no back button as this is an embedded SPA within an extension talking to a web based API somewhere. I reload to see if I can get it working, it's blown away all of the history and state.
Is there a reason this has to be a Chrome extension rather than a web page?
PS: Loved Hipmunk, so I do want this to work.
Update: It was NoScript. FlightPenguin opens other browser windows behind the browser window you're in... and those all need to work, meaning you need to enumerate them and approve all applicable JS for those sites to work. Once you've done that then FlightPenguin works, and to answer my own question it's probably to get around the aggressive scrape protection that flight sites put in place.
Re: Noscript. I haven't tested with noscript, but have with most major adblockers. We do use the chrome extension API to open windows in the background to collect flight data and eventually to redirect you to for booking. I'll get it installed and see if I can replicate it. Might take a little bit, but I'll get there :)
Re: extension vs webpage. One of the biggest problems Hipmunk faced was that as the airline industry consolidated, they required OTA's and metasearch sites to sign highly restrictive agreements that prevented the site from showing all flights. We find this highly objectionable. By operating as an extension, we do not need to sign agreements to provide this data.
Not everyone lives equidistant to all airports. Heathrow and Gatwick are close to me; Luton, Stansted and City are not. I'd want to see options for both of the former. Loved HipMunk, so glad you are back (why was it killed off to begin with?), but don't understand why it's a browser extension.
Edit: seems you can only select one airport in any case, not a city. (But you knew that, right?)
It's also frustrating not being able to see the departure/arrival airports at a glance so that I can ignore the airports that are not close to me (given that you can't be selective about which airports to include). It shows connecting airports, so why not departure and arrival?
For Paris to Tenerife, for which there's (surprisingly) no direct flight, it's missing Easyjet via London. For options with one connection, some list the two airlines by name, others say "multiple airlines", when there are only two, so you have to invoke the tooltip to discover them.
I don't appear to be able to select a currency to display prices in.
It seems there's still some work to do on UI/UX, so the announcement here might have been a bit premature! Hope you have better luck with this than HipMunk, but for now it's not especially useful.
[0] https://en.wikipedia.org/wiki/City_of_London
Your point about at a glance determination of the departure/arrival airport is really good. I expect to have a UX enhancement for that next week. Currency and manually selecting multiple airports are still a fair ways off.
Also, what is the purpose of the subscription?
edit for typo
Re: privacy and data. You can certainly review the settings we request and our terms of service - we ask to run the extension on a number of travel sites we interact with. We only collect your search intent data, progress around searching, and other similar lifecycle events as your search to aid us in product development. That being said, our long term monetization strategy is to sell search intent data - not your personal or financial data, and definitely not showing ads.
>Signing up and Purchasing a Subscription. When you purchase a subscription to our Services, your credit card information, billing information, and any other financial information necessary to complete your purchase (“Payment Information”) is processed by our third-party payment processor, and we do not collect, store, or process your Payment Information. After you purchase a subscription to our Services, we will receive your email address from Stripe as confirmation of your subscription purchase. For more information, please see the “Payment Processing” section below.
>we automatically receive information about your interactions with them, such as the contents of your searches, the length of time you spend on a page, objects such as hyperlinks you click on, the airlines you prefer, and the dates and times of your visits.
>We and our third-party partners may collect information using cookies, pixel tags, or similar technologies. Our third-party partners, such as analytics and advertising partners, may use these technologies to collect information about your online activities over time and across different services.
>We may receive personal information about you from third parties such as the websites we send you to book your travel and combine it with other personal information we have about you.
>Vendors and Service Providers. We may share any personal information we receive with vendors and service providers retained in connection with the provision of our Services.
>We do not rent, sell, or share personal information about you with nonaffiliated companies for their direct marketing purposes unless we have your permission. *emphasis mine
>We may use analytics services such as Google Analytics and Sentry to collect and process certain analytics data. These services may also collect information about your use of other websites, apps, and online resources.
>We may transfer your personal information to service providers, advisors, potential transactional partners, or other third parties in connection with the consideration, negotiation, or completion of a corporate transaction in which we are acquired by or merged with another company or we sell, liquidate, or transfer all or a portion of our assets.
>We may also disclose your personal information with your permission.
>There is no accepted standard on how to respond to Do Not Track signals, and we do not respond to such signals.
While I recognize that most of this is standard practice among the data thieves, I thought it pertinent to call out your simplistic glossing over of your data thieving intent.
Hipmonk was a valuable service and one that I'd gladly pay for, but my data is worth way more than that.
BTW - You and I both know that if I specify "Do Not Track" then I don't want you to track anything about me.
1.) When a user reports an issue to us, it is much easier to find any issues in our error reporting stack. if we have their name and email address attached to the issue as opposed to asking them for all the search terms, time of issue, etc. and then hunting through to see if we've already found (and hopefully fixed) the issue. This practice started when we were a paid subscription, and I've found it useful to continue, especially with a very small team supporting a set of highly asynchronous interactions with scripts running across multiple websites and pushing data back to a common source.
2.) There are contractual requirements for some of the data that we've purchased to be protected from copies of those databases being made. Placing it behind an auth wall and leveraging account based rate limiting for API endpoints met our partners' needs.
Buyouts
etc
> Monetize without ads: As a browser extension, we can focus on monetizing free users by selling information about user's search intent.
source: https://wefunder.com/flightpenguin https://ucarecdn.com/965fe8bc-2ccd-4bd9-9984-465144810f57/-/...
Is this more like a crowd-sourced data gathering, where every extension user gathers data for you?
Of course, Java applets as an ecosystem died so we ended up with the server-side matrix design. It's nice to see the same (client-side) concept resurrected again 20+ years later.
I'm guessing I'm misunderstanding how flights are booked on planes. Does trip.com act as a wholesaler or something of that sort?
Various issues:
* Airport code matches should always rank higher than substring searches. I found a number of cases where it was 3rd or 4th.
* I'm onto your crypto mining operation ;) - the searches are pretty CPU intensive. Do you do any kind of threadpool sizing based on number of cores / existing load average?
* It'd be nice to display some kind of status in the main screen beyond just adding flights as they come in. "X of Y searches complete" etc
* Speaking of the CPU load, it'd be cool to stop it as soon as "Update Search" is hit, since the prior searches are now obsolete.
* Finally, if you can add a truly useful "I don't really care about the dates, just somewhere around here" mode, that'd be awesome. _You picked Sunday but that adds a minimum of 5 hours; you really should pick Wednesday. Also it should be a week before._
Re: codes: yup, that's a bug and will be fixed (or at least the obvious one will be...)
Re: performance - this is on our radar, and we'll keep chipping away at making things a little better as we go. We do have some limits based on system characteristics, but the primitives available to chrome extensions for system information are limited (praise WECG - there's a lot of bad that can be done with too much info).
Re: ballpark dates - This is on our radar, but is both a thorny interaction and below the priority of a few other things users commonly request. No firm commitments on dates as such... but yes, it's a useful tool when you know you want a "May" vacation, and you want a reasonably priced flight that is comfortable.
Maybe it's just a London/big city thing?
Can you explain the rational behind that behavior?