The worst design trend of 2018: Stacked, label-less navigation

App designers are always trying to stay on-trend. The problem is that sometimes these trends tend to take design backwards from a usability perspective.

The last horrible design trend (2013)

A few years back when Apple decided to change iOS icons from filled in to outlined (in iOS 7), many believed this to be a step in the wrong direction, as outlined icons increase cognitive load.

The image and quote below are from Aubrey Johnson's analysis of the change:

Take a look at the example above. The red lines indicate areas where cognitive load is occurring. Your brain traces the shapes on the first row an average of twice as much. Your eye scans the outside shape and then scans the inner line to determine if there is value in the “hollow” section.

Forcing users to spend more time to decipher an icon is never a good thing, and unfortunately, many designers have followed this trend "because Apple did it", which is a horrible justification.

The latest horrible design trend

A free UX review for Postmates

The vast majority of the hip, cool Silicon Valley-based startups have products that work decently well.

The one outlier in this category is Postmates. I have no idea what they're doing over there, but every time I try to use it - between errors, poor UX decisions and outright bugs - the whole experience is a disaster. And this is from a company that has raised over $326 million!

So in an effort to improve the internet and not just complain, here's a free UX review for Postmates:


  • When I'm logged in and already have saved addresses in my account, make it easy for me to select an address instead of forcing me to type it again.
  • Use Gravatar so my image shows up without me having to upload one.


After entering my location, I searched for "pizza". It showed me 2 open locations. But an in-page search for "pizza" on the results page shows plenty of other places that didn't show up in search results. Why?

Logo Destination

After I couldn't find what I was looking for in search results, I clicked the logo to return to the results. Nope! Takes me back to the original homepage where I have to re-enter my address. It should just go to the previous results page now that you know my location!

Credit Card Nicknames?

If I don't enter a credit card nickname, how about we not label it "nickname"?

Kill login email alerts

Why do I need to get an email alert after I login, especially if I've already ordered from the same location before? Save login email alerts for banking and important transactions, not for logging into my Postmates account.

Just let me order!

After hitting the Order button, why is there ever a case when you won't just place my order and take my money? (Also, no email ever comes through. I literally had to create another account to place an order.) If there's an issue with my account, it should be explained loud and clear on every page to set my expectations, not once I try to place an order.

Charge me the right amount, or make it clear you're placing an arbitrary hold

In my opinion, it isn't obvious enough to the user where you explain you're placing a hold. This should be on the page, not in a hidden tooltip that I'm required to interact with. Also, the notion you're not just charging me the exact amount, and instead have to have an "estimated total", is just really strange.

Make sure links on error pages work

I think I've managed to see every single error page that Postmates has. But this one in particular is really frustrating, because as many times as you click the "Go to the Homepage" button, it's never going to work because it links to which consistently serves up this error, as opposed to going to (the actual homepage), which I believe is the desired destination. (Looks like it could be a cookie issue now.) But this begs the question, why is the homepage not part of the app? That maybe explains why it doesn't populate my previous addresses, account avatar, or anything else it knows about me.

Another fun error I managed to get in the 3 times I've tried using Postmates

Clicking an address in my account...

Huh? lol

Dropdowns need icons

If you're like me, you'll go to click on this. Except a pane opens on hover. But because I'm going to click, I inadvertently close the pane that just opened because there's no indication that this pane is going to do anything on its own. Doh!

Don't force me to download your app to see my order status

Let me access my order info on a mobile webpage, don't force an app download on me! (They actually do, but if you click the link in the email, you get prompted to download the app, instead of an on-page message bar while viewing the mobile site.)

Bug: Incorrect delivery estimation

It lists the order time as the delivery time. I ordered at 4:08.

Order total doesn't match checkout process

My "estimated total" was $16.29. But the site, post-order, says $13.13. Is this why the prices are "estimated" - because they'll appear different on every page?

Different price for the same order? Huh?

These orders were placed within a week of each other. Yet somehow, they're different prices. (And I find it pretty hard to believe the price would have changed within that time frame.)

Wrong timezone?

App shows the order was delivered at 8:08, 4 hours off from the order time, not delivery time. -_-

Email receipt delayed 2 days?

I'm sure they'll call this intentional, because they have to resolve the hold and charge the correct amount, but sending a receipt 2 days later is still kinda laughable. But it's very jarring to wake up to this 2 days later and wonder if you accidentally ordered another pizza that's waiting outside your door for you once you crawl out of bed.

Cancelled transaction for suspected fraud

This screenshot was from the first time I tried to order from Postmates. We were hanging out with friends, waiting for our food, until the estimated delivery time had passed. Checking my email, this is what I found. So I re-placed the order through Eat24 and planned to go pick that one up. Turns out, despite Postmates cancelling the order, they failed to inform the merchant who had the food ready for us, so there was an entire meal wasted becaue I had placed a second order and Postmates didn't bother to contact the merchant nor me until well after the estimated delivery time.


This is the summary of my 3 experiences with Postmates. Mind you, this wasn't even me going out of my way to find bugs. These simply came up in my own personal attempts to order. And I'm only one person; imagine what else the rest of the world sees!

Love the concept, but come on, guys. This is embarrassing.

An incredible customer experience

I spend a lot of time ranting about businesses that treat customers poorly. I have a rule on Yelp that I have to post more positive reviews than negative, and while this isn't Yelp, I figured it was time to highlight someone doing something right.

So I was in Jersey City, NJ - just across the water from Manhattan, with the French Bulldog in tow. Since I didn't exactly want to leave her for more than a few hours, I looked up doggy daycares in the area. Turns out, there was a highly-rated place not too far from where I was staying, so I took her in to check the place out. (It's rare you see a place with 5 stars on Yelp, but this is one of the few.)

This place was incredible. Plush couches, a fireplace, TV, and carpet. In addition, there's a glass pane going from the lobby to the dog area, and glass from the street into the lobby, meaning you can walk by anytime - unannounced - to see how your pup is doing.

The owner, James, has a very low ratio of staff to pups (around 1:5), whereas other places will have 10x that. He records the times when the kids relieve themselves. He factors in specific feeding instructions for each dog. He has a maximum size of dogs he'll allow, to ensure safety for the rest of them. He knows the ins and outs of specific breeds and how to care for them. He'll even walk them home at the end of the day if you need him to! In addition, he got some great video footage of my Frenchie playing with the other pups.

Try getting any of this at any other doggy daycares.

My Frenchie came home at the end of the night completely wiped from playing with the other kids all day.

I think what I appreciated most about James, is that he treated my dog the way I treat her. You won't get that most places.

But it doesn't stop there. Last night when I brought her home, I left in a rush, but James emailed me after I had already left, to let me know the last time she "did her business". Talk about going above and beyond.

There's something to be said for businesses, started by individuals who love what they do, and are still an integral part of it. I wish there were more James' in the world. How James runs his business is how I try to run FolioHD. Go the extra mile. Do the right thing. Treat people how you would want to be treated. It's a lost art these days. But there are still the gems in the world.

So next time you're traveling through NYC - or near Jersey City - with your pup, swing by Executive Dog Lounge. Because that's where pups are spoiled just as much as you do at home.

How Silicon Valley's elitist mindset affects product design

TL;DR: Did you know you can't plug a Pixel phone into a TV to mirror your screen? Google purposely left this feature out because they want you to buy a Chromecast.

Silicon Valley decides how we use technology. Since they make the products we all use, they have the ultimate say about how we will use our devices. Overall, we benefit from the decisions they make for us - in how we are forced to embrace technological advances that they deem necessary.

Adobe Flash is a great example of something that Apple and Google collectively decided to force out of the market, due to security concerns, battery life issues, and more (if not also for competitive reasons). While I don't know anyone who firmly believes Flash should still be around, it's a marquee example of how Silicon Valley businesses altered how we use technology because they decided it was in our best interest.

But where is the line between what's "good" for us, and what they say is good for us?

In my experience in Silicon Valley, I've worked with several product managers who hold very "elitist views" about how products should be made. Instead of focusing on how the user will use a product today, they tend to architect how they feel it should be used in a decade. The problem with this is that in the short term, you end up with a handicapped product, and the products of today are generally gone (or greatly evolved or rebuilt) in even a couple years from now.

It makes sense that we design for the future, but if we are building so far into the future that a product can't be fully appreciated today, it greatly hampers our ability to fully benefit from this technology.

Apple is a prominent example of this. You must fully buy in to their ecosystem - how they think you should use their products and services - in order for everything to work. If you take even one segment out of their ecosystem, you risk losing data (iCloud backup vs. other syncing services), not being able to play music on certain devices (DRM), or not being able to message certain people (iMessages).

But the reason I decided to write this post is because of how Google decided to build screen mirroring on the Pixel, their flagship Android phone.

You know how with most phones, you can simply plug a cable from a phone into a TV and you can instantly see the screen on your TV? Yeah, Google decided not to support this standardized feature. In fact, it's supported on many of their other devices in the same line, but not the Pixel phone. In order to get content on a TV screen from your Pixel phone, you must use a Chromecast device.

In a perfect world, this makes sense. Everybody should own a Chromecast, and with that setup, you can wirelessly put your content on a screen. Great.

Unfortunately, we don't live in a perfect world.

  • Not everyone has a Chromecast. (Yes, I understand they want you to buy one because they've decided this is the ultimate way to enjoy content.)
  • Not everyone has wifi to stream said content. (What about at Grandma's house when you want to show a slideshow on her TV? Trying to play a movie on an outdoor projector when you're camping?)
  • What about presenting at a client's office? Gotta pull out the ol' laptop.

In my current scenario, I live in an RV. I have a wireless router for this very reason, but sometimes RV parks have complicated network setups that don't allow me to directly connect my router. So in my case, I have multiple Chromecasts. I have unlimited data on my Pixel. I have everything Google wants me to have. I even have a third-party USB-C to HDMI cable that should be the solution for getting my content on my TV. But because Google won't support a feature that's been around in nearly every other phone built in the past decade, I'm stuck resorting to plugging in a backup iPhone and carrying a second plan for that phone.

Silicon Valley lives in a bubble. In the Bay Area, everything is connected. Unless Googlers go camping (in which case they don't intend to use technology), they are always connected. And when you have a solid internet connection, everything works perfectly. The problem is that they tend to build products for themselves, instead of the entire world outside Silicon Valley. The world outside of Silicon Valley is far from perfect.

In a decade, all of the connectivity problems of today will likely mostly be solved, and this will be a non-issue because they tried to solve it today. But we'll introduce new problems just like these in the future, and there will be growing pains as a result.

Sometimes I just wished the product managers in Silicon Valley would bring it down a notch and solve problems for real people, outside of the bubble, today, instead of dictating how we should use products just because they think it's the right way to go. In reality, they don't care about the edge cases. They care about solving the problems that they've deemed worthy. They're solving for what happens when you're at home, on your couch, on a Google phone with a Chromecast and Google Fiber in your house. The problem is, there's an entire world outside their bubble.

Redesigns: Stripe UI 👍🏼, Stripe UX 👎🏼

When companies produce redesigns, the intention is usually to make things easier to use, make features more discoverable, and often to provide a visual refresh. As we all know, people don’t like change, so usually their is some level of revolt. This revolt usually subsides over the course of weeks or months and everyone moves on. But not always...

Stripe recently released an update of their dashboard. Initially I didn’t like it, but I decided to give it some time before passing judgment. It’s now been 2 months, and I still believe this is a huge step backwards in terms of usability. Stripe has managed to add additional steps to many steps of my typical workflow. Here are a few examples:

The old dashboard had 3 charts visible at all times: Volume, Charges and Customers Created. It was great to be able to quickly glance at all 3 metrics. 

Let’s break this down:
  • Two of the three main charts have now been buried behind tabs. You now have to actually put effort into viewing the data that used to always be available.
  • The line charts are much harder to parse visually.
  • Stripe added a new row along the bottom (Transfers, Disputes, Radar). Previously, when there was a dispute, it would show an additional box at the bottom. This was great because it was a very obvious call-out that action needed to be taken. In the new design, the Disputes box is always there, even if there are no disputes. Unfortunately, I have completely missed seeing open disputes because the box always appears, and I start to ignore it. I end up not seeing the “0” number changing to something else. Put simply, the visual cue isn’t distinct enough from when that box doesn’t require any action.
  • The Radar section is new, and completely useless to me since it isn’t a feature I use. Of course, it could be an upsell, but if a business doesn’t have a need for Radar, there’s really no reason for it to display there.
In summary, it seems like this new dashboard was designed by someone with a great eye for visual design, but didn’t think through the actual use cases of people like me. (Of course, there’s always the chance I’m in the minority.) But adding additional boxes along the bottom, just to even out the UI, is “pretty”, but completely useless otherwise.

Adding a Subscription
Creating a new subscription (with a trial) used to be a one-step process. It has now turned into a multi-page process that requires me to use Google when manually creating a subscription. First, a screenshot, then I’ll explain. (Pay close attention to the Trial end feature.)

Usually subscriptions are automatically created via the Stripe API, but from time to time, I have to create or modify subscriptions manually. For my case, it usually involves a one-time charge, then creating a subscription starting months from the current date.

In the old UI, clicking in the Trial end box would display a date picker, and you could easily choose the date you wanted.

In the new UI, aside from creating a simple modal into a 4-step process, the Trial period input is now a numerical input. That means you can no longer simply select a date from a calendar. So when I want to choose a date, I now have to go to Google, type “how many days until X, 2017”, and then enter the value.

Now, I can hypothesize some use cases where a numerical entry might be handy. But I can almost guarantee the decision to change the input type was done without due research on how people were actually using the input.

I could go on with more examples of how things have become harder to use, but I’ll save them.

The challenging thing about being a designer is that you are often not the target audience of the product that you’re designing. And without having the inherent understanding of a product - because you don’t use it in a real-world scenario, yourself - you tend to design differently.

It seems as if the people behind the Stripe redesign put form over function.