Mugo Web main content.

The 49th Shelf

The 49th Shelf hosts about 100,000 books, and data about their contributors and publishers, as well as rich metadata like cover images, reviews, target audience, etc.

The 49th Shelf has several objectives. Primarily, the site attempts to list every in-print Canadian title; to facilitate it's discovery and to support consumer's ability to decide to buy a title (in print or ebook formats). As well, The 49th Shelf serves as a concrete use for ONIX bibliographic meta data (see and thus aids the Canadian publishing supply chain to advance its use of good metadata.

Currently the site houses data for some 56,000 titles from 26,000 contributors and 100s of 1000s of supporting content pieces. The site is in constant development, rolling out new features and incrementally improving on a monthly basis.

The 49th Shelf aims to provide access to every Canadian book; to provide a platform for discovering, learning about, discussing and promoting, buying, and finding books. Currently the site hosts about 50,000 books, and information about their contributors and publishers, as well as lots of rich metadata like cover images, reviews, target audience and so on.

"We have worked closely with Mugo Web for more than three years now to conceptualize, build, operate, and expand 49th Shelf, a very ambitious web platform for Canadian books.
"From our earliest discussions it was clear that we would not have a typical client-vendor relationship with Mugo. They distinguished themselves right away not only as a team with considerable development expertise but also as partners in our project. They helped us develop our ideas for a unique web property for Canadian books, and to resolve some of the significant challenges we would face in importing and handling the large volumes of data that the project required.
"Mugo has consistently delivered beyond our already-high expectations for the project. More to the point, the Mugo team has always added considerable value in improving not only the back-end systems and server-side performance for the site but also in strengthening the user experience and usability for what has become a fairly complex site with hundreds of thousands of content objects and an expanding range of user groups.
"When we began this project, it was anything but clear that it could be successfully executed. Today, 49th Shelf presents the largest, public-facing collection of Canadian books ever assembled and traffic has scaled sharply over our just-concluded first full year of operations. The site has been widely praised by industry stakeholders and readers alike as an important new community hub and resource, and the development of the platform has resulted in some valuable new IP that has broader application in the promotion of books online and the enabling of reader communities in Canada and elsewhere.
"Mugo has played a key part in all of this and needless to say we recommend them highly as an expert team with a remarkably strong commitment to building great projects that work."
- Craig Riggs, Project Lead, 49th Shelf


Mugo Web has been the development team for The 49th Shelf since conception and we consider this one of our proudest moments.

In addition to the lead objectives, The 49th Shelf is building an online community around Canadian books and providing specialized tools to key audiences including librarians and movie producers.

Mugo has a long involvement in helping the Canadian book industry around ONIX data dating back to 2003 and the release of PExOD in conjunction with with Simon Fraser University's Canadian Centre for Studies in Publishing.

The 49th Shelf is a highly interactive community around Canadian books that helps connect readers with books and other readers, while having fun doing so!  If you are a young reader, an occasional reader, a bookworm, a librarian, a teacher, a chef, or a playwright... if you read hardcovers while curled up by the fireplace or on your e-reader while on public transit... if you haven't read since you were in school or if you host a monthly book club... The 49th Shelf can help you get the most out of Canadian books.

Book, books, and more books

The 49th Shelf is continuously updated with new books, featured books, book lists, and ongoing commentary through a blog. eBooks are also featured.

The book search enables books to be found by title, author, category, and publisher. Recommended reading lists are regularly added by the site editors and by the community.

On each book page is detailed book information, enhanced by excerpts, editorial reviews, community reviews, author biographies, and more. Purchase, share, and bookmark links are provided.

The web site is heavily social, enabling users to shape the site day by day. Books can be rated, tagged, reviewed, grouped into lists, and pinned on a map.  The activity log widget shows every public user activity. There is also tight Facebook and Twitter integration.

Canadian book map

Read Local is the 49th Shelf book map, which displays an interactive map of Canada. On the map are pins representing locations that have significance to various Canadian books. The pins are completely crowd-sourced; users can add, annotate, and categorize pins, which makes the map an evolving landscape of literary Canada. Users can share a link to the map, links to individual map points, and links to themes on Twitter and Facebook.

More fun

Periodically, The 49th Shelf hosts giveaways of books and supporting items, such as an e-reader.

Another fun element is the cover shuffle game, which gives players 6 minutes to name as many book titles as possible, based on their cover images.  Anybody can play!

Web development

The 49th Shelf runs on the Enterprise Content Management System eZ Publish. eZ Publish's robust content model enables all book and supporting data to be stored and displayed. It also provides a flexible framework for working with the data in various ways, as well as connecting to external services for data exchange.

As eZ Publish experts, Mugo Web's web development for The 49th Shelf has included:

  • Customized data import and update scripts to consolidate large sets external book data feeds of different quality
  • Scripts to manage record updates in bulk, by section, or individually; and to update entire sets of information, or specific pieces of information such as purchase links
  • Content maintenance scripts that dynamically adjust behavior depending on server load
  • Content modeling for categorization, site structure, and content attributes
  • Enhanced object relations to store not only the internal links but also information about the relationships themselves (such as contributor type)
  • Workflows for contests and all user activity around account creation and management, book interactivity, newsletter signup, and special features (such as mapping, games)
  • Custom content management reports and interfaces
  • Custom front-end JavaScript coding to achieve the interactive client-side elements as well as the server-side Ajax web service listeners
  • Templating for dynamic landing pages, extended search functionality (using the Solr-based eZ Find extension), search engine optimization fields, sitemaps, book pages, and more
  • Social media integration
  • Server setup, caching settings, MySQL database optimization, server status reports

Case study


Read more

graphic of a computer monitor, with a list of documents and a magnifying glass

Adding data to your Solr index for Ibexa DXP 4.x

Sometimes, Apache Solr doesn’t index data in just the way you need for your custom search criteria. When you need to add data not indexed by default in the Solr search engine, the document field mapper should be created to fit your needs.

graphic of an image placeholder being resized to larger dimensions.

Custom filters for "scalemin" image variations in Ibexa 4.x

Having quality images on your site is important, and creating all the different versions of images for the various ways they will be used on your site is time-consuming and potentially frustrating. Letting browsers auto-render images to different sizes and shapes will cause pixelation and stretched images that don’t reflect well on your brand. The good news is that there are several tactics to automatically generate high-quality and specific versions of images to cover all the use cases.

illustrated computer with a large folding map on the screen

Making your custom embedded Google Maps more efficient with marker clusters

Google Maps is an almost ubiquitous tool and can be incredibly useful to integrate into your site. There’s a lot of versatility in its uses, but depending on how much you’re asking it to do, the results might not be optimal. When you have a huge dataset to display on Google Maps, the performance tends to slow down. When that data is spread across a large geographic area, the issue can be compounded. As you zoom out and more markers try to load, your map can slow to a crawl. What was a useful tool now becomes a point of frustration for visitors to your site. Let’s take a look at the technique that can be used to improve the performance of maps with large datasets.

doodle of a robot in front of a blackboard with a sketched graph showing growth above the google analytics logo.

Predictive analytics in GA4

One of the major selling points for Google Analytics 4, when it was released in late 2020, was the inclusion of predictive analytics metrics, a Big Data feature that until then had largely been the domain of enterprise analytics packages.

Now that Google has announced that GA4 will replace Universal Analytics for all users by July 1, 2023, it’s worth a second look at how GA4’s predictive analytics can impact your business.