I'm A Product Guy.

Good, bad, great, all products can be better.

If you’re like me, you slightly obsess over every product you come across and are either impressed and inspired by an amazing experience or deeply disappointed by a total miss.  I can’t keep this ecstasy or misery to myself so there’s usually some rant which follows.

Windsurf, Feeling The Vibe?

Is Windsurf ready for a 100 million coders?

Or do they need a lower tide to get more Vibe Coding users into the water? With 28.7 million engineers worldwide and 45 million projected by 2030 how will Windsurf bridge the gap to reach 100 million? Without a 3x surge in coders, Windsurf needs a user experience that’s consumer-grade and ready for the coding uninitiated. Otherwise, they’ll either have a limited total available market of users, coders, for creating useful software. Or limited usefulness - think vitamin vs painkiller - and never get past toy apps and low level functions. So is Windsurf consumer-grade and ready for the great majority or is it still a beloved tool of the early adopters? And why is Windsurf a $3 Billion acquisition target of OpenAI? Let’s dig in!  

But first, what the heck is Vibe Coding anyway? Vibe Coding is a term that’s like 10 weeks old and refers to a new approach to building software applications where AI agents, primarily large language models (LLMs), are used to generate code based on natural language instructions. It’s like having an AI software engineer buddy to help you plan and implement your projects. However, Vibe Coding doesn’t mean you never have to touch the code, instead you guide your AI engineer by reviewing its output and iterating - and in my experience there’s a lot of iterating. For Vibe Coding, I recommend a warm cup of calming tea.  🫖 ☕️  

Some of the most popular Vibe Coding platforms are Cursor, Github Copilot, Replit, and Windsurf, which I used for my pet project - more on that to come. Stay with me here. The specifics of each vary but think of them as an extension of a source code editor - which is just an efficiency tool that developers use to write, edit, and manage their code. But instead these platforms plug in foundational LLMs like ChatGPT/Claud/Gemini (AI “brains”) to go way beyond helping engineers fix their code. It’s as if the AI agent said “dude, enough with these corrections already.. just move over, I’ll write this code for you!”

MY TEST APP

Before we get into my first experience with Windsurf, a slight detour to explain what I’m building. Before Pokemon Go and even Google Ingress, I had an idea to turn Google Maps into a video game board. As a co-founder, I even pitched it (named Xumfly) to someone at Google over lunch at their MTV campus, but never got anywhere. I wonder if that idea ever took off? Spoiler alert! It’s a $3.5 billion idea. So when staring at the blank Windsurf prompt only one thing came to mind… Xumfly 2.0! 

The concept: Xumfly is a geolocation based trivia game for players to explore a city while honing their local knowledge. The goal is to become the leader based on completion time and points. Building this should be a piece of cake! 🍰

Here’s how it started, for my review I was taking on the role of someone who has never shipped production code. I selected Claude 3.7 Sonnet (Thinking) and typed a simple prompt:

“Please build a geolocation mobile trivia game using Google Maps. The game is played on the San Francisco, CA city map. Use map pins to identify points of interest.”

My Windsurf AI engineer started off strong, replying back with a clean plan that included game concept & mechanics, technical architecture, key features, and a clear multi-phase implementation plan. Alright let’s go! Windsurf started generating code, shared its thought process, and asked me for my approval to proceed - as if I had any idea what it was doing, sure let’s roll!

And then “we” repeated this about ten more times: spool out code, share thought process, ask for my approval. Until it just stopped…crickets. I let it have a moment while I had dinner, returned, and still nothing. I asked for a status update and this is when it started to go off the rails. TLDR, it replied back that I needed to install a bunch of software: Xcode, Node JS, NPM, React, Expo, and then Expo Go - enough already this is too much detail - anyway I signed up for these services just trusting my AI engineer knew what it was doing. I mindlessly followed the instructions and nothing was working and my AI engineer was getting tied around its axle so I hit the “reset button” starting over with a much simpler version of my game and web only. Guess what? It worked!, woohoo! Vibe coding lesson one, start simple and if you can start with a web app.

Here’s how it’s going, admittedly my game is still a proof of concept (POC) - one city, limited points of interest, and no geolocation - OK it’s kinda lame, but it’s a start. And some things are off, like there are collectables which are tokens awarded for completing each level, but no place to store them.

My POC version demonstrates the basic gameplay mechanics of the original Xumfly concept while being immediately playable - albeit super basic.

THE GOOD 

While my experience playing the role of a code newbie wasn’t exactly flawless, there’s a lot to get excited about! For one, it didn’t take long to feel comfortable vibing with my Windsurf AI engineer. I was engaged and enjoyed the polite conversation, it was useful and instructive. For reference, in 2008, the first working prototype of Xumly cost my partner and I $20,000, so I’m already seeing value. Here’s my top 5 good vibes. 

  1. It Just Works, I’ve not written real from scratch code in years and on my first attempt - building an arguably complex test subject - it worked! I made something.

  2. Contextually Aware, with a simple prompt and nothing more, Windsurf crafted a solid plan and thought through a rich set of game mechanics and features - from the start. And through our conversation honed this understanding to where it could make meaningful recommendations on features and functionality. It felt absurdly close to conversations I’ve had with engineers over the years.    

  3. Clear Communication, my Windsurf AI engineer clearly explained every step of the planning, building, and testing process. And did so before, during, and after each step. It went as far to give status updates and ask if I wanted more detailed explanations. 

  4. It’s Fast, I mean, it’s super fast. Each response was nearly instant and each iteration of code generation took seconds. The thing it did was not always optimal, but it did the thing quickly.  

  5. Polite Patience, my Windsurf AI engineer was always polite and positive. It never got frustrated from all of my questions and when I asked it to scrap the code it had been working on for a few sessions and start again, it replied “great idea!” Not only was it not frustrated, but it gave off an energized vibe and even when things were going sideways, its calm positivity was contagious - a true delight.

THE BOTTOM LINE

For someone with coding experience, self taught or a basic CS course, Windsurf is a supercharger! And it’s easy to see how these tools are making software engineers 30% better. However, that’s not what we were doing here. Recall, there are 30 million coders and I was taking the other side of the path to 100 million, evaluating Windsurf as the role of a newbie.

Spoiler alert, it's not ready for the newbs to build more than toy apps or low level functions. I would also argue that if someone does build a complex app with the current product they’re doing so by taking time to have the AI agent teach them some coding basics. If a person spends hours iterating and being taught how to edit code and update tools by an AI agent, are they still a newbie?

The good news, many of these shortcomings are at the user experience level of the product and can be addressed with feature updates. I feel a Product PepTalk coming on, so next time we’ll be digging into some opportunities for improvement and what’s ahead for Vibe Coding and platforms that enable it. Until then, sign up for a Windsurf account and and feel the vibes for yourself, there’s no better way to learn than by doing!

Uber City Pass, July Update

Uber CityPass, July Update

July 5, 2017

Last time we took a deeper dive in at an Uber CityPass concept for travelers, based on extending the trial program: Uber Ride Pass.

I was just offered the Uber Ride Pass for SF and thought I’d share more details; in case Ride Pass is not available in your city <OR> the offer has not yet been bestowed upon you by the Ubes.

Loyalty

When mobile ordering apps take their foot of the pedal with loyalty - offers and rewards - the mobile commerce engine comes to a grinding halt.  Uber is no different, but rather than discount offers, they run their entire business at a loss - funding growth through an all out market-grab with a discounted service (there’s a good Bloomberg article with more details).  Loyalty does have a price.

So essentially, Uber is one big loyalty program and Ride Pass is an even deeper discount over standard UberX and UberPool services.  The Ride Pass goes beyond CAC (customer acquisition cost) and is a cost to keep customers by making their products habit-forming, a “Customer Habitual Cost” if you will.

Update Pricing

Ride Pass pricing, at least for SF, was updated since the last time we visited this the FEB-2017 pricing for 20-ride option:

  • was: $10 fee to unlock $2.49 UberPool & $4.99 UberX lasting 30 days

  • now: $8 fee to unlock $3.49 UberPool & $6.99 UberX lasting 28 days

The est. per ride price went up for UberPool from $2.99 to $3.89 and for UberX from $6.99 to $9.49, when I spoke to them this April they mentioned they’re still tweaking the numbers, so perhaps this update is closer to their desired “Customer Habitual Cost” for making Uber part of the daily routine.   

Uber Ride Pass, Update JUL-2017    

 

Oh and BTW, I snapped up the “Unlimited” option and am planning to use Uber for my commute to/from SF’s FiDi district, see you in a Pool!  

Uber City Pass

Last time we took a deeper look at how Uber should partner to better address the needs of travelers.  

Here we’ll dig into one specific initiative: the CityPass concept, a book of fixed rides within a designated city border, geofence.

For my sake, I hope they’re listening (you too Lyft!) and my last rental car shuttle to the airport netherworld, was my last.     

Problem & Background

While Uber grows in popularity, in travel there are some hurdles to faster adoption.  With rental cars booked in advance, Uber is out of the running before travelers board their plane.  For some airports the taxi line at baggage claim and force of habit, has Uber out of sight and out of mind.   

Rental Car Bundles Shut Out Uber, for most leisure travelers rental cars (along with hotel parking, insurance, fuel, potentially tickets) are a necessary evil.  For many OTA customers, the rental car decision is made months in advance of arrival to their travel destination; completely shutting out Uber as a ground transportation alternative.    

Taxis Win At The Airport, despite great strides by Uber with airport pickup regulations it’s still an arena where taxis win big.  At the “point of sweat” when they land, most travelers would rather walk to the taxi line, in plain sight, than fire up the Uber app and wait for a driver to navigate the airport traffic lanes for a pickup.     

Hotels Account For Most of OTAs Revenue, this is a volume business and margins are shrinking.  OTAs make next to nothing on airline ticket bookings (and some even have to pay to display them).  The cost to display flights are a loss leader to capture Hotel bookings, alone or as bundles, where Expedia earns a booking fee and 25% commission - this accounts for 70% of revenue. All other travel services are included to ensure they’re the one-stop shop for all travel needs.  

OTAs Earn Little From Rental Cars,  some charge just a booking fee and others like Priceline charge 9% commission. For a $300 weekly rental, the OTA makes $27.              

Solution

City Pass is stored as Flat Fare rides (Seattle)

City Pass is stored as Flat Fare rides (Seattle)

Ahead of the business rationale is the Must-Have User experience, the genesis of that Magical Moment which will grab new users and hold existing users; which makes Uber that addictive part of their life that they just can’t live without.

Persona

Michael is 32 and flies 5 times a year for leisure.  He takes taxis to and from his home airport and usually does the same for his destination airport.  For some trips where he’s exploring, he rents a car, but apart from a few day trips it usually sits in the hotel parking lot for $50/day.   When he arrives to his destination airport, he turns off airplane mode, grabs his bag and then starts reading signs to find “ground transportation.”  Once he’s out of the terminal, he hops in the taxi line since it’s in plain sight.   

Magical Moments

When Michael books a trip to Paris on expedia.com, he notices an Uber “City Pass” book of 10 Uber flat fee rides in the checkout flow, just above the rental cars.  He thinks about the cost and hassle of renting a car, parking, and driving in an unfamiliar city and relief washes over him as he clicks the buy button for his Uber 10-pack and even schedules roundtrips to Charles de Gaulle Airport.  Flights, hotel, and now ground transportation, they’re all locked in and he booked ahead and saved.

When Michael lands in Charles de Gaulle Airport, he turns off airplane mode, grabs his bags, clears customs and receives a rich notification from Uber that his driver is nearby.  Michael selects force touch on his iPhone 7 and it opens the Uber app to the map so he can find his ride; moments later he’s in his Uber and on the way to his hotel.  As they pass the long taxi line of exhausted tourist, he thinks “love Uber!”    

User Benefits

First offer discounts to change behavior and change the mindset that for trips to major cities it makes more sense to use Uber CityPass over car rentals.  Then continue to use offers, although less rich, to make Uber/Lyft the new norm for city travel.   

  • lower cost than car rental: no parking fees, fuel cost, potential tickets  

  • remove uncertainty of taxi prices (and Uber prices)

  • less hassle than car rental: accidents, driving stress

Pricing, Packaging, and Launch

The CityPass pricing and packaging is similar to the Uber Flat Fares, which were tested this year in select cities.  The launch will take place in the same cities: Chicago, Los Angeles, Miami, New York, Boston, San Francisco, Seattle, San Diego, Washington D.C., with the addition of London and Paris.  Again this is an extension of the Flat Fee test, and price adjustments will be considered after availability of more data.  When compared to rental cars and hotel parking, there’s plenty of room to increase price.

Example City, San Francisco

  • 5 pack: $5 fee to unlock $8 flat fares = $5 + $40 = $45 ($9/ride)

  • 10 pack: $10 fee to unlock $7 fat fares = $10 + $70 = $80 ($8/ride)

  • 20 pack: $20 fee to unlock $6 fat fares = $20 + $120 = $140 ($7/ride)

Terms and Conditions Apply

  • Each CityPass ride is only valid for rides totaling $30 or less, and limits may be lower in some cities. If the ride costs more than the allotted amount, riders are responsible for paying the flat fare plus whatever amount which exceeded the maximum

  • Uber CityPass is valid in participating cities, during the trip duration.  If the trip duration exceeds 30 days, the Uber CityPass is valid for the first 30 days of the trip.   Any time during the trip, additional CityPass packs can be purchased but the same initial duration applies.

Additional CityPass Purchases  

If travelers use up their rides while on a trip, we’ll offer an extension to their Uber CityPass.  The important point here is that we’re changing behavior and proving that they can get around a city without a rental car; that Uber is a safer, less stressful, less expensive option to renting a car while traveling.   Uber does not pay Expedia a commission for these additional CityPass options since the transaction occurs through the Uber app.   

Expedia Partnership

In return for listing Uber CityPass flat fares in the checkout flow, above rental cars, Expedia receives the following terms:

  • Six month exclusive for Uber CityPass, no other OTA, Airline, Hotel, including AirBnB.  Why?  partnership goodwill, sometimes there are no direct metrics for a decision and there’s some work on the part of Expedia, in my experience an exclusive period smooths out potential bumps in the road to a happy partner.

  • 10% commission on Uber CityPass packages booked through Expedia - same as rental cars (again, this is marginal revenue for Expedia).

Decisions Which Require Further Analysis

  • Pricing adjustments.  Additional data includes a comparison of flat fares to what would have been the unbounded ride fares for these rides.  For example compare the 10 pack rate ($8/ride) to what these rides would have been as normal UberX rides.  Use this to adjust future pricing.

  • Analyze Expedia data and survey their customers to understand more about rental car and travel patterns.  For example, how many Expedia travelers select rental prior to arrival?

  • What’s the price sensitivity and what’s the best pricing across customer segments.

  • Which cohorts and user segments make sense for this initiative?  For example, we’ll start by not targeting the bargain traveler who books compact cars and stays outside of the city.  

Bottom Line

Rideshare companies like Uber and Lyft are addictive, habit forming forces that are changing our cities, how we think about car ownership, and moving from A to B.   But there’s still one major blindspot with travel use cases.  Uber and Lyft are losing at the airport and OTA partnerships offer a great way to change consumer behavior, to grow riders and rides from airports and in destination cities.  Be it through referral bonuses, coupons, ads and other promotions, there’s a cost to changing consumer behavior and a City Pass concept of flat fares for travelers is a great way to offer riders inexpensive, low risk alternatives to car rentals, parking, and local cabs.  Hopefully, the airport car rental shuttle, hotel parking valet lines, and shady local cabs will no longer be the travel norm.