Surfline/ Wavetrak, Inc. specializes in providing live and predicted ocean weather information, editorial content, and consulting services to consumers, businesses, and government agencies worldwide.
Headquartered in Huntington Beach, California, the Company is focused on enabling its customers to pursue peak surfing, marine, and fishing experiences through the Surfline.com, Buoyweather.com, and Fishtrack.com brands on web and mobile platforms.
Since 1985, Surfline.com ("Surfline") has built the largest coastal streaming HD-cam network. It has also merged premier surf forecasts and editorial talent with industry-leading technology to produce high quality content. This content is primarily aimed at active surfers; however, other ocean sport enthusiasts, such as stand-up paddle boarders, windsurfers, bodysurfers, bodyboarders, and kitesurfers use Surfline.
We recently asked Brian Mezger, VP of Technology at Surfline about the company and about the development of their photo-viewing app.
What does your app do?
Surfline recently launched a robust photo-viewing app that highlights professional surf photographers and local surf breaks. The app we've built on Apigee allows Surfline users to follow photographers and view photo categories for favorite surf breaks. In addition, we've created activity streams for users who what to see the time-sensitive content that matters most to them. These activity streams consist of all the recent activity for the professional photographers, breaks, and other categories that users follow.
What were some of the typical development challenges that you faced and how did you overcome them?
The biggest challenge we faced was determining the best platform to build our Follow and Activity Stream functionality – the main decision being roll-our-own or build on a service.
We relied heavily on Apigee's built-in features to provide a solid platform for Surfline and give us the tools necessary to rapidly develop and deploy these services. For example, to follow professional photographers, we used Apigee's User-to-User following service, while we used the Groups feature to follow local surf breaks or categories.
The Groups feature matches our surf spot locations and categories, so users who follow these locations or categories can just join a matching group. Then, when we gather a user's activity feed, we combine all the information as a collection for display in the user’s activity feed.
The way we setup our groups to fit within the RESTful API model is by using two top-level groups (“cat” for category and “loc” for location), and specific category and location sub group IDs under those representing the items being followed.
Which technical, business, or organizational challenges or lessons did you learn when building your apps?
Many of the challenges we faced were centered on business rules for our Follow and Activity Stream functionality: such as, who or what users follow and how recent activity is displayed in streams.
Another unique challenge was providing timely activities for our users. We found that caching local data frequently was the way to go. Constructing code, so that changes to the activity or follow data posted to Apigee in a separate thread, also allowed a more immediate feedback mechanism for our users.
We use AJAX for our follow and activity loading. The ultimate goal was to find a way to save our users data locally and pull updated data from Apigee with little or no wait time. With help from Apigee’s engineering staff, we’ve accomplished that.
What’s next for Surfline?
This is our first Follow and Activity stream project, and it is still very early in the iteration process. Our future plans are to expand this functionality across other areas of Surfline since it provides tremendous user engagement value. There are a number of products/ features on Surfline that we’ll compliment with the ability to follow and we look forward to working with Apigee as we continue to evolve this functionality.