Building a bespoke seating assignment feature

Tools: Jira, Bitbucket, Git

Though I spent most of my time at FareHarbor in technical writing and product communications roles, I also spent two years as a Product Owner, working closely with designers and engineers to build some of FareHarbor's most impactful features. In this role I got to hone my UX writing skills further, distilling complex concepts into simple user interfaces and clear, friendly UI copy.


One such feature was an in-house seating assignment solution that would be used for all kinds of bookable events and spaces (think luaus, scenic railroad tours, comedy venues, dinner cruises, etc.). Activity and event operators could build their own seating chart from scratch, either letting FareHarbor's algorithm assign seats automatically, or manage seat assignments as bookings came in. The solution also included a user-friendly seat selection interface, which was used by customers booking their activity online.

Throughout, concise and adaptable copy were key.

For example, in the view below, Choose your seat was too specific of an instruction: the bookable space might actually be a table, or a vehicle, or an axe-throwing lane! Allowing users to instead Choose from map or Choose from list gave tour and activity operators the flexibility to use their seating chart to best represent their own unique business, a theme we used throughout the end consumer-facing design.

(The seat selection prefix in the flyout was also customizable. In this example, it's Seat:. For another activity operator, it may be Row: or Selection: or something else.)

Here, copy was intentionally sparse so that activity and event operators could add specific instructions or context in their visual maps.


What the end customer saw was controlled by a wide range of settings behind the scenes. Depending on the type of activity they were booking, it may be more logical to show pricing options before letting them choose from the map. Or, in the case of a theater or venue, customers almost always expect to see a map first, which will help them decide which seats to choose.

Going even further into advanced settings, users could map certain pricing options to specific parts (or zones) on their map, using FareHarbor's pre-existing resource requirement interface. Using a hierarchy of information and text, users could see at a glance how their mappings were set up:

Another key consideration was localization. As the owner of FareHarbor's localization efforts, I ensured seat selection interfaces were visual-based and intuitive, instead of relying on wordy instructions.

Years ago, as a budding technical writer, I mistakenly thought that more words = better. Thanks to projects like this, I came to realize that copy is just one element of the user experience, and often more effective when playing a supporting role instead of trying to steal the show.

This project featured a wide range of UX writing, from concise and friendly consumer copy to detailed and precise in-line documentation. In addition to managing copywriting and documentation, I'm proud to have led the design and engineering team that took this powerful feature from ideation to completion.

Seating assignment documentation