Building Pages in Groupon with Wolfhound

Jonathan Blood
Dec 14, 2020 · 7 min read
Image for post
Image for post

What is Wolfhound?

Wolfhound is a Content Management System (CMS) that provides a one-stop solution for Groupon employees to create, edit, and publish pages to the Groupon website. This service is managed by the Merchandising Experience & Intelligence team in the Dublin Groupon office. This CMS tool provides the ability to create a number of different type of pages in Groupon such as:

  • Landing pages have a fixed URL that can contain whatever content you choose (deals, text, video, etc). This type of page is usually used for creating landing pages for marketing campaigns.
  • Article pages are tailored towards editorial pages whose primary focus is on rich text and image content rather than simply displaying purchasable deals. Articles are intended to attract SEO traffic to the Groupon website because of their quality informational content which is designed to match what people look for when using search engines like Google.
  • Vertical Home Pages are article aggregation pages, intended to act as a homepage for articles of a specific vertical, such as Style & Beauty.
  • Coupon Blog Pages are blog pages created by the coupons team and sit under the /coupons/blog route.

Why Wolfhound?

Wolfhound was built so that marketing and editorial teams could quickly create and publish pages to the Groupon website across multiple domains without the need for engineers to be involved.

Local Pages

In this post, we are going to look specifically at local pages. “Local” pages are pages specific to SEO, which display listings of deals for cities, categories, or combinations of cities and categories. Examples of local pages for North America:

Image for post
Image for post
Editing a page vs published page

Supported Platforms

Wolfhound currently supports publishing pages to the following platforms:

Image for post
Image for post
Wolfhound powered page rendered out on different platforms

Supported Widgets

In Wolfhound a container is a structural element on a page that has the ability to render a content widget. The containers are created in a template. The user cannot add or remove containers from a page, but they can leave them empty and they will not be visible to end-users. In addition, a container can only contain at most one widget. A widget is the UI element that displays content on a web page. The below image shows how a user can add a widget to a page in the Wolfhound Editor:

Image for post
Image for post
Adding a widget to a page via Wolfhound Editor
  • Video widgets
  • Text widgets
  • Category widgets
  • Article widgets
  • and more
Image for post
Image for post
Wolfhound supports over 30+ widgets

Supporting Dynamic Pages

One of the most powerful aspects of Wolfhound is the ability to create page layouts and have the content of the pages be dynamic based on a number of different features or dimensions such as:

  • Dynamic Categories: This feature uses performance metrics and trends to override what categories of deals we may recommend in a particular location.
  • Scheduled Containers: The ability to swap out containers based on a schedule (date and time). For example, we could tailor a container (or multiple containers on a page) to react to the different stages of a day such as for a page related to restaurants we could change the page based on breakfast, lunch, and dinner times. Or even for special events such as Valentine’s Day.
  • User Location: Can use a user’s location to find deals nearby (as long as the user has opted to share location)
  • User Purchase Affinity: We can use the user’s purchase affinity to recommend tailored page layouts based on their affinity of (local, getaways, or goods).

Architecture

Groupon follows SOA (Service Oriented Architecture). In this approach, we have a concept of services and sub-services (services can consist of one or more sub-services). In the figure below we can see how Wolfhound is broken up into its different sub-services (in blue) and how it interacts with services which are managed by other teams in Groupon (yellow):

Image for post
Image for post

Publishing Pages

For advanced users, Wolfhound provides fine-grained controls to publish new page layouts across all URLs, a subset of URLs, or a specific URL. In Groupon, we have an internal service called Landing Pages API (LPAPI) which is the source of truth for determining if a local URL is valid or not. On top of this LPAPI also provides a mechanism for associating data with a URL or a rule (which matches a collection of URLs). As a result, Wolfhound integrates with LPAPI for:

  1. In addition to this, LPAPI also stores SEO metadata which can be used to override certain SEO-related content found on the page such as if a page is indexable or not.

Rendering Pages

When a Groupon customer visits a Wolfhound Powered page through the Groupon website or Mobile applications, the first thing that is done is a call to LPAPI is made to determine if this is a valid local page or not. If the page is valid then LPAPI will return a response which will contain some crucial fields for determining what page layout Wolfhound will use to render the page:

GET /lpapi/pages?id=https://www.groupon.com/local/chicago
{
"attributes":{
"whPageId":"26c7bd92-500d-4f53-8c48-b533dca7d862",
"whMobileId":"1cbfe373-7045-4e5d-8ddd-164dacbebefd",
"whNativeMobileId":"83a17dc9-5a74-41f6-a930-f2e11cf17a23",
"amp":true
}
}
GET /wh/pages?id=26c7bd92-500d-4f53-8c48-b533dca7d862
{
"created_author":"Jonathan Blood",
"name":"Chicago Restaurants",
"published":"PUBLISHED",
"templateId":"61738389-67cd-4571-979d-a3686070d6df",
"containers":{
"c8":{
"type":"article",
"fragmentId":"6936472f-c549-49e4-a453-4e8accca267b",
"params":{
"locale":"en_US",
"permalink":"best-chicago-pizza-crust-sauce-cheese-toppings",
"sub_directory_name":"article"
}
},
"c9":{
"type":"deal",
"fragmentId":"2a83153b-28a3-4597-bf59-c2083ba5e137",
"params":{
"category":{
"guid":"de167e83-e730-43c1-85d6-60a323825e9d",
"depth":3,
"name":"Pizza",
"chain":[
"food-and-drink",
"restaurants",
"pizza"
],
"uuidPath":[
"c09790ba-a6b9-40fc-ad81-4cdf25260b5e",
"f052f491-36c2-406f-a196-be2c59d281f4",
"5b99fc65-2d2f-48d8-ac26-c4b629c0a439"
]
},
"limit":5
}
}
}
}
Image for post
Image for post
This shows how the page data is stored and rendered in the Editor vs Published Page

Conclusion

That’s it… this is a high-level overview of the Wolfhound service in Groupon and how teams such as SEO and Merchandising teams create and build pages using this service.

Groupon Product and Engineering

All things technology from Groupon staff

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store